SQL二次注入原理分析

news/2024/7/8 5:15:51 标签: sql, 数据库, web安全, 安全, 网络, php, 开发语言

二次注入在测试的时候比较少见,或者说很难被测出来,因为测的时候首先要去找注入的位置,其次是去判断第一次执行的SQL语句,然后还要去判断第二次进行调用的 SQL 语句。而关键问题就出在第二次的调用上面。

下面以一个常用过滤方法来说明具体问题。

95e79effeb801488fa51881bbab39241.png

通过addslashes函数的转换可以将查询语句中的单引号进行转义,避免了在查询中出现 SQL 注入的问题。那我们接下来换一个语句,看一下会出现什么效果。

8e957848f34534f2221e521064e97a5c.png

55951a8451e823048a7ca97fbf74db67.png

能够发现我们插入语句中的单引号在执行SQL语句的时候是被转义了的,而在数据库中这个单引号却还是被直接存放在数据库没有添加我们的转义符。

这也是addslashes函数的一个特点,只负责在查询之前进行转义危险字符,但不会修改原始数据。那么当被插入的危险数据又被调用成查询条件呢?这个时候就变成二次注入了。

9f0d091dafb5c7ac61afe79b31bc3f1d.png

其中 addslashes 函数中的数据是用户插入的数据,先不谈这个程序的逻辑有点愚蠢,因为只是为了演示,现实中的程序会将第一次的查询结果用来操作另外的数据表或者进行删改操作。

可以看到最终执行的语句就一个盲注的语法。


http://www.niftyadmin.cn/n/5536601.html

相关文章

vue全局方法plugins/utils

一、在src目录下创建一个plugins文件夹 test.ts文件存放创建的方法,index.ts用于接收所有自定义方法进行统一处理 二、编写自定义方法 // test.ts文件 export default {handleTest(val1: number, val2: number) {// 只是一个求和的方法return val1 val2;}, };三…

行业模板|DataEase旅游行业大屏模板推荐

DataEase开源数据可视化分析工具于2022年6月发布模板市场(https://templates-de.fit2cloud.com),并于2024年1月新增适用于DataEase v2版本的模板分类。模板市场旨在为DataEase用户提供专业、美观、拿来即用的大屏模板,方便用户根据…

easyquotation获取港股的bug

easyquotation:实时股票数据获取 easyquotation库,是一个非常好用的实时股票数据获取库,可以实时获取新浪、腾讯的免费股票行情,集思路的分级基金行情 安装 项目地址:https://github.com/shidenggui/easyquotation.…

Trinity Bots战场以及游荡佣兵设置相关

bots开关 NpcBot.Ebable.Raid 1 打开raid允许,这样团本也能带佣兵进去打了。 NpcBot.Ebable.BG 1 打开战场允许,这样战场也能带佣兵进去了。 NpcBot.Ebable.Arena 1 竞技场带佣兵。 默认已经开放的是: NpcBot.Ebable.Dungeon 1…

使用zdppy_api+onlyoffice word文档在线共同编辑,附完整的vue3前端代码和python后端代码

参考文档: https://api.onlyoffice.com/zh/editors/basic https://api.onlyoffice.com/zh/editors/coedit 基本的架构思考: 文档表:记录的是文档信息 key:这个key可以标识唯一的一个文档,可以是文档的hash值fileType…

Selenium:原理与使用指南

文章目录 简介Selenium 的原理安装 Selenium基本使用示例代码说明 常用操作查找元素交互操作等待处理弹窗 高级功能截屏执行 JavaScript切换窗口 结论 简介 Selenium 是一个用于 Web 应用程序自动化测试的强大工具。它提供了一系列库和工具,支持多种浏览器和编程语…

uniapp中webSocket使用Https访问连接失败

环境 uniapp写微信小程序,使用webSocket连接后台spring boot通信 在开发环境中使用 ws://xxx 连接正常, 但是微信小程序需要配置https访问,webSocket需要使用 wss:// 来连接, 使用wss:// 域名 访问时,一直连接不上&a…

在docker配置Nginx环境配置

应用于商业模式集中,对于各种API的调用,对于我们想要的功能进行暴露,对于不用的进行拦截进行鉴权。用于后面的付费 开发环境 正式上线模式 一、常用命令 停止:docker stop Nginx重启:docker restart Nginx删除服务&a…