您现在的位置是:时尚 >>正文
kali中sqlmap的使用
时尚1564人已围观
简介打开Kali的终端,敲下 sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1",回车。几秒后屏幕上跳出一行黄字:GET paramet ...
打开Kali的使用终端,敲下 sqlmap -u "http://testphp.vulnweb.com/artists.php?使用artist=1",回车。使用几秒后屏幕上跳出一行黄字:GET parameter 'artist' is 使用vulnerable。这说明目标站点的使用 artist 参数存在 SQL 注入,而且 sqlmap 已经帮你确认了。使用整个过程不需要你手工构造 payload,使用一条命令就够了。使用
sqlmap 是使用 Kali 里预装的自动化 SQL 注入工具,用 Python 写的使用。它的使用核心能力是:给定一个可能存在注入的 URL,自动探测注入类型、使用识别后端数据库、使用枚举数据、使用甚至拿 shell。使用很多人第一次用它的时候会觉得太“傻瓜”——确实,默认配置下它几乎全自动,但真正好用的地方在于参数组合。
先搞清楚基础探测流程
最常用的入口是 -u 指定 URL。如果目标有多个参数,sqlmap 默认会逐个测试。想指定某个参数,加 -p:
sqlmap -u "http://example.com/page.php?id=1&name=test" -p id 如果请求需要 Cookie 才能访问,比如后台页面,用 --cookie="PHPSESSID=abc123"。POST 请求则用 --data="username=admin&password=123",sqlmap 会自动把注入点放在 POST body 里。
探测阶段 sqlmap 会发很多请求,目标如果有 WAF,很容易被封 IP。我一般加 --random-agent 随机 UA,再配合 --delay=1 降低频率。遇到 Cloudflare 这类,还得上 --tamper 脚本,比如 --tamper=space2comment 把空格替换成注释符绕过简单过滤。
拿到注入点之后干什么
确认存在注入后,第一件事是看数据库类型和版本:
sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --banner --current-db --banner 抓数据库指纹,--current-db 看当前库名。输出里会告诉你后端是 MySQL 5.7 还是 PostgreSQL 14,这决定了后续能玩什么花样。
接着列库里的表:
sqlmap -u "..." -D acuart --tables 假设看到 users 表,直接 dump 它的列和内容:
sqlmap -u "..." -D acuart -T users --columns sqlmap -u "..." -D acuart -T users -C uname,pass --dump --dump 会把数据导出到 /root/.sqlmap/output/ 下的 CSV 文件里。如果密码是哈希,sqlmap 还会问你要不要跑字典破解——这个功能我觉得挺鸡肋,不如自己拿 hashcat 跑。
几个容易被忽略但很实用的参数
--os-shell 和 --os-pwn 是进阶玩法。前者在数据库权限足够且支持堆叠查询时,能直接弹一个系统命令执行接口。我实测过 MySQL 环境下配合 --os-shell 拿到 www-data 权限的 shell,但前提是 secure_file_priv 没限制写入路径。
--technique 可以指定注入技术。默认是 BEUSTQ 全开,但有时候只想要布尔盲注,就写 --technique=B。时间盲注用 T,报错注入用 E。网络延迟高的时候,时间盲注的 --time-sec 默认 5 秒太长,改成 2 秒能快不少。
--threads 默认是 1,盲注场景下调到 5 到 10 能明显提速。但别贪心,线程太高容易触发目标限流。
一些实际踩过的坑
sqlmap 对 JSON 格式的 POST body 支持一般。遇到 Content-Type: application/json 的接口,得手动用 --data='{ "id":1}' 加上 --headers="Content-Type: application/json",有时候还得配合 --prefix 和 --suffix 修正 payload 闭合方式。
另外,sqlmap 的 --batch 参数在脚本里跑的时候必加,否则它会停下来等你输入 y/n。我写自动化扫描脚本时忘了加,结果卡在第一个交互提示上半小时才发现。
最后说一句:sqlmap 再强也只是工具。真正理解注入原理——联合查询、报错回显、布尔逻辑、时间延迟——才能在你遇到非标准场景时知道该调哪个参数。工具帮你省了手工构造 payload 的时间,但判断目标是否在射程内,还得靠人。
Tags:
上一篇:用好错题本 消除知识漏洞
下一篇:IIS网址提示4048
相关文章
南昌黑帽
时尚南昌的黑夜,不是纯黑的。路灯下浮着灰黄的尘,像一层没洗净的油膜。我站在八一桥头,看赣江的水把对岸红谷滩的霓虹揉碎了,又拼起来,反反复复。有人告诉我,真正的“黑帽”不在这光里,在那些老巷子深处——比如绳 ...
【时尚】
阅读更多龙渊涨rmb点f的漏洞
时尚《龙渊》里那个“1元宝=1RMB点”的兑换按钮,我点了不下五十次。每次都是同一个结果:元宝扣了,RMB点没到。这不是网络延迟,是代码写死了。 去年十一月,帮派里一个叫“断水”的玩家在语音里吼了一嗓子: ...
【时尚】
阅读更多测试工程师岗位职责和任职要求
时尚测试工程师的核心价值,不是“找bug”,而是用最低成本帮团队建立对产品质量的信心。我见过不少团队把测试当成上线前的最后一道闸门,结果版本一拖再拖,测试同学天天加班跑用例,上线后还是被用户揪出一堆问题。 ...
【时尚】
阅读更多