原文:http://resources.infosecinstitute.com/sql-injection-http-headers/
X-Forwarded-For
X-Forwarded-For被用于识别一个通过HTTP proxy或负载均衡的HTTP请求的原始IP地址。
User-agent
User-agent用于统计目的以及跟踪协议冲突。第一个空格分隔的部分必须是软件产品名,产品名,一个可选的斜线和版本指示。
不是所有的软件都跟踪user-agent数据,但是有些软件被设计为存储这类信息(例如购物车)
手动测试:使用浏览器插件
Cookies Manager+
Cookies Manager+允许查看,编辑以及创建新的cookie,它同时可以显示关于cookie的额外的信息,以及同时编辑多个cookie,备份/恢复他们。
安装完成后,从Tools菜单,选择Cookies Manager+,然后选择关于目标的一个cookie变量
我们将会编辑language_id变量,为了查找SQLi,我们在 language_id值的末尾添加一个单引号
然后刷新页面或点击该web程序的其他内部链接,应用程序将会提交编辑后的cookie,结果触发一个SQL错误
Tamper Data:
安装完成后,从Tools菜单,选择Tamper Data,通过点击Start Tamper来开始篡改数据
当向目标发送请求时,Tamper Data将会弹出一个对话框来询问我们是否需要篡改数据:
点击Tamper,如下图
如上图我们在cookie变量中添加order by 4,应答正常
当我们使用order by 5时,应答如下:
所以我们可以推断有4列
使用sqlmap自动注入:
默认sqlmap 测试所有的GET/POST参数。当--level置为2或更高的时候它则测试HTTP cookie头的值。当--level置为3或更高的时候,它则测试User-Agent以及HTTP Referer头。
Tested HTTP parameter | Level in sqlmap |
GET | 1 (Default) |
POST | 1 (Default) |
HTTP Cookie | 2 ≥ |
HTTP User-Agent | 3 ≥ |
HTTP Referer | 3 ≥ |