Kali Linux Web渗透测试手册(第二版) - 3.3 - 使用Burp Suite查看和修改请求
翻译来自:掣雷小组
成员信息:
thr0cyte,Gr33k,花花,MrTools,R1ght0us,7089bAt,
这个公众号,一定要关注哦,慢慢会跟上面老哥们一起分享很多干货哦~~
标记红色的部分为今日更新内容。
第三章、使用代理、爬行器和爬虫
3.0、介绍
3.1、使用DirBuster寻找敏感文件和目录
3.2、使用ZAP寻找敏感文件和目录
3.3、使用Burp Suite查看和修改请求
3.4、使用Burp套件的Intruder模块来查找文件和文件夹
3.5、使用ZAP代理查看和修改请求
3.6、使用ZAP爬虫
3.7、使用Burp套件爬虫一个网站
3.8、使用Burp套件的中继器重复请求
3.9、使用WebScarab
3.10、从爬行结果中识别相关文件和目录
前言:
这节和下节,都是关于Burp Suite的,非常强大的一个工具,我贴个连接,一个我感觉还比较全的Burp Suite使用手册,大家自行下载吧。
https://legacy.gitbook.com/book/t0data/burpsuite/details
3.3、使用Burp Suite查看和修改请求
Burp Suite套件不仅是一个简单的web代理,它还是一个功能齐全的web应用程序测试工具包。它有proxy(代理),request repeater(请求中继其),fuzzer(模糊测试),request automation(自动化请求),string encoderand decoder(字符串编解码),vulnerability scanners(漏洞扫描,在专业版).plugins to etend its functionality(插件扩展),和其他非常有用的功能。
在这个小节中,我们将使用Burp Suite的代理功能来拦截浏览器的请求,并修改其内容。
环境准备
从应用程序菜单中启动Burp Suite,应用程序 | 03 – Web Application Analy | Burp Suite,或者在终端输入命令burp来启动。启动后还要设置浏览器走8080的代理端口。
实战演练
现在让我们使用这种拦截/修改技术来绕过基本的保护机制。执行以下步骤:
1. 浏览OWASP板块,并练习 Upload 2
(http://192.168.56.11/owaspbricks/upload-2).
2. 请求拦截功能在Burp Suite中默认启用,如果没有拦截,转到Burp Suite | proxy | Intercept on ,点击下按钮,拦截打开:
3. 这里我们有一个文件上传表单,应该只能上传图片。我们来试着上传一个。点击浏览并选择任何图像文件(PNG,JPG,或BMP):
4. 点击Open后,再点Upload,验证文件上传:
5. 现在我们看看如果我们上传不同类型的文件会发生什么,比如说,一个HTML文件:
6. 看起来,正如练习描述中提到的,服务器会验证上传的文件类型。为了绕过这个限制,我们在BurpSuite中启用请求拦截。
7. 使用浏览器对HTML文件再一次提交。
8. Burp将捕获到这个请求:
在这里,我们可以看到一个POST请求。每个部分的分隔符是一长串破折号(-)和一个长数字。在第一部分中,我们看到了要上载的文件信息和内容类型。
9. 因为服务器只接收图像,我们可以改变content-type,欺骗服务器这是一个图片:
10. 接下来,如果要继续拦截请求,可以单击Foeward提交请求,如果不这样做,可以禁用拦截。
11. 可以发现上传成功了。如果我们滚动鼠标指针到“here”这里,会看到一个文件链接:
原理剖析
在这个小节中,我们使用BurpSuite作为代理捕捉请求来改变Content-Type报头,从而绕过了客户端应用程序的验证机制。
Content-Type是客户机(尤其是POST和PUT请求中)设置的标准HTTP头文件,用于向服务器指示它接收的数据类型。很多时候,开发者通过判断content-type过滤危险文件。正如我们刚才看到的,在防止用户向服务器上传恶意文件方面,这种保护措施是远远不够的。
拦截和修改请求包是web应用渗透测试的一个非常重要的方面,它不仅可以绕过一些客户端验证(就像我们在本示例中所作的那样),还可以研究发送了哪些信息,并且尝试理解应用程序的内部工作方式。为了便于理解,我们还可能需要添加、删除或替换一些值。
另请参阅
对于渗透测试人员来说,理解HTTP协议的工作方式非常重要。如果想更好的理解HTTP协议,请参阅:
-
https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
-
https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html