原文链接:https://yq.aliyun.com/articles/214915
本文讲的是通过Burp以及自定义的Sqlmap Tamper进行二次SQL注入,
其中一种安全漏洞被叫做二次注入,形成原因为,攻击者输入的攻击载荷首先会存储到web服务器中,然后web服务器调用这一攻击载荷时,会形成危害。
可以想象的到,二次注入可以发生在任何地方。不仅仅在同一个web应用程序,还可能感染使用同一数据库的web应用程序。因此,使用扫描器去发现这种漏洞是几乎不可能的。在这篇文章中,我会展示最近我们项目中发现的最有趣的一个注入漏洞。
我们手动渗透测试的方法
对于一次渗透测试是否成功,关键在于你是否了解到你的目标系统的业务流程。对于这点,我经常花费一到两天的时间像普通用户一样使用目标站点的功能。因此我可以了解到目标的全部工作流程。在填写表单或者提交任何请求时,我都会为填写的内容进行编号:
-
1. 给主要模块进行编号(比如发票、新闻、费用等等,这些你经常在导航栏中看到的内容)
-
2. 比如你正在填写注册凭证,并且需要您填写姓名和邮箱,这是我也会对它编号:
-
Username = johnticket1
-
Email = johnticket1@yopmail.com
随着从事渗透测试工作时间的变长,我久而久之开发了这一方法,以便于对数据进行跟踪。如果我在渗透测试过程中发现了johnticket1字段,这可能需要4-5天的时间,那时我还是可以清楚的了解到我应该回到哪个地方入手,进行二次注入测试。
初始阶段:检测
在我对目标进行浏览时,在Burp Suite日志中发现了如下请求和响应:
-
GET /wishlist/add/9 HTTP/1.1
-
Host: targetwebapp
-
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36
-
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
-
Accept-Language: en-US,en;q=0.5
-
Referer: http://targetwebapp/
-
Cookie: XSRF-TOKEN=eyJpdiI6ImVmODhzTFRXV0wrdkRVV05MVTdyQ3c9PSIsInZhbHVlIjoiYWN1ZkkwRk1WMjZycTdDRjdSZFVuN3VKR3ZGQUpTWWZyYWNURmcyMzZtY1Zlc25vUDhvdk5xaFhHbXZidEUyalA2eUl4aDQzakhBQmNpWGtsN1lNXC9nPT0iLCJtYWMiOiIxZTAxOGU5YTVjZTY1NDdmNTFlNmMzZWRjNTM5M2Y3YTJiNTIyZjk0NThlZDgwYWExYjc1YjJmOWRiYWQyM2MxIn0%3D; session=eyJpdiI6ImdudzFVTGlNem1CYzlGUlY1aG1Xbnc9PSIsInZhbHVlIjoiMFZcL2ZHZTRDejlyUGlwbG5zNW5mNHpvYUZMdVFHUjVQVkpOZkI5M1UrazArMThDSzRiSURac0FmdTBpd0hXaFN5OVAxdytvMFhVNzhadzN1dU5NM013PT0iLCJtYWMiOiIyYWEzOWI5NWM4ZDBhNmQ1NzQ1NzA3ZjkwY2Q5NzI5NTc2MWU4NDk4YWY3OTkzMGM5ZmQ2YjBlYjFkMmNlZjIxIn0%3D
-
X-Forwarded-For: 127.0.0.1
-
True-Client-Ip: 127.0.0.1
-
Connection: close
-
Upgrade-Insecure-Requests: 1
-
----
-
HTTP/1.1 302 Found
-
Date: Tue, 01 Aug 2017 07:31:12 GMT
-
Server: Apache/2.4.18 (Ubuntu)
-
Cache-Control: no-cache, private
-
Location: http://targetwebapp/
-
Set-Cookie: XSRF-TOKEN=eyJpdiI6IjlVXC9XSWtobkdHT0tlZDNhKzZtUW5nPT0iLCJ2YWx1ZSI6Ijg3enBCSHorT1pcLzBKVVVsWDJ4akdEV1lwT2N0bUpzdDNwbmphM3VmQndheDRJZDQ3SWJLY