Burp Suite
是Web测试集成测试套件,只能抓取HTTP/HTTPS的数据包
Proxy 拦截代理服务器
- 拦截代理服务器是Burp Suite的核心
- 要拦截代理服务器,必须配置浏览器,将它的代理服务器作为本地机器上的一个端口,同时配置Burp Suite监听这个端口并接收由浏览器发布的所有请求
- 由于代理服务器能够访问浏览器与,目标Web服务器之间的双向通信,因而它能够拦截它们之间传送的每一条信息
Burp Suite 配置
对Burp Suite的端口和IP地址进行配置,注意不要使用已被占用的端口号
浏览器配置
根据对Burp Suite的配置来配置浏览器(博主采用的是firefox浏览器)
处理不支持代理的客户端
- 修改操作系统hosts文件,将应用程序使用的主机名解析为测试员自己的回环地址(127.0.0.1)
- 对于应用程序使用的每个目标端口(通常是80和443端口),在回环接口的这些端口上配置一个Burp Suite监听器,并将该监听器设置为支持匿名代理。匿名代理功能指监听器将接受厚客户端发送的非代理类型的请求
- 匿名模式代理仅支持HTTP/HTTPS请求,为防止SSL遇到致命的证书错误,可能需要将匿名代理监听器配置为显示包含厚客户端期望的特定主机名的SSL证书
代理
保证Burp Suite进入代理状态
在浏览器中搜索www.baidu.com显示左侧界面,证明该请求被Burp Suite拦截
设置拦截HTTP response
下载CA证书
下载CA
如果要让Burp Suite抓到HTTPS包,需要Burp Suite拥有CA证书
在浏览器中搜索http://burp
点击CA进行下载
注:此浏览器必须开了127.0.0.1:8080代理
导入CA
点击下一步导入CA证书
在浏览器添加信任
在浏览器选项中找到证书,导入CA证书,选择信任该证书
可能会出现的错误
- 出现SSL_ERROR_RX_RECORD_TOO_LONG 错误
- 在Firefox的地址栏中输入“ about:config ”。
- 在搜索条目“tls.version.max ”。将值从4更改为3。
- 值4所表示TLS 1.3,3个代表TLS 1.2。
Target目标
将进行渗透测试的目标列出来,目录爬行结果呈现
Spider 爬虫
Web爬虫工作机制:
- 请求Web页面,解析这些页面,从中找出指向其他页面的链接,然后向它们提出请求
- 继续执行上述过程,直到查明一个网站的全部内容
Intruder暴力破解
有效负载:有效负载是被传输数据中的一部分,而这部分才是数据传输的最基本的目的,和有效负载一同被传送的数据还有:数据头或称作元数据,有时候也被称为开销数据,这些数据用来辅助数据传输。(解释来源百度百科)
target选项
用于配置进行攻击的目标服务器的详细信息
position选项
用于配置在攻击里产生的所有HTTP请求的模板
Sniper阻击手模式
适用于单一的目标参数破解
已知用户名username,只需要暴力破解password。只需要给一个字典,就可以进行测试,
假如给定的密码为[a,b,c,d]:则破解方式为
password:
a
b
c
d
注:字典是给定进行暴力破解的参数的文件,如上述[a,b,c,d]就是字典
Battering ram撞击模式
不管多少参数,只用一个字典
假如有两个目标参数需要破解,Intruder将密码字典中的密码同时给两个目标
假如给定的字典为[a,b,c,d],则破解方式为:
username |password
a |a
b |b
c |c
d |d
Pitchfork交叉模式
有多少个参数就有多少个字典
本次爆破有两个目标,给出的两个字典分别是[1,2]和[a,b]
则破解方式为:
username |password
1 |a
2 |b
Cluster bomp急速炸弹模式
本次爆破有两个目标,给定两个字典之后,产生的攻击效果是进行笛卡尔积
给定的两个字典分别为[1,2]和[a,b,c,d]
则破解方式为:
username|password
1 |a
1 |b
1 |c
1 |d
2 |a
2 |b
2 |c
2 |d
实例讲解
利用phpStudy(详情请参考本博客phpStudy)搭建网站后,在网站文件夹中加入test.php文件,文件内容如下
<?
$a ='nice';
$get = $_GET['a'];
if($a == $get){
echo "yes";
}
?>
设置target选项
开启Burp Suite的Proxy功能,在开启代理的浏览器搜索栏中输入 www.test.com/test.php?a=1
捕获得如下数据包
点击Action选择Send to intruder将数据包送至intruder模块,鼠标选中需要暴力破解的地方,点击Add$,如图
simple list模式:手动添加字典值
运行结果如下:
Runtime file模式:导入外部文件作为字典
新建txt文件(该文件路径不允许有中文字)
运行结果
Sequencer定序器
测试原理
- 首先,假设令牌是随机生成的
- 进行一系列测试,通过每个测试观察可能具有某些特征的令牌样本(如果令牌是随机生成的)的特定属性
- 对于每个测试,假定以上假设是正确的,计算观察到的特征发生的几率
- 如果该几率在某个水平(显著性水平)之下,则否定上述假设,并得出结论——令牌不是随机生成的。
测试步骤
开启proxy功能,在HTTP History中寻找类似Token或类似参数,选择Action中的send to sequencer。
点击配置,如图
选中令牌部分,点击OK
开始进行随机分析
中间可以点击[pause]/[stop]暂停或停止,然后点击analyze now开始分析(抓取参数值不要小于100)