Burp Suite渗透实战详解(上)

记得前面曾经介绍过网络工具中的瑞士军刀netcat,今天我们将要再次介绍另一款web应用层安全工具中的瑞士军刀,它就是大名鼎鼎的Burpsuite。本次介绍分为上篇和下篇,分别全面的介绍burpsuite的不同功能。曾经有人采访web安全人员,问他们一个问题,如果所有web安全工具中你只能选一种使用,你要选哪个?答案是绝大多数人选择了今天介绍的Burpsuite。但是burpsuite分为free版和professional版,两者之间的差别是free版没有扫描功能。Professional版本的价格大约2000RMB,网上也有很多破解版,大家自己选择。

 

一、burpsuite的特点在哪?
Burpsuite一个最大的特点是将所有的工具共享一个能处理并显示的HTTP消息的可扩展框架,通过send可以模块之间无缝交换信息

 

二、使用burpsuite前,我们要做的用户简单配置(User Options)
证书:像所有截断代理工具(vega,w3af)那样,访问https的网站也得先导入证书,浏览器输入http://burp
下载CA并导入即可

User Options:用户选项
1、修改字体,首先要说一下字体的问题,默认字体在网页中有中文时会出现乱码。修改位置:User options—-Display
1.7.11中微软雅黑可用,但是仍会出现部分乱码。1.7.11没了文泉驿很遗憾。

2、platform authentication 身份认证:
当我们使用扫描的目标是HTTP,NTLM身份认证,而非表单身份认真的时候,那我们就需要在此添加。把相应的账号密码填进去就好了。

3、Upstream Proxy server:Burp也支持上游的代理服务器,这样在扫描的时候隐藏自己。

4、SOCKS Proxy:如果你想做到很高的隐蔽性,要使用TOR(暗网,匿名网络)的话,就要用到它了。

5、SSL:
Burp提供自签名证书,所以也支持一些常用的加密算法。

6、Logging:burp可以把所有的请求历史进行保存。

 

三、burpsuite的强大之处

1、Proxy截断代理是burpsuite的核心功能,下面我们看一下,常用的proxy配置和burpsuite特有的invisible proxy配置和原理。

Intercept就是截断,on状态下,burpsuite是会将请求都截断下来,用户可以手动选择发送,或者丢弃,或者修改之后发送,并且你不用担心content length这些,因为burpsuite在你做修改后会自动更改content length的值。HTTP history就是经过burpsuite的全部请求和回复。

如果不用invisible proxy的话。直接配置就好了,以其他的代理没有什么两样。如果是本机代理的话就是127.0.0.1,端口选个没使用的就行。
但是我们知道有些app是以客户端的形式运行的比如常见的的优酷,微信,qq客户端版。这些是没法用浏览器代理的。这个时候burpsuite为我们提供了invisible proxy。当然invisible proxy不是解决这个的唯一办法,其他的比如用笔记本开个虚拟wifi,手机连上去,流量自然要过本机,还有个办法是使用Fiddler,大家也可以了解了解。但bursuite的invisebleproxy还是一个很不错的解决办法。

使用invisible proxy时,要将使用app的机器的host文件做修改,目的是将server的ip解析到笔记本上,这样就可以经过burpsuite了。然后注意一下,burpsuite的invisible proxy 里面的Request handing里有个Redirect to host 和Redirect to port,这个做过web开发的应该不会陌生,就是相当把请求(流量)重定向到server的ip,所以这两个地方要填server的ip和port。

如果app对应多个server多个ip,那么需要对每个ip都做invisible proxy。
这里是对截断的配置项。比如第一项,就是不截断类似gif,jpg,css这类静态文件,因为这些静态文件存在安全问题的可能性几乎没有。下面的automatically update content-length就是上面提到的修改之后,burpsuite会自动更新content-length。


这里你可以选着截断请求或者截断回复


2、Spider爬网:可以手动爬网,或者自动爬网,我建议先手动爬一边,这样便于自动爬网时,知道需要填写哪些参数或者知道填写的内容是干什么的。右键一个网站,选择爬整个网站,或者是网站下面的某个分支。爬网中,可以在options里面设置常见的性能设置,比如遍历深度,请求失败重复次数等等,还有预设身份认证或者表单认证提示等选项,并且表单认证的填写十分友好,不需要向一些其他的爬网工具那样进行复杂的设置,Burpsuite只需要按照提示填写就好了。
另外,在爬网中还要注意一个事项,那就是在爬网结束后,还可以点击Burp,选择将爬下来的内容保存到本地。保存下来有什么用了?测试时,我们用不同的角色的账号,或者同角色不同的账号id,登录web application,然后把两次登录爬网的内容进行对比,burpsuite是支持对两次爬网结果的对比的。这样,我们可以发现web application的访问控制上的设计缺陷,比如在基于角色的访问控制中,一些低权限用户却可以访问高权限用户的页面及功能,这极大的增大了风险,公司信息的完整性,保密性均会受到巨大的影响。而这种设计上的漏洞不属于技术上的漏洞,这是任何扫描器都无法发现的。这也提示我们,在对一款app进行测试时,访问控制设计方面的测试,必须人工手动测试。

3、Scanner扫描:这个里面和其他的扫描器的配置差不多,默认的配置一般也够用。在options里面有的Scan accuracy,这里可以选择高误报,但是很全,或者低误报,但是可能会漏掉某些漏洞。这个要看是自己测试的情况而定。
当然,在扫描中,还有一个要说的,就是Burpsuite的扫描是可扩展的,并且扩展还在随时更新。我们进入Extender选择安装的内容就好。这些插件中有部分需要Jython(一个java连接python的中间件),我们去官网下载一个standeralone的版本导入到burpsuite Scanner下面的python environment就可以安装插件了。

用学校的教务处网页做了一次测试,发现了一个高危,点进去看了一下是明文密码,这个在我们学校的系统设计中没办法,设计时为了省钱就用的明文密码,虽然是高危,所以也没人管这个事。所以在机房,或者学活中心去用wireshark抓半天包,然后把ip.dest设置成学校教务处的ip地址,或者上网账号登录验证的ip地址,然后跟踪一下流,用户账号密码一抓一大把。

4、Repeater重放:可以对提交的请求做任意修改之后在进行提交,分析不同去请求的不同回复。还可以把response 发送到下面要介绍的comparer。并且,如果你怀疑这个页面存在CSRF漏洞,你可以右键后generate CSRF Poc,自动生成poc,供你验证。

5、comparer 比较:选择需要比较的页面对页面数据进行对比,可以按单词也可以按字节,不同的地方会高亮显示。可以用文本的方式进行比较,也可以用十六进制进行比较。

具体的比较结果如下,左边是我提交的正确的用户账号和密码的结果,右边是错误的密码。可以看到,返回的页面,正确的页面的result是1,而错误的是2,LoginlnUIA正确的有显示,而错误的是NULL

 

 

add:上部分的介绍先到这里,下篇我将介绍Sequencer、Decoder、Extender和Intruder,和具体的对使用6位纯数字弱密码的一次爆破流程。

发表评论

电子邮件地址不会被公开。 必填项已用*标注