通HTTP header进行sql注入

原文: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 ≥

猜你喜欢

转载自j4s0nh4ck.iteye.com/blog/2128836