Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
cve-2026-5147-exp — 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. | Kitploit
Tools/GitHubGitHub/lan1oc/cve-2026-5147-exp
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration Testing
GitHublan1oc/cve-2026-5147-exp

cve-2026-5147-exp

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.

View Repository
25 months agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

cve-2026-5147 Exploitation Script

For authorized vulnerability validation and lab practice: performs MySQL boolean-based blind injection (EXP / INSTR or ASCII) and time-based blind injection (if + ascii + sleep) against SQL injection endpoints, with optional extraction of version, database name, table structure, and data (behavior similar to sqlmap's --dump).

Do not use against unauthorized systems.

Dependencies

root@kitploit:~
pip install requests

Default Behavior

  1. Boolean calibration first: sends two CURRENT_USER + INSTR probes to the injection point, using the business field in the response JSON (default code) to distinguish between "true / false" branches.
  2. Calibration successful: uses boolean-based blind injection throughout (-p instr or ascii).
  3. Calibration failed (side channel does not match expectations): automatically switches to time-based blind injection and performs another round of fast/slow request calibration.
  4. --skip-calibrate: skips the above calibration; still guesses using boolean + JSON fields, without automatic switching to time-based (suitable for local debugging).

The JSON field name and value used to determine "true" can be adjusted via --json-code-field and --json-code-true (must match the target API).

Quick Start

root@kitploit:~
# Domain only: appended to the default path (see DEFAULT_API_PATH in the script)
python cve-2026-5147.py -u target.example.com

# Specify HTTPS, custom path, and injection parameter name
python cve-2026-5147.py -u target.example.com --https --path /api/foo --param id

# Full database dump (extremely high request volume, use with caution)
python cve-2026-5147.py -u target.example.com dump

# Only pull table name strings, no data export
python cve-2026-5147.py -u target.example.com dump --schema-only

Progress and diagnostic information go to stderr, final summary goes to stdout.

Common Parameters

ParameterDescription
-u / --urlTarget (domain, host:port, or full URL), required
--pathPath appended to the host when no path is provided (default tenant-style API path)
--httpsUse https when no scheme is provided (defaults to http://)
--paramInjection parameter name (default website)
-p / --payloadBoolean fragment: instr or ascii (time-based injection is fixed to if+ascii+sleep)
--timeoutHTTP timeout (seconds); automatically set to no less than sleep+5 when entering time-based injection
--sleepsleep() seconds for time-based injection
--time-floorTrue condition: total elapsed time ≥ this value (seconds); default approximately sleep - 1
--json-code-field / --json-code-trueJSON field read for the boolean side channel and its "true" value
--skip-calibrateSkip probe calibration
--onlyversion / database / both: only pull version, only pull database name, or both
-H / -PAdditional request headers, extra query parameters; can be repeated

The dump subcommand also supports --schema-only, --dump-out, --dump-row-limit, --dump-select, etc. See python cve-2026-5147.py -h.

Subcommands

SubcommandMeaning
info (default)Pulls VERSION(), current database name DATABASE() (affected by --only)
dumpAdditionally pulls current database table names, per-table column names, and row data (or schema only, see --schema-only)

Review Notes (Code Level)

  • Main flow: main() first calls calibrate_sqli_oracle; on failure, sets effective_detect = "time" and calls bind_time_payload; in time mode, calls calibrate_time_oracle.
  • The JSON field display in boolean progress logs is now aligned with --json-code-field (no longer hardcoded to code).
  • The argparse help for command has been corrected so the default subcommand is info, not dump.

License and Responsibility

This script is intended for security research and authorized testing only. Users are responsible for ensuring compliance with local laws and the authorization scope of the target environment.

Download Tool