實驗吧 加了料的報錯注入

2021-08-20 11:47:56 字數 2158 閱讀 2401

前言

不得不說這一題對我來說挺有難度的,以前沒有遇到過。看了別人的writeup過後,也想要記錄一下,給自己攢攢經驗

這題的解法有兩種:

(2)exp()報錯注入

hpf注入

檢視原始碼:

就是要提交post資料,我直接在burpsuite裡面操作。

隨便輸入兩個引數,頁面提示login failed。根據原始碼中的sql語句,我們試試username與password引數能否注入:

經過測試,兩個引數都可以注入,但是有很多引數都過濾了,使用burp的intruder模組來大概測試一下到底哪些引數被過濾了,下面是username欄位的結果:

union是過濾了的,=也是過濾了的

password也差不多是這些。但有一點值得注意:

如上圖,password欄位輸入()時,顯示的是login failed但是username欄位則是

user name unkwon error,可以推斷username欄位過濾了(),而password沒有過濾(),但是有趣的是username沒有過濾可以利用的函式名,例如extractvalue,但是password欄位過濾了函式名,意思就是只有拼接一下這兩個字段才能完成漏洞的利用,所以我們需要用到注釋符:/**/

接下來就是正常的注入流程了:

爆表名:

爆欄位名:

username=' or updatexml/*&password=1*/(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema regexp database() and table_name regexp 0x66666c6c34346a6a),0x7e),1) or '

這裡的表明轉換成16進製制

接下來查表:

得到flag:flag

####利用exp()報錯注入

由於出題人需要利用正則代替等號,所以也就沒有過濾exp()函式。

有關exp()溢位報錯注入,戳這裡:

我們直接上利用語句:

加了料的報錯注入 實驗吧

題目直接告訴了我們注入點存在於我們post進去的兩個變數,即username和password當中,f12檢視原始碼後得到提示,sql語句是以單引號的方式進行閉合的後進行注入測試。首先對username進行注入,經過初步測試對 進行了過濾,採用 進行繞過。顯示雖然waf被繞過username中依舊存...

實驗吧 加了料的報錯注入

頁面提示我們postusername與password兩個引數,看了看原始碼,裡面提示了我們sql語句 sql select from users where username username and password password 先隨手post幾個數試試,發現頁面返回有四種形式,當輸入ad...

實驗吧 加了料的報錯注入 exp報錯注入

先檢視頁面原始碼得到提示知道了後台執行的sql語句,很常規的查詢 測試了乙個報錯函式發現如下回顯,可見遮蔽了報錯資訊,也有可能是監測到了updatexml這個報錯函式,於是先用burp來fuzzing測試一波,看看哪些關鍵字 被遮蔽了 burp抓包並send to intruder 分別對usern...