之前虽然一直在用burpsuite,但是从来没有系统的学习它的使用,而且我一般只使用3、4个功能,像是proxy、repeater、spider、intruder,最近把它系统的研究了一下各个功能,写个文章留存一下。
要是有什么错误的地方希望大家批评指正。
哦还要说一下,这篇文章不是教程,教程网上很多,这个就是把大部分主要的功能进行了介绍,对这款软件有一个系统的了解。越往后写的越少,确实因为时间关系,以后会加以补充,例如使用非常频繁的repeater功能,几句话就带过了。毕竟是软件,有个初步的了解,实践中就渐渐的就会熟悉了。
这里我使用的是BurpSuite V1.6.27
附上百度网盘链接:http://pan.baidu.com/s/1pKuCuU3
提取密码:7a1v
这个主要是由spider功能模块爬出对应网站的一个站点地图,这里我通过spider功能扒取本地的一个74cms做测试。具体的怎么爬出站点地图在稍后的spider进行介绍。
如图所示的,
区块1就是扫描整个网站的站点地图
区块2就是递交的请求情况
区块3就是请求头和响应头的详细信息,包括源码,参数,头,16进制码。
区块4就是该网站存在的问题,这个spider功能能够扫描出网站一些比较明显的问题,当然肯定不全面,参考意义不是很大,漏洞扫描器推荐awvs,这个最开始还是比较好用的,不过到后来就会发现其实很多漏洞根本扫不出来。
区块5就是对应问题的详细信息以及解决方法。
然后可以看出区块上面还有一个filter的功能,这也是一个比较强大的功能,稍后做介绍。
然后是target下的scope栏目,
分别就是在范围的显示和在范围内的不显示,而且可以看出是支持正则表达式的,这里增删改就不做详述了,应该能自己看懂的。
这个代理抓包功能应该是使用最频繁的功能之一了,原理就是通过把127.0.0.1设置为代理服务器,由本机发起的请求都会通过127.0.0.1,然后我们就可以把请求和响应包都截取下来。
首先要在浏览器的设置里添加一个代理,以火狐浏览器为例,点击选项,如下图
这里我设置的ip和端口分别是127.0.0.1和8080端口,然后在proxy下的Options一栏如下操作
注意这里端口号一定要与浏览器设定的代理服务器端口号一致,如果8080被其他应用占用,可以将二者均换掉也无所谓。
这样,所有浏览器发出的请求和接受的响应都会被burpsuite拦截(PS:最后记得将浏览器的代理服务器勾选为不使用代理,否则一旦buresuite关了就可能上不了网了)
现在来介绍功能:
截取到包如下图:
Forward:通俗来说就是将包发送出去
Drop:丢弃掉包
action的功能如下,也可以右键点击空白处
1-7分别对应到发送到最上方的七个模块
其他的英文应该都能读懂,自己试试就知道了,都比较清晰的
这个就是截取包的历史记录
然后我们来看看这个filter功能
1、三项对应的是
- 只显示范围内的网址,这个主要在前面站点地图那里设置scope时的筛选
- 隐藏没有响应的记录
- 只展示有请求参数的记录
2、这里手动输入筛选条件可以支持正则、大小写敏感等
3、根据MIME类型进行筛选
4、展示和隐藏那些类型的请求记录
5、根据响应的HTTP状态码来筛选
6、显示评论过的和高亮的记录。注意,这里通过对记录点击右键是可以附加自己的评论或者是某一条记录以一种颜色高亮的。
7、端口筛选
这里我主要截图介绍了一些常用的设置,其他不常用的就自己看吧。
这里就主要是Proxy功能的设置。
上图主要是设置监听的接口信息,以及证书的导入
上图主要是抓包的显示设置,截取的包符合什么规则就显示出来或是符合什么规则就不显示。
上图主要是一些替换功能,
就是将数据包中的数据批量替换,比如说我勾选了第一个,意思就是将截取的请求中的user-agent全部替换为User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)。
就是一个批量替换的功能。
要使用该功能就要先通过Proxy功能抓包,然后右键send to spider就行了,然后spider就开会运行,下图是运行结束后的情形
我圈起来的部分就是spider的主体部分,第一个就是总共发送的请求,第二个就是总共传输的字节,第三个是请求传输队列,上面有一个按键可以清空该队列,第四个是表单队列。
同样,再往下是扒取设置,爬虫递交的请求需要符合什么规则才进行抓取,或是符合什么规则就不抓取,自己add几条规则然后对比一下就知道什么情况了。
这里截取几个个人较为常用的,其他一般不做修改,需要使用的时候自己看就行了。
爬虫设置。
检查robots.txt,探测响应为not found等等。
下面的两个数字分别是最深的探测深度以及最多传递多少个参数。
表单的提交设置。这个非常重要,就是爬虫遇到表单的时候怎么提交,显示是三个单选框,第一个就是不提交,第二个就弹出框体来由我们自己来填写并提交,第三个就是按照表中我们预先设定的值进行提交。
为什么说这个非常重要,因为表单和漏洞息息相关。。。
爬虫的引擎设置。
1、同时运行的线程数
2、如果失败了重试次数
3、重试延迟
一般来说都选用默认值,另外错误的话会最后的alert处显示出来,随时要关注。
这个模块我用的不多,这里我也省略掉了,大家想学也是先由Proxy抓包然后点击右键do a active scan就可以了,然后其他的就自己探索吧。
定义通过添加字典(XSS,SQLI等等)来实现一个自动化的攻击或是密码爆破
一般来说我们使用intruder功能都是由Proxy然后send过来的,所以该栏目会默认填写的,当然也可以自己填,主要就是ip和端口号。
就是对HTTP请求进行操作了,定义通过添加字典(XSS,SQLI等等)来实现自动化。这里就是定义我们所选用的字典替换请求中的哪一部分需要被替换。然后至于那个attack type有四种
1、sniper,就是将字典一次赋给我们的多个参数,比如我们有三个参数,分别是a,b,c,字典里面有五个值(1,2,3,4,5),那么该模式下我们会先把a用字典替换,b、c保持原值,然后b用字典替换,a、c保持原值,以此类推。
2、battering ram,就是同时将a,b,c都用字典替换,例如a,b,c都用1替换,都用2替换。
3、pitchfork,那就是需要我们导入三个字典,依次对应进行替换。
4、cluster bomb,这个说起来比较麻烦,也是导入三个字典,就是比如a,b,c三个,原本应该有字典1替换a,字典2替换b,字典3替换c,然后它还会继续排列组合,比如字典1替换b,字典2替换c,字典3替换a,知道尝试完所有可能。
这个可以自己试一试然后观看一下结果就知道各个模式的作用了。
同样这个对一部分文本右键也是有很多功能,这里不做详述。
这里就是字典的导入,可以手动添加,也可以文件导入。
第一个数字就是第几本字典,第二个就是选择模式,有很多种
simple list:就是最简单的,手动输入或是文件导入都可以,可以导入多个字典。一般较少的数据使用该模式。
runtime file:这个应该主要就是针对较大批量的数据的字典把。
number:就是设置from 和to从多少到多少,然后step是间隔,例如from为1,to为100,step为2,那么payload就是1,3,5….
brute forcer:暴力破解,尝试你定义字符的所有组合,可以设置最小和最大长度,纯暴力破解。
接下来是payload Processing一栏,主要是对payload进行统一的规则设置,
例如统一都加上前缀或者后缀等等。
然后payload encoding一栏就不说了。
最后就是一些设置,和之前的差不太多,什么线程啊,失败重传啊等等之类不做想说了。
当所有一切设置好之后
点击右上角start attack就可以开始了。
一般使用这个功能也是通过Proxy抓包然后send过来的。
主要就是修改请求的各项参数等等然后点击左上角的go发送出去,然后在右边接受到请求,请求和响应都可以以不同的形式展示出来。
编码解码功能,没有太多可说的,自己随便试试就知道了。
主要是一个比较功能。
- 可以在Proxy处截包发送过来进行比较
- 也可以直接加载文件进行比较
用法比较简单个人使用频率也很高。
这里展示警告信息。一定要随时关注这里。
一般来说就是比如爬虫的时候递交请求频率过快而被服务器拒绝访问等等之类的。