基于Http Header的SQL注入的方法详解
FreebuF 发布时间:2012-06-27 14:57:39 作者:FreebuF 我要评论
通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。
通常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的相关文章 :)
相关阅读:
HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。
如下图:
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的相关文章 :)
相关阅读:
HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。
相关文章
- Web应用程序是通过2种方式来判断和跟踪不同用户的:Cookie或者Session(也叫做会话型Cookie)。其中Cookie是存储在本地计算机上的,过期时间很长,所以针对Cookie的攻击手段2008-10-08
- Web应用程序是通过2种方式来判断和跟踪不同用户的:Cookie或者Session(也叫做会话型Cookie)。其中Cookie是存储在本地计算机上的,过期时间很长,所以针对Cookie的攻击手2008-10-08
- 本文主要介绍了HTTP头所引发的问题.我们来剖析一下.了解清楚2012-05-25
- 由于HTTP是一个可扩展的协议,各浏览器厂商都率先推出了有效的头部,来阻止漏洞利用或提高利用漏洞的难度。了解它们是什么,掌握如何应用,可以提高系统的安全性2014-07-14
加密解密那些事之SSL(https)中的对称加密与非对称加密
HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL协议不仅仅是一套加密传输的协议,更2014-07-17- HTTPS并不是一个单一的东西,它知识我们常见的HTTP 协议和某个加密协议的一个混合,这个加密协议通常会是TLS。那么HTTPS为什么安全呢?其实我们需要先考虑HTTP为什么不安全2016-06-01
最新评论