转载地址:http://www.2cto.com/Article/201207/139493.html#comment_iframe

0×02 配置

打开Burp 套件,配置监听端口

 

20120708123501768.jpg
20120708123501522.jpg


 

一旦代理端口选择和服务在burp 套件开始,我们需要配置我们的浏览器。在大多数浏览器,你只需打开设置-网络-代理,然后告诉它使用“localhost”和端口“8080”(或任何您正在运行的端口,默认Burp: 8080)。然后保存更新的设置.

20120708123501202.jpg现在我们可以再浏览器中输入我们要检查的网站。你会看到burp 套件工具,proxy 选项卡上会亮起红色,表示它需要你的输入。默认行为是拦截设置为ON,这意味着它捕获的所有发送请求,然后要求用户输入,以决定是否数据包将被转发或丢弃。你可以转发,并观看页面载入目标网站 www.2cto.com 。如果你嫌麻烦那你可以INTECEPTOR Off,只是手动抓取的网站,将捕获的数据发送到“历史记录”选项卡,你可以手动检查审查和测试。

 

20120708123502586.jpg

关掉拦截你在历史记录里面会看到所有提交过的数据,在这里你可以看到所有request 和response 的数据。现在,我们可以右键进行其他的测试。
 

20120708123502257.jpg


0×03 intruder 定制***自动化

今天我将利用DVWA 的SQL 注入进行测试。你可以看到下面的图片,SQL 注入很简单,我们测试:

 


20120708124544939.jpg



20120708124544559.jpg



 

我们需要捕捉用户ID 请求,点击提交按钮,抓取数据包后,用有效载荷测试用户输入的ID值。
要做到这一点,我们必须确保,Burp 拦截我们的要求:

20120708124544780.jpg将提交用户ID 的请求,并发送到intruder 你可以看到下面:

 

 



20120708124545141.jpg
20120708124545727.jpg

工具已经自动为我们创造了有效载荷测试的位置。有效载荷的位置使用§符号作为每个有针对性的***位置的起始和结束标记。你想测试的位置前后用§§符号进行标示。
然后设置***类型,有4 种模式供大家选择。具体这四种模式的区别大家可以参考burp 的官方帮助文档。

Sniper 这种***模式可以让我们选择的***位置注入一个单一的有效载荷。这需要的有效载荷选项,将它们插入到选定的位置,然后重复,直到它已测试所有的有效载荷选项。如果选择多个位置,它会只适用于测试,一次一个位置。我会告诉你如何使用这个测试在几秒钟之内的SQL 漏洞的迹象

Pitchfork 这种***模式允许你测试多种有效载荷,最大能够自定义8 个,基于***位置。这种***模式设置不同的有效载荷为每个位置逐一同时测试。

Cluster bomb 这种***模式使用多种有效载荷,并允许你测试每一个可能有效载荷在每个选择的***位置,这意味着接下来的测试,交换任何其他有效载荷。当你有不同需要注射的地方,它将会非常的方便。

今天我选用的是sniper 模式进行测试,我会告诉你如何使用这个测试SQL 漏洞。虽然Burp自带了测试语句但是我还是希望自己手动去整理语句,下面是我自己整理的一些SQL 注入测试的语句:



 
'
"
/
/*
#
)
(
)'
('
and 1=1
and 1=2
and 1>2
and 12
+and+12
/**/and/**/1


我们来配置***测试。如图

20120708125046629.jpg

由于我个人已经整理好txt 所以我直接载入我的语句

20120708125046504.jpg确定后,我们来到选项标签下面的grep—match 设置测试结果匹配选项。大家可以用默认的选项,也可以载入自己收集的错误信息。

 

20120708125208580.jpg

设置完成后,我们就可以运行测试,点击主菜单上的intruder— start sttack

20120708125209645.jpg现在,这将打开一个新的窗口,在这里我们可以看到自动测试的结果

 

20120708125347307.jpg你可以清楚地看到,返回页面大小差异。后面对勾的地方,表示发现grep-match 中我们提供的文本。如果你点击一个请求,你可以查看到我们实际发送的请求,以及响应,因此,我们现在可以清楚地看到错误信息。

 

 

20120708125347283.jpg现在我们已经确定找到了一个潜在SQL INJECTION 漏洞。这是好的开端,但现在怎么办?现在,我们回去给***者设置和工作,改变我们的设置,以进一步测试和利用。现在让我们看看如果我们可以设置***者测试ORDER BY 来确定快速列数。使用了同样的要求,我们将现在的位置插入语句。

ORDER BY 1—
ORDER BY 2—
+ORDER+BY+1—
+ORDER+BY+2—
/**/ORDER/**/BY/**/1—
/**/ORDER/**/BY/**/2—

 


20120708010756313.jpg
20120708010756237.jpg



现在我们已经找到列数为2!您可以使用响应请求长度的线索来判断。现在我们将这个请求发送到Repeater,现在我们将使用Repeater 找到脆弱列。

 


20120708010756891.jpg
20120708010757403.jpg



好了 现在我们知道脆弱的列,我们现在可以把这个请求转入到intruder 中去进行下一步的信息刺探和测试,我们插入自己整理好的一些数据库信息进行自动化测试。
20120708011041827.jpg
20120708011041296.jpg

 

接下来我们可以用intruder 的另一种***模式来检查我们其他可以利用的数据库


 



20120708011943842.jpg
20120708011943902.jpg
20120708011944269.jpg
20120708011944326.jpg

 

现在我们有基本信息,库,我们可以继续下去,重新配置intruder,从而获得所有的表名。但要记得库名要做十六进制转换,编码可以用burp 自带的decoder。



20120708012157877.jpg
20120708012157952.jpg
20120708012158469.jpg
20120708012158740.jpg
20120708012158754.jpg
20120708012158376.jpg

 

重新配置intruder—获取列名



20120708012345583.jpg
20120708012345560.jpg
20120708012346487.jpg
20120708012346290.jpg



现在就可以直接用repeater 直接发送请求获取数据了

20120708012346633.jpg文章在此就告一段落了。这次讲解burp-intruder 只是抛砖引玉,更多强大功能欢迎大家和我探讨。 如果有朋友愿意共享1.4.0.5 专业版,麻烦递我个。Thanks

作者:小冰