基于Http Header的SQL注入的方法详解
程序员文章站
2022-03-29 11:13:53
通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。... 12-06-27...
通常http消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。http的头域包括通用头,请求头,响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。
如下图:
get / http/1.1
connection: keep-alive
keep-alive: 300
accept:*/*
host: host
accept-language: en-us
accept-encoding: gzip, deflate
user-agent: mozilla/5.0 (windows; u; windows nt 5.1; en-us;
rv:1.9.2.16) gecko/20110319 firefox/3.6.16 ( .net clr 3.5.30729; .net4.0e)
cookie: guest_id=v1%3a1328019064; pid=v1%3a1328839311134
如何执行一个http头的sql注入?
下载插件cookie管理插件
打开cookie管理器,然后单击目标网站
编辑目标网站的cookie,来验证目标网站是否存在http头的sql注入,我们编辑变量language_id的字段内容,添加单引号’刷新页面来判断。
刷新页面,判断是否存在sql注入漏洞
ok,下载插件tamper-data来修改请求的数据内容。
输入一个sql注入语句
如果我们输入order by 5– ,会报以下错误。
所以可以判断得出用户表列为4,再使用cookie管理器,添加以下代码在language_id字段里面:
-1+union+all+select+1,2,3,4
或者输入下面的语句得到数据库用户或版本信息等。
version()
user()
concat(database())
group_concat
用sqlmap注入起来会更简单,后续会带来sqlmap的相关文章 :)
如下图:
get / http/1.1
connection: keep-alive
keep-alive: 300
accept:*/*
host: host
accept-language: en-us
accept-encoding: gzip, deflate
user-agent: mozilla/5.0 (windows; u; windows nt 5.1; en-us;
rv:1.9.2.16) gecko/20110319 firefox/3.6.16 ( .net clr 3.5.30729; .net4.0e)
cookie: guest_id=v1%3a1328019064; pid=v1%3a1328839311134
如何执行一个http头的sql注入?
下载插件cookie管理插件
打开cookie管理器,然后单击目标网站
编辑目标网站的cookie,来验证目标网站是否存在http头的sql注入,我们编辑变量language_id的字段内容,添加单引号’刷新页面来判断。
刷新页面,判断是否存在sql注入漏洞
ok,下载插件tamper-data来修改请求的数据内容。
输入一个sql注入语句
如果我们输入order by 5– ,会报以下错误。
所以可以判断得出用户表列为4,再使用cookie管理器,添加以下代码在language_id字段里面:
-1+union+all+select+1,2,3,4
或者输入下面的语句得到数据库用户或版本信息等。
version()
user()
concat(database())
group_concat
用sqlmap注入起来会更简单,后续会带来sqlmap的相关文章 :)
上一篇: Ajax中浏览器的缓存问题解决方法
推荐阅读