sqli-labs(18)


 

開始挑戰第十八關(Header Injection - Uagent field - Error based

 

常見的HTTP注入點產生位置為【Referer】、【X-Forwarded-For】、【Cookie】、【X-Real-IP】、【Accept-Language】、【Authorization】;

(1)HTTP Referer是header的一部分,當瀏覽器向web服務器發送請求的時候,一般會帶上Referer,告訴服務器我是從哪個頁面鏈接過來的,服務器基此可以獲得一些信息用於處理。

(2)X-Forwarded-For:簡稱XFF頭,它代表客戶端,用於記錄代理信息的,每經過一級代理(匿名代理除外),代理服務器都會把這次請求的來源IP追加在X-Forwarded-For

(3)Cookie,有時也用其復數形式 Cookies,指某些網站為了辨別用戶身份、進行 session 跟蹤而儲存在用戶本地終端上的數據(通常經過加密)

(4)X-Real-IP一般只記錄真實發出請求的客戶端IP,看下面的例子,

 

X-Forwarded-For: 1.1.1.1, 2.2.2.2, 3.3.3.3
  代表 請求由1.1.1.1發出,經過三層代理,第一層是2.2.2.2,第二層是3.3.3.3,而本次請求的來源IP4.4.4.4是第三層代理
如果配置了X-Read-IP,將會是:
  X-Real-IP: 1.1.1.1
  所以 ,如果只有一層代理,這兩個頭的值就是一樣的
(5)Accept-Language請求頭允許客戶端聲明它可以理解的自然語言,以及優先選擇的區域方言

 來吧來吧,先看看頁面長什么樣,看看和之前的也沒什么變化,只是這里多了個一個your ip address is 127.0.0.1

搜嘎,這里估摸着是要記錄你每次訪問的ip地址,以前看到過uagent注入,翻翻文章,果斷有了騷思路。

先看看源代碼

這里看見兩個參數都被check了一番 不用考慮 了 那么從用戶輸入的數據不可信的角度來講 我們該 從哪里下手吶

我們看到了$insert="INSERT INTO `security`.`uagents` (`uagent`, `ip_address`, `username`) VALUES (‘$uagent‘, ‘$IP‘, $uname)";將useragent和ip插入到數據庫中,那么我們是不是可以用這個來進行注入呢?首先這里要輸入正確的賬號和密碼才能繞過賬號密碼判斷,才能進入處理uagent部分,

說句實話 注入的條件有點苛刻 必須要前面的密碼和用戶名審核正確才能注入 我滴天 我弄了半天  我的用戶名 admin 密碼空

0X02接下里開始我們的注入之旅

經過這次嘗試可以看到:修改XFF頭對IP沒有影響,登陸成功會回顯你的User-Agent
這里要輸入正確的賬號和密碼才能繞過賬號密碼判斷,進入處理User-Agent部分。這跟現實中的注冊登錄再注入是比較貼合。

所以注入點就在User-Agent

 

加入單引號 在user-agent的地方

 

 看見報錯信息

猜想在數據中的sql語句為:INSEERT INTO table VALUES('User-Agent','Ip','Username')

 

接下來我們嘗試在User-Agent的位置進行注入測試,我們修改User-Agnet的值使其符合整個INSERT INTIO 的語法,閉合后就應該為

 

INSEERT INTO table VALUES('1' ,1,1)#','Ip','Username'),成功繞過

 

,相當於將sql語句改變成INSEERT INTO table VALUES('1)','Ip','Username')

 

 並沒有報錯 成功繞過

1',1,1')#報錯了 這里三個一的意思是要插入3個數據 

而且還爆出了正確的值應該是什么

好的寶貝 那我們開始構造我們的語句

 0X03爆數據庫

1',1,updatexml(1,concat(0x3a,database(),0x3a),1)a)#

 

 

 0X04爆表名

User-Agent: 1',1,updatexml(1,concat(0x3a,(select table_name from information_schema.tables where table_schema='security'),0x3a),1))#

得到報錯 這句話

Subquery returns more than 1 ro

百度翻譯結果

 

子查詢返回1個以上的ro

意思就是叫我們用limit嘛

成功

好的 今天的學習這個從早上學到了晚上

雖然還是不懂 但是還是得學習

接下來我會去仔細了解updatexml這個函數再mysql中的作用

 

切記 學習勿要浮躁 少就是多


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM