免责声明
本文只做学术研究使用,不可对真实未授权网站使用,如若非法他用,与平台和本文作者无关,需自行负责!
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 [其他参数]
- 常用场景与命令:
操作目标 |
命令示例 |
作用 |
破解 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 -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 -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全参数讲解之第七篇
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论