工具介绍
xia_tan (瞎探) v1.0 --- BurpSuite 多漏洞自动化探测插件
通过修改请求参数对常见 Web 漏洞进行自动化初步探测 的 BurpSuite 扩展插件。支持反射 XSS、SQL 注入(10 种数据库)、SSTI 模板注入(6 大家族 20+ 引擎)、NoSQL 注入,采用行级 Jaccard 相似度算法 替代传统响应长度对比,结合多步布尔盲注对照算法大幅降低误报率。

功能特性
1. 反射 XSS 探测
- 注入唯一 HTML 标记
<xia0tan>检测反射 - 未编码反射 (标签原样返回)→ 严重性 High
- 编码反射 (标记文本返回但 HTML 标签被编码)→ 严重性 Info
- 自动跳过
Content-Type: application/json的响应(JSON 响应无 XSS 风险) - 基线中已包含标记时自动跳过(降噪)
2. SQL 注入探测
2.1 支持的数据库(10 种)
| 数据库 | 报错特征数量 | 示例特征 |
|---|---|---|
| MySQL/MariaDB | 21 | SQL syntax.*MySQL, XPATH syntax error, Division by 0 |
| MSSQL | 12 | Unclosed quotation mark, Divide by zero error |
| PostgreSQL | 10 | ERROR: syntax error at or near, division by zero |
| Oracle | 8 | ORA-\d{4,5}, divisor is equal to zero |
| SQLite | 7 | SQLITE_ERROR, unrecognized token |
| DB2 | 5 | CLI Driver.*DB2, SQLCODE |
| Informix | 3 | com.informix.jdbc |
| Sybase | 3 | Adaptive Server |
| MS Access | 3 | JET Database Engine |
| HQL/Hibernate | 4 | org.hibernate.QueryException |
2.2 检测方式
| 阶段 | 检测类型 | 说明 |
|---|---|---|
| 2A | ORDER BY 注入 | 针对排序参数(sort, order 等),使用 UPDATEXML/EXTRACTVALUE/FLOOR 报错 + CASE WHEN 条件差异 |
| 2B | 数字型注入 | 纯数字参数追加 /1 和 /0,对比响应差异和除零报错 |
| 2C | 报错探针 | 发送 '"\ 触发语法错误,正则匹配 10 种数据库特征 |
| 2D | MySQL XPATH 报错 | 5 种 UPDATEXML/EXTRACTVALUE payload,覆盖单引号/括号/数字型上下文 |
| 2E | 布尔盲注 | 全新 OR/AND 多步对照算法(见下方详细说明) |
| 2F | 延时注入 | 5 种数据库 SLEEP/WAITFOR/pg_sleep 快速轮询,命中即停 |
2.3 延时注入 WAF 绕过
| 数据库 | 绕过技巧 |
|---|---|
| MySQL | BENCHMARK(), ST_Buffer(), JSON_KEYS(), ELT(), XOR, 注释混淆 SLEEP/**/(), 大小写变异 SlEEp() |
| MSSQL | WAITFOR DELAY, 变量延迟 DECLARE @d, 条件延迟 IF(1=1) |
| PostgreSQL | pg_sleep(), 子查询延迟, ` |
| Oracle | DBMS_PIPE.RECEIVE_MESSAGE(), DBMS_LOCK.SLEEP(), UTL_INADDR |
| SQLite | RANDOMBLOB() 大计算量延迟, LIKE(UPPER(HEX(...))) |
3. SSTI 模板注入探测
覆盖 6 大家族 20+ 模板引擎,每个家族使用不同的唯一操作数,通过计算结果精确定位被执行的模板语法。
| 表达式语法 | 覆盖引擎 | 操作数示例 |
|---|---|---|
{``{A*B}} |
Jinja2, Twig, Pebble, Nunjucks, Handlebars, Smarty3 | 91371×91373 |
${A*B} |
Freemarker, Mako, Groovy, EL/JSP, Velocity, Thymeleaf | 91374×91376 |
<%=A*B%> |
ERB (Ruby), EJS (Node.js), ASP | 91377×91379 |
#{A*B} |
SpEL (Spring), Jade/Pug | 91380×91382 |
@(A*B) |
Razor (.NET) | 91383×91385 |
{A*B} |
Smarty2 (PHP) | 91386×91388 |
与 XSS 探测合并在同一请求中发送,节省请求数量。基线中已包含计算结果时自动跳过(降噪)。
4. NoSQL 注入探测
4.1 布尔盲注(字符串上下文)
使用与 SQLi 相同的 OR/AND 多步对照算法,但语法为 JavaScript 风格:
| Payload | 语义 |
|---|---|
| `' | |
| `' | |
' && '1'=='1 |
AND 恒真 |
' && '1'=='2 |
AND 恒假 |
4.2 操作符注入(JSON 请求体)
将 JSON 字段值替换为 MongoDB 操作符,检测响应差异和错误:
| 操作符 | Payload |
|---|---|
$gt |
{"$gt":""} |
$ne |
{"$ne":""} |
$regex |
{"$regex":".*"} |
$exists |
{"$exists":true} |
$where |
{"$where":"return true"} |
4.3 错误检测
覆盖 MongoDB, CouchDB, Elasticsearch, Cassandra, Redis 的 24 种错误模式。
5. Cookie 参数探测
默认关闭,勾选 Cookie 开关后启用。启用后会将 Cookie 中的参数与 GET/POST 参数同等对待,逐一进行注入探测。Cookie 参数同样受 Exclude params 排除列表控制。
严重性说明
| 颜色 | 级别 | 含义 |
|---|---|---|
| 🔴 红色 | High | 高置信度确认(报错注入、布尔盲注确认、延时确认、未编码 XSS 反射、SSTI 运算确认) |
| 🟠 橙色 | Medium | 中置信度(NoSQLi 操作符差异、编码反射等) |
| ⚪ 白色 | Possible | 低置信度(仅相似度差异、需人工确认) |
| 🔵 蓝色 | Info | 信息性(编码反射等) |
工具下载
https://github.com/mapl3miss/xia_tan/tree/main