热点

sqlmap注入命令

时间:2010-12-5 17:23:32  作者:知识   来源:百科  查看:  评论:0
内容摘要:sqlmap 这东西,用之前得先明白一个道理:它只是工具,真正的功夫在命令怎么组合。我见过太多人拿着 `-u` 一通乱扫,结果啥也没跑出来,就骂工具不行——其实是你没给它指对路。 最基础的,`pyth

sqlmap 这东西,注入用之前得先明白一个道理:它只是命令工具,真正的注入功夫在命令怎么组合。我见过太多人拿着 `-u` 一通乱扫,命令结果啥也没跑出来,注入就骂工具不行——其实是命令你没给它指对路。

最基础的注入,`python sqlmap.py -u "http://target.com/page?命令id=1"`。这行命令告诉 sqlmap:嘿,注入去这个 URL 的命令 id 参数上试试。但光这样远远不够。注入你得学会加 `--batch`,命令让它别老问你 y/n,注入直接全默认跑下去。命令不然半夜挂机跑注入,注入它突然弹个问题等你回答,你人在床上,直接卡死到天亮。

再说说 `-p` 参数。默认情况下 sqlmap 会测所有参数,但有些时候你明明知道漏洞就在某个参数上,比如搜索框的 `keyword`,那你就得 `-p keyword` 精准打击。省时间,也省得它瞎折腾其他无关参数惹出乱子。有次我测一个登录框,sqlmap 默认去测了 cookie 和 User-Agent,结果把对方 WAF 给触发了,IP 直接被封。后来加了 `-p username` 才绕过风控,这教训挺实在的。

绕 WAF 是重头戏。`--tamper` 参数能加载脚本改写 payload。比如 `--tamper=space2comment` 把空格换成注释符,或者 `--tamper=between` 把比较符换成 `BETWEEN ... AND`。但别一股脑全上,有些 tamper 脚本组合起来反而让请求变得奇慢无比。我一般先 `--tamper=space2comment` 试试水,不行再上 `--random-agent` 换个浏览器标识,再不行就考虑 `--level 3 --risk 2` 加大测试深度。注意,level 和 risk 调高意味着更多请求,测试时间成倍增长,你得有耐心。

再说说数据提取。跑出注入点后,别急着 `--dump` 拉全库。先 `--current-db` 看看当前库名,再 `--tables -D 库名` 看表,`--columns -T 表名 -D 库名` 看列,最后才 `--dump -C "username,password" -T users -D webapp`。一步步来,免得一次性拉几十张表的数据,输出文件大得打开都卡。而且有些表根本没用,纯属浪费时间。

还有个实用技巧:`--sql-shell`。如果对方是 MySQL 或 PostgreSQL,你可以直接进去执行 SQL 语句。比如 `--sql-shell` 后输入 `select load_file('/etc/passwd')`,前提是对方有 FILE 权限。这比一步步猜表名快多了。但注意,sql-shell 交互模式下别乱执行写操作,万一搞坏了数据,责任在你。

最后说个容易忽略的:`--proxy`。如果你在测试一个生产环境的站点,务必挂上代理,比如 `--proxy="http://127.0.0.1:8080"`,用 Burp 或 mitmproxy 盯着流量。这样既能观察 sqlmap 实际发了什么 payload,也能在出问题时快速拦截。别裸奔直接打,不然对方日志里全是你的扫描痕迹,出事了你连个辩解的机会都没有。

sqlmap 命令这东西,背参数没意义。你得在实战里踩坑,比如遇到 `--dbms` 指定数据库类型能提速十倍,遇到 `--technique=E` 只测报错注入能避开布尔盲注的漫长等待。工具是死的,思路是活的。下次跑注入,先想想目标是什么类型,再挑对应的参数组合,别一上来就 `--dump-all` 那种莽夫操作。

最近更新
热门排行
copyright © 2026 powered by 力不从心网   sitemap