Sqlmap全参数讲解之第七篇

admin 2025年6月9日01:42:48评论18 views字数 3584阅读11分56秒阅读模式

免责声明

本文只做学术研究使用,不可对真实未授权网站使用,如若非法他用,与平台和本文作者无关,需自行负责!

Brute force:爆破

    • 🔍暴力破解表名:当目标数据库因权限限制、版本过低(如 MySQL < 5.0)或类型特殊(如 Microsoft Access)导致无法通过 information_schema 获取表信息时,此参数通过预置字典(txt/common-tables.txt)暴力猜测表名
    • 💡典型场景:
      • 目标为旧版 MySQL 或 Access 数据库,系统表不可读
      • 当前数据库用户权限不足,无法查询系统表结构
    • 与常规表枚举的区别:常规命令 --tables 依赖数据库系统表,而 --common-tables 完全绕过系统表,直接尝试常见表名(如 users、admin)
    • 典型用法:
      • 基础语法:sqlmap -u <目标URL> --common-tables [其他参数]
Sqlmap全参数讲解之第七篇
      • 常用场景与命令:

操作目标

命令示例

作用

破解 Access 数据库表名

sqlmap -u "http://1.1.1.1/vuln?id=1" --common-tables

使用内置字典猜测所有表名 

排除系统库后破解用户表

sqlmap -u <URL> --common-tables --exclude-sysdbs

仅针对用户创建的表爆破

多线程加速破解(防超时)

sqlmap -u <URL> --common-tables --threads=10

设置线程数提升效率(默认1)

    • 注意事项:
      • 依赖条件:
        • 需确认注入点有效:先通过 --dbs 验证注入可行性,否则破解无效
        • 字典局限性:默认字典(common-tables.txt)仅包含常见英文表名,对中文或自定义表名需手动扩充字典
      • 性能与隐蔽性:
        • 高负载风险暴力破解可能触发数据库性能瓶颈或 WAF 防护,建议添加 --delay=2 降低请求频率
        • 优化字典:编辑 txt/common-tables.txt 添加目标业务相关表名(如 employee、product),提升命中率
      • 替代方案:
        • 若支持系统表查询,优先使用 --tables(更高效)
        • 对大型数据库,先用 --count 统计表行数,再针对性破解关键表
    • 💎 总结:
      • 核心价值:--common-tables 是应对非常规数据库环境的终极手段,尤其适合渗透测试中突破权限或兼容性限制的场景
      • 操作流程:
        • 验证注入点 → --dbs → --tables(若失败则转 --common-tables)
        • 扩充字典:根据业务特征添加表名至 common-tables.txt 
        • 合法授权:仅限授权测试环境使用,滥用违反《网络安全法》
      • 📌扩展命令:
        • 暴力破解列名 → --common-columns
        • 读取服务器文件 → --file-read="/etc/passwd"
  • --common-columns:用于暴力破解数据库列名的核心参数,主要应用于无法通过常规注入手段(如 information_schema)获取列信息的场景
    • 🔍暴力破解列名:当目标数据库不支持系统表查询(如 MySQL < 5.0、Microsoft Access)或当前用户权限不足时,通过预定义字典(common-columns.txt)暴力枚举列名
    • 💡典型场景:
      • 旧版 MySQL 或无 information_schema 的数据库
      • 需绕过权限限制获取敏感字段(如 password、email)
    • 📊依赖字典文件:
      • 默认字典路径:sqlmap/txt/common-columns.txt,包含常见列名(如 user、pass、email)
      • 用户可自定义字典,添加行业特定字段(如金融系统的 credit_card)
    • 典型用法:
      • 基础语法:sqlmap -u <目标URL> --common-columns [其他参数]
Sqlmap全参数讲解之第七篇
      • 常用组合场景:

场景

命令示例

作用

暴力破解指定表的列名

sqlmap -u "http://1.1.1.1/vuln?id=1" --common-columns -D user_db -T users

枚举 user_db.users 表的所有列

结合延时注入优化破解

sqlmap -u <URL> --common-columns --delay=2 --threads=10

降低请求频率,避免触发 WAF

排除系统库后破解用户表

sqlmap -u <URL> --common-columns --exclude-sysdbs

