基于Http Header的SQL注入的方法詳解
FreebuF 發(fā)布時間:2012-06-27 14:57:39 作者:FreebuF
我要評論

通常HTTP消息包括客戶機向服務器的請求消息和服務器向客戶機的響應消息。這兩種類型的消息由一個起始行,一個或者多個頭域,一個只是頭域結束的空行和可選的消息體組成。
通常HTTP消息包括客戶機向服務器的請求消息和服務器向客戶機的響應消息。這兩種類型的消息由一個起始行,一個或者多個頭域,一個只是頭域結束的空行和可選的消息體組成。HTTP的頭域包括通用頭,請求頭,響應頭和實體頭四個部分。每個頭域由一個域名,冒號(:)和域值三部分組成。域名是大小寫無關的,域值前可以添加任何數(shù)量的空格符,頭域可以被擴展為多行,在每行開始處,使用至少一個空格或制表符。
如下圖:
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
如何執(zhí)行一個HTTP頭的SQL注入?
下載插件cookie管理插件
打開cookie管理器,然后單擊目標網(wǎng)站

編輯目標網(wǎng)站的cookie,來驗證目標網(wǎng)站是否存在http頭的SQL注入,我們編輯變量language_id的字段內容,添加單引號’刷新頁面來判斷。

刷新頁面,判斷是否存在SQL注入漏洞

ok,下載插件tamper-data來修改請求的數(shù)據(jù)內容。

輸入一個SQL注入語句
如果我們輸入order by 5– ,會報以下錯誤。

所以可以判斷得出用戶表列為4,再使用cookie管理器,添加以下代碼在language_id字段里面:
-1+UNION+ALL+SELECT+1,2,3,4
或者輸入下面的語句得到數(shù)據(jù)庫用戶或版本信息等。
version()
user()
concat(database())
group_concat
用SqlMap注入起來會更簡單,后續(xù)會帶來SqlMap的相關文章 :)

相關閱讀:
HTTP(HyperTextTransferProtocol)是超文本傳輸協(xié)議的縮寫,它用于傳送WWW方式的數(shù)據(jù),關于HTTP協(xié)議的詳細內容請參考RFC2616。HTTP協(xié)議采用了請求/響應模型??蛻舳讼蚍掌靼l(fā)送一個請求,請求頭包含請求的方法、URI、協(xié)議版本、以及包含請求修飾符、客戶信息和內容的類似于MIME的消息結構。服務器以一個狀態(tài)行作為響應,相應的內容包括消息協(xié)議的版本,成功或者錯誤編碼加上包含服務器信息、實體元信息以及可能的實體內容。
如下圖:
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
如何執(zhí)行一個HTTP頭的SQL注入?
下載插件cookie管理插件
打開cookie管理器,然后單擊目標網(wǎng)站

編輯目標網(wǎng)站的cookie,來驗證目標網(wǎng)站是否存在http頭的SQL注入,我們編輯變量language_id的字段內容,添加單引號’刷新頁面來判斷。

刷新頁面,判斷是否存在SQL注入漏洞

ok,下載插件tamper-data來修改請求的數(shù)據(jù)內容。

輸入一個SQL注入語句

如果我們輸入order by 5– ,會報以下錯誤。

所以可以判斷得出用戶表列為4,再使用cookie管理器,添加以下代碼在language_id字段里面:
-1+UNION+ALL+SELECT+1,2,3,4
或者輸入下面的語句得到數(shù)據(jù)庫用戶或版本信息等。
version()
user()
concat(database())
group_concat
用SqlMap注入起來會更簡單,后續(xù)會帶來SqlMap的相關文章 :)

相關閱讀:
HTTP(HyperTextTransferProtocol)是超文本傳輸協(xié)議的縮寫,它用于傳送WWW方式的數(shù)據(jù),關于HTTP協(xié)議的詳細內容請參考RFC2616。HTTP協(xié)議采用了請求/響應模型??蛻舳讼蚍掌靼l(fā)送一個請求,請求頭包含請求的方法、URI、協(xié)議版本、以及包含請求修飾符、客戶信息和內容的類似于MIME的消息結構。服務器以一個狀態(tài)行作為響應,相應的內容包括消息協(xié)議的版本,成功或者錯誤編碼加上包含服務器信息、實體元信息以及可能的實體內容。
相關文章
- Web應用程序是通過2種方式來判斷和跟蹤不同用戶的:Cookie或者Session(也叫做會話型Cookie)。其中Cookie是存儲在本地計算機上的,過期時間很長,所以針對Cookie的攻擊手段2008-10-08
- Web應用程序是通過2種方式來判斷和跟蹤不同用戶的:Cookie或者Session(也叫做會話型Cookie)。其中Cookie是存儲在本地計算機上的,過期時間很長,所以針對Cookie的攻擊手2008-10-08
關于網(wǎng)址的HTTP頭引發(fā)的我們關于安全問題的思考
本文主要介紹了HTTP頭所引發(fā)的問題.我們來剖析一下.了解清楚2012-05-25- 由于HTTP是一個可擴展的協(xié)議,各瀏覽器廠商都率先推出了有效的頭部,來阻止漏洞利用或提高利用漏洞的難度。了解它們是什么,掌握如何應用,可以提高系統(tǒng)的安全性2014-07-14
加密解密那些事之SSL(https)中的對稱加密與非對稱加密
HTTPS在傳輸數(shù)據(jù)之前需要客戶端(瀏覽器)與服務端(網(wǎng)站)之間進行一次握手,在握手過程中將確立雙方加密傳輸數(shù)據(jù)的密碼信息。TLS/SSL協(xié)議不僅僅是一套加密傳輸?shù)膮f(xié)議,更2014-07-17- HTTPS并不是一個單一的東西,它知識我們常見的HTTP 協(xié)議和某個加密協(xié)議的一個混合,這個加密協(xié)議通常會是TLS。那么HTTPS為什么安全呢?其實我們需要先考慮HTTP為什么不安全2016-06-01