介绍
安装要求:Java的V1.5+安装(推荐使用最新的JRE).
入门:
安装完成后可以双击可执行的JAR文件,如果不工作,你可以运行在命令提示符或终端输入。命令:Java–jarburpsuite_v1.4.jar
BurpSuite包含了一系列burp工具,这些工具之间有大量接口可以互相通信,之所以这样设计的目的是为了促进和提高整个攻击的效率。平台中所有工具共享同一robust框架,以便统一处理HTTP请求,持久性,认证,上游代理,日志记录,报警和可扩展性。BurpSuite允许攻击者结合手工和自动技术去枚举、分析、攻击Web应用程序。这些不同的burp工具通过协同工作,有效的分享信息,支持以某种工具中的信息为基础供另一种工具使用的方式发起攻击Proxy提供一个直观、友好的用户界面,他的代理服务器包含非常详细的拦截规则,并能准确分析HTTP消息的结构与内容。
Spide爬行蜘蛛工具,可以用来抓取目标网站,以显示网站的内容,基本结构,和其他功能。
Scanner:Web应用程序的安全漏洞进行自动发现工具。它被设计用于渗透测试,并密切与您现有的技术和方法,以适应执行手动和半自动化的Web应用程序渗透测试。
可让您手动重新发送单个HTTP请求。
Repeater
Intruder是burp套件的优势,他提供一组特别有用的功能。它可以自动实施各种定制攻击,包括资源枚举、数据提取、模糊测试等常见漏洞等。在各种有效的扫描工具中,它能够以最细化、最简单的方式访问它生产的请求与响应,允许组合利用个人智能与该工具的控制优点。
Sequencer对会话令牌,会话标识符或其他出于安全原因需要随机产生的键值的可预测性进行分析。
Decoder转化成规范的形式编码数据,或转化成各种形式编码和散列的原始数据。它能够智能识别多种编码格式,使用启发式技术。
Comparer:
是一个简单的工具,执行比较数据之间的任何两个项目(一个可视化的“差异”)。在攻击一个Web应用程序的情况下,这一要求通常会出现当你想快速识别两个应用程序的响应之间的差异(例如,入侵者攻击的过程中收到的两种反应之间之间,或登录失败的反应使用有效的和无效的用户名)之间,或两个应用程序请求(例如,确定不同的行为引起不同的请求参数)。
配置
打开Burp套件,配置监听端口
一旦代理端口选择和服务在burp套件开始,我们需要配置我们的浏览器。在大多数浏览器,你只需打开设置-网络-代理,然后告诉它使用“localhost”和端口“8080”(或任何您正在运行的端口,默认Burp:8080)。然后保存更新的设置.
现在我们可以再浏览器中输入我们要检查的网站。你会看到burp套件工具,proxy选项卡上会亮起红色,表示它需要你的输入。默认行为是拦截设置为ON,这意味着它捕获的所有发送请求,然后要求用户输入,以决定是否数据包将被转发或丢弃。你可以转发,并观看页面载入目标网站。如果你嫌麻烦那你可以INTECEPTOROff,只是手动抓取的网站,将捕获的数据发送到“历史记录”选项卡,你可以手动检查审查和测试。
关掉拦截你在历史记录里面会看到所有提交过的数据,在这里你可以看到所有request和response的数据。现在,我们可以右键进行其他的测试。
intruder定制攻击自动化
今天我将利用DVWA的SQL注入进行测试。你可以看到下面的图片,SQL注入很简单,我们测试:
我们需要捕捉用户ID请求,点击提交按钮,抓取数据包后,用有效载荷测试用户输入的ID值。要做到这一点,我们必须确保,Burp拦截我们的要求:
将提交用户ID的请求,并发送到intruder你可以看到下面:
工具已经自动为我们创造了有效载荷测试的位置。有效载荷的位置使用§符号作为每个有针对性的攻击位置的起始和结束标记。你想测试的位置前后用§§符号进行标示。
然后设置攻击类型,有4种模式供大家选择。具体这四种模式的区别大家可以参考burp的官方帮助文档。
Sniper这种攻击模式可以让我们选择的攻击位置注入一个单一的有效载荷。这需要的有效载荷选项,将它们插入到选定的位置,然后重复,直到它已测试所有的有效载荷选项。
如果选择多个位置,它会只适用于测试,一次一个位置。我会告诉你如何使用这个测试在几秒钟之内的SQL漏洞的迹象
Batteringram这种攻击模式将有效载荷,插入到选定的攻击位置的Sniper攻击模式。
这里的区别是,如果选择了多个位置,它会插入所有位置一次性进行测试,而Sniper逐一测试。
Pitchfork这种攻击模式允许你测试多种有效载荷,最大能够自定义8个,基于攻击位置。这种攻击模式设置不同的有效载荷为每个位置逐一同时测试。
Clusterbomb这种攻击模式使用多种有效载荷,并允许你测试每一个可能有效载荷在每个选择的攻击位置,这意味着接下来的测试,交换任何其他有效载荷。当你有不同需要注射的地方,它将会非常的方便。
今天我选用的是sniper模式进行测试,我会告诉你如何使用这个测试SQL漏洞。虽然Burp自带了测试语句但是我还是希望自己手动去整理语句,下面是我自己整理的一些SQL注入测试的语句:
我们来配置攻击测试。如图
由于我个人已经整理好txt所以我直接载入我的语句
确定后,我们来到选项标签下面的grep—match设置测试结果匹配选项。大家可以用默认的选项,也可以载入自己收集的错误信息。
设置完成后,我们就可以运行测试,点击主菜单上的intruder—startstack
现在,这将打开一个新的窗口,在这里我们可以看到自动测试的结果
你可以清楚地看到,返回页面大小差异。后面对勾的地方,表示发现grep-match中我们提供的文本。如果你点击一个请求,你可以查看到我们实际发送的请求,以及响应,因此,我们现在可以清楚地看到错误信息。
现在我们已经确定找到了一个潜在SQLINJECTION漏洞。这是好的开端,但现在怎么办?
现在,我们回去给入侵者设置和工作,改变我们的设置,以进一步测试和利用。现在让我们看看如果我们可以设置入侵者测试ORDERBY来确定快速列数。使用了同样的要求,我们将现在的位置插入语句。
ORDERBY1— ORDERBY2— +ORDER+BY+1— +ORDER+BY+2— /**/ORDER/**/BY/**/1— /**/ORDER/**/BY/**/2—
现在我们已经找到列数为2!您可以使用响应请求长度的线索来判断。现在我们将这个请求发送到Repeater,现在我们将使用Repeater找到脆弱列。
好了现在我们知道脆弱的列,我们现在可以把这个请求转入到intruder中去进行下一步的信息刺探和测试,我们插入自己整理好的一些数据库信息进行自动化测试。
这里我们不用设置grep了至于为什么大家自己想把。。。
接下来我们可以用intruder的另一种攻击模式来检查我们其他可以利用的数据库
现在我们有基本信息,库,我们可以继续下去,重新配置intruder,从而获得所有的表名。但要记得库名要做十六进制转换,编码可以用burp自带的decoder。
重新配置intruder—获取列名
现在就可以直接用repeater直接发送请求获取数据了
文章在此就告一段落了。这次讲解burp-intruder只是抛砖引玉,更多强大功能欢迎大家和我探讨。如果有朋友愿意共享1.4.0.5专业版,麻烦递我个。
本文为网络安全技术研究记录,文中技术研究环境为本地搭建或经过目标主体授权测试研究,内容已去除关键敏感信息和代码,以防止被恶意利用。文章内提及的漏洞均已修复,在挖掘、提交相关漏洞的过程中,应严格遵守相关法律法规。