仅针对用户创建的数据库表操作

    • 注意事项:
      • 依赖前置条件:
        • 需先确认注入点有效(如通过 --dbs 或 --tables 验证)
        • 若目标支持常规注入(如 --columns),优先使用标准方式(效率更高)
      • 性能与隐蔽性:
        • 高负载风险:暴力破解可能产生大量请求,需结合 --delay(延迟请求)或 --proxy(代理隐匿)
        • 字典适配性:默认字典可能不覆盖业务特定字段,需手动扩充 common-columns.txt
      • 替代方案:
        • 精准注入:已知表名时,优先使用 -T <表名> --columns
        • 智能猜测:结合 --search -C "pass" 搜索含特定关键词的列
    • 💎 总结:
      • 分阶段操作:
        • 先通过 --count 统计表行数,评估破解可行性
        • 分批次枚举:对大型表使用 --start/--stop 分页(如 --start 0 --stop 100)
      • 法律合规性:⚠️仅限授权测试,未授权使用违反《网络安全法》
      • 高阶技巧:
        • 与 --tamper 结合:调用 space2comment.py 等脚本绕过 WAF 规则
        • 结果验证:将破解出的列名通过 --sql-query 手动验证(如 SELECT credit_card FROM customers)
      • --common-columns 是应对非常规数据库环境的备用方案,适用于权限受限或系统表不可读的场景,但需谨慎控制请求频率以避免失效
  • --common-files:用于 暴力破解常见文件路径 的参数,主要用于在数据库不支持标准信息表(如 information_schema)时,通过预定义字典检测目标服务器上的敏感文件
    • 🔍暴力破解文件路径:当目标数据库不支持 information_schema(如旧版 MySQL、Access 等)或权限不足时,通过加载内置字典(txt/common-files.txt)检测服务器上的常见文件(如配置文件、日志、备份文件等)
    • 💡典型场景:
      • 检测敏感配置文件(如 /etc/passwd、web.config)
      • 查找数据库备份文件(如 .sql、.bak)
      • 绕过权限限制,获取系统文件路径
    • 📊依赖场景:
      • 数据库为 MySQL <5.0 或 Microsoft Access,系统表不可读
      • 当前数据库用户权限不足,无法访问系统表(如 MSysObjects)
    • 典型用法:
      • 基础语法:sqlmap -u <目标URL> --common-files [其他参数]
Sqlmap全参数讲解之第七篇
      • 常用场景与命令:

场景

命令示例

作用

检测服务器常见文件

sqlmap -u "http://1.1.1.1/vuln?id=1" --common-files

扫描预定义字典中的文件路径(如/etc/passwd)

结合数据库枚举

sqlmap -u <URL> --common-files --batch

在无权限时同步检测文件与数据库

自定义字典路径

sqlmap -u <URL> --common-files --file=/custom/path.txt

使用用户自定义字典替代默认文件

    • 注意事项:
      • 权限与依赖:
        • 需确认注入点存在:若目标无 SQL 注入漏洞,命令无效(建议先用 --dbs 验证)
        • 高权限要求:读取系统文件需数据库用户具备文件读写权限(通过 --privileges 检查)
      • 字典定制与性能:
        • 默认字典路径:txt/common-files.txt,可编辑添加自定义路径(如 c:windowssystem.ini)
        • 性能影响:高频请求易触发 WAF 拦截,需添加 --delay=2 或 --proxy 降低频率
      • 隐蔽性风险:
        • 易触发告警:大量文件检测请求可能被安全设备记录,建议结合 --tamper 脚本(如 space2comment)绕过规则
    • 💎 总结:
      • 核心价值:--common-files 是 无信息表支持时的终极备选方案,尤其适用于老旧系统或权限受限环境
      • 优先选择:若数据库支持 information_schema,优先使用常规枚举参数(如 --tables、--columns)
      • 最佳实践:
        • 预检权限:先用 --is-dba 确认是否为管理员权限
        • 分阶段执行:大范围扫描时拆分字典,避免超时(如 --common-files --limit=50)
        • 日志清理:高危操作后调用 --sql-query="DELETE FROM audit_log" 清除痕迹
      • ⚠️法律合规:该参数可直接探测服务器文件系统,未授权使用违反《网络安全法》,仅限授权测试环境使用
      • 📌扩展技巧:
        • 文件下载:若检测到文件可读,用 --file-read 下载(如 --file-read="/etc/passwd")

原文始发于微信公众号(一个努力的学渣):Sqlmap全参数讲解之第七篇

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月9日01:42:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Sqlmap全参数讲解之第七篇https://cn-sec.com/archives/4147277.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息