基於HTTP頭部的注入

2021-07-13 10:36:30 字數 1172 閱讀 8447

常見的sql注入一般都是通過表單或請求引數進行注入,但這裡給出的例子是通過http協議頭部進行注入。

例如乙個的請求如下:

這裡看起來都很正常,但仔細看http協議的user-agent頭部為「mozilla/5.0』(select*from(select(sleep(20)))a) #」。其中「select * from (select(sleep(20)))」是不正常的,可能是攻擊者正在注入攻擊。

這裡的攻擊主要是讓資料庫什麼也不幹而睡眠20秒,從而浪費資料庫處理執行緒。這是乙個簡單的注入,除此之外還能進行更多複雜的攻擊。

一般獲取頭部的資訊用於資料分析,例如這裡獲取user-agent就可以知道客戶都是通過什麼瀏覽器訪問系統的。jsp中直接通過request.getheader("user-agent")就可以獲取到該值,接著可能就直接儲存到資料庫了,mozilla/5.0』(select*from(select(sleep(20)))a) #中的#號在資料庫中作為注釋符號,它產生的sql可能如下:

insert into visits (useragent, datetime) values ('mozilla/5.0', (select*from(select(sleep(20)))a)) #', '2016-06-13 13:00:06')

這時#號後面都被注釋掉了,於是資料庫睡眠了20秒。

*****===廣告時間*****===

鄙人的新書《tomcat核心設計剖析》已經在京東銷售了,有需要的朋友可以到 進行預定。感謝各位朋友。

為什麼寫《tomcat核心設計剖析》

sqli labs 18 22,http頭部注入

uname和passwd被處理了 uagent和ip插入到了資料庫 還帶回顯。抓包改包 審計 大概如下 當我們正常登入後username賦值給cookie cookee 當submit為空,執行由cookee查詢的sql語句,此處便是注入點。burp在firefox端未登入時攔截,沒有cookie,...

HTTP 頭部字段

分類如下 通用資訊頭 通用資訊頭可以用於請求訊息,也可以用於響應訊息,包括一些寫被傳輸的實體內容沒有關係的一些訊息頭欄位.cache control no cache 是否快取當前的訊息 connection close 用於指定處理完本次請求後是否保持連線.如果為close時就處理完響應就斷開連線...

HTTP 頭部字段

分類如下 通用資訊頭 通用資訊頭可以用於請求訊息,也可以用於響應訊息,包括一些寫被傳輸的實體內容沒有關係的一些訊息頭欄位.cache control no cache 是否快取當前的訊息 connection close 用於指定處理完本次請求後是否保持連線.如果為close時就處理完響應就斷開連線...