频道栏目
读书频道 > web开发 > 其他综合 > 代码审计:企业级Web代码安全架构
2.3.1 Burp Suite
2015-11-27 15:04:57     我来说两句
收藏   我要投稿
本书共分为三个部分。第一部分为代码审计前的准备,包括第1~2章,第1章详细介绍代码审计前需要了解的PHP核心配置文件以及PHP环境搭建的方法;第2章介绍学习PHP代码审计需要准备的工具,以及这些工具的详细使用方  立即去当当网订购

Burp Suite是一款基于Java语言开发的安全测试工具,使用它需要安装Java运行环境。这款软件只有不到10MB的大小,但是其强大的功能受到几乎所有安全人员的青睐。Burp Suite主要分为Proxy、Spider、Scanner、Intruder、Repeater、Sequencer、Decoder和Comparer几个大模块。下面简单介绍下各个模块:

Proxy(代理)Burp Suite的代理抓包功能是这款软件的核心功能,当然也是使用最多的功能。使用这个代理,可以截获并修改从客户端到Web服务器的HTTP/HTTPS数据包。

Spider(蜘蛛)用来分析网站目录结构,爬行速度非常不错,爬行结果会显示在Target模块中,支持自定义登录表单,让它自动提交数据包进行登录验证。

Scanner(扫描器)用于发现Web程序漏洞,它能扫描出SQL注入、XSS跨站、文件包含、HTTP头注入、源码泄露等多种漏洞

Intruder(入侵)用来进行暴力破解和模糊测试。它最强大的地方在于高度兼容的自定义测试用例,通过Proxy功能抓取的数据包可以直接发送到Intruder,设置好测试参数和字典、线程等,即可开始漏洞测试。

Repeater(中继器)用于数据修改测试,通常在测试一些像支付等逻辑漏洞的时候经常需要用到它,只需要设置好代理拦截数据包,然后发送到Repeater模块即可对数据随意修改之后再发送。

Sequencer(会话)用于统计、分析会话中随机字符串的出现概率,从而分析Session、Token等存在的安全风险。

Decoder(解码)用于对字符串进行编码和解码,支持百分号、Base64、ASCII等多种编码转换,还支持Md5、sha等Hash算法。

Comparer(比较器)用于比较两个对象之间的差异性,支持text和hex形式的对比,通常用来比较两个request或者response数据包之间不同的地方,功能类似于网上常见的文本或者文件对比软件。

以上是Burp Suite的几乎所有功能。当然,不同的使用者有不同的需求,很少会用到上面介绍的所有功能。笔者再详细介绍一下常用的几个功能。

1. Proxy功能

这是使用最多的功能,因为其他的几个常用功能也依赖于代理功能抓到的数据包。

它的使用非常简单,打开Burp Suite后,点击菜单栏的Proxy即可看到Proxy功能界面。首先需要设置监听IP和端口,在Proxy Listeners 区域选中代理项,然后点击左边的Edit按钮。

它有三种监听模式,如图2-17所示。

如果你只需要监听本地的数据,绑定地址的地方设置Loopback only即可。如果需要监听到本机的所有HTTPS/HTTP流量,则选中All interfaces。默认监听8080端口,在这里可以自行修改,点击OK按钮完成设置。

接下来的设置要在需要被代理的客户端完成。这里的设置如图2-18所示。

由于这里要监听本地浏览器的数据,所以设置代理服务器地址为127.0.0.1,端口为8080,也就是Burp Suite中之前设置的监听端口。


 

现在就可以开始抓包测试了。如图2-19所示,已经可以成功抓到浏览器的Request和Response数据。

2. Intruder功能

该功能主要用于模糊测试。在模糊测试分类里,用得最多的是暴力破解登录用户密码,笔者非常喜欢这个功能,因为它有非常强大的兼容性来支持各种数据格式爆破。下面让我们来见识下Intruder到底是有多强大。这里演示用它来爆破Discuz后台


 

登录密码。注意,Discuz登录是有登录验证限制的,每个IP只有5次登录失败的尝试机会。我们利用Burp Suite绕过这个登录限制进行密码爆破,绕过原理是,由于Discuz采用的是HTTP_CLIENT_IP的方式来获取IP,而这个值可以在发送请求时伪造,于是我们可以利用Burp Suite来伪造这个登录IP绕过错误次数限制。

首先,按上面的介绍设置好代理抓包,在浏览器中打开Discuz后台登录页面,在账号及密码输入框输入任意字符,点击“提交”按钮,回到Burp Suite,将抓到的数据项发送到Intruder。接下来,就需要对登录数据包进行修改。

在Intruder的Positions中需要设置攻击类型为Pitchfork,并且全选数据包,点击Clear $按钮清除全部标识。然后在HTTP头中添加“client-ip:1.2.3.4”,并且将1234这个四个数字单独打上$标识,为Post数据里面的admin_password字段的值也打上$标识。最后修改效果如图2-20所示。

接下来就需要设置payload了,点击菜单栏的Payloads,为Payload set下拉框里面的第1、2、3、4个选项设置一样的Numbers payload,包括其他参数设置的最终界面如图2-21所示。
设置Payload set为5的Payload type为simple list,并且点击下面的Load按钮载入你的密码字典,然后我们的所有配置就完成了。点击菜单栏的“Intruder”里的“Start Attack”按钮即可开始爆破。爆破成功的效果如图2-22所示。



 



 

3. Repeater功能

这个功能经常用于修改数据包以及重放请求,测试漏洞的时候经常需要使用到Repeater。下面来详细看看它的使用方法。

首先设置好proxy,然后通过浏览器触发请求查看Burp Suite捕捉到的数据包,在“http history” 里选中监听到的数据包项,右键发送到Repeater。接着我们就可以对请求数据做任意修改了,修改完成后点击Go按钮即可发送数据包,如图2-23所示。


 

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.3 漏洞验证辅助
下一篇:2.3.2 浏览器扩展
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站