sqlmap命令大全

休闲 2026-10-17 04:01:07 48819
```html

sqlmap 最核心的命令一条命令就是 sqlmap -u "http://target.com/page.php?id=1"。别小看这一行,大全它背后干的命令事比很多人想象的多——识别数据库类型、探测注入点、大全猜解字段数、命令判断回显方式,大全全自动跑完。命令我见过不少新手上来就加一堆参数,大全结果连基本注入点都没确认,命令纯属瞎折腾。大全先让 sqlmap 自己跑一轮,命令看它报什么,大全再决定下一步。命令

指定参数注入的大全时候,-p 比什么都好使。命令比如 URL 里同时有 id 和 name 两个参数,你只想测 id,那就 sqlmap -u "http://target.com/page.php?id=1&name=test" -p id。不加 -p,sqlmap 会挨个测,浪费时间还可能触发 WAF。有一次我测一个站,不加 -p 直接被封 IP,加了之后精准打一个参数,十分钟出结果。

POST 请求用 --data。比如登录框 username=admin&password=123,命令是 sqlmap -u "http://target.com/login.php" --data="username=admin&password=123"。注意 URL 只写处理脚本的地址,参数全塞到 --data 里。如果表单有 CSRF token 或者 session 依赖,还得配合 --cookie 一起用。

Cookie 注入别忽略。--cookie="PHPSESSID=abc123; security=low" 这种写法很常见。有些站点把用户身份放在 Cookie 里,参数过滤反而松。我遇到过一个后台,URL 参数全用了预处理,但 Cookie 里的 uid 直接拼进 SQL,sqlmap 加上 --cookie 和 --level 2 就测出来了。--level 默认是 1,只测 GET 和 POST,调到 2 会加测 Cookie,调到 3 连 User-Agent 和 Referer 都不放过。

跑数据的时候,--dbs 列数据库,-D dbname --tables 列表,-D dbname -T tablename --columns 列字段,最后 --dump 拖数据。这一串命令我闭着眼都能敲。但有个细节:--dump 默认只拖前几行,想全拖加 --dump-all 或者指定 --start 和 --stop。有一次我忘了加,只拿到 10 条记录,还以为是注入点权限不够,折腾半天才发现是默认行数限制。

提速用 --threads,默认 1,调到 5 到 10 比较稳。太高容易把目标打挂,或者被防火墙盯上。我一般 --threads 5 配 --delay 0.5,每请求间隔半秒,既快又不至于触发频率限制。--random-agent 也常开,每次请求换 User-Agent,降低被识别概率。

绕过 WAF 的话,--tamper 是重头戏。比如 --tamper=space2comment 把空格换成 /**/,--tamper=between 把大于小于号替换掉。但 tamper 脚本不是越多越好,有时候叠加反而让 payload 失效。我习惯先跑 --identify-waf 看目标用的什么 WAF,再选对应的 tamper。有一回对着 Cloudflare 用 space2comment 死活不行,换成 charencode 才过。

文件读写别乱用。--file-read="/etc/passwd" 读文件,--file-write 写文件,前提是数据库用户有 FILE 权限且 secure_file_priv 没限制。我一般先 --privileges 看权限,再决定要不要试。--os-shell 更危险,直接弹系统 shell,只在授权测试里用。生产环境手滑敲了这个,基本等于把服务器送人。

最后说个实际场景。有次测一个 PHP 站,URL 是 news.php?id=10,sqlmap 自动跑出布尔盲注。我加 --technique=B 强制布尔,--dbms=mysql 指定数据库,--batch 全自动确认,半小时拖出管理员表。密码是 md5,扔到 cmd5 一查就出来了。整个过程没用什么高级参数,就是基础命令加耐心。工具再强,也得靠人判断哪里值得深挖。

```
本文地址:http://www.79wt.cn/news/1360d1099853.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

友情链接