当前位置:当前位置:首页 > 热点 > sqlmap使用 正文

sqlmap使用

[热点] 时间:2026-10-17 04:29:17 来源:力不从心网 作者:焦点 点击:126次

sqlmap 这东西,使用用好了是使用利器,用不好就是使用给自己挖坑。我见过太多人把它当傻瓜相机使,使用一条命令怼上去,使用结果不是使用被 WAF 拦得死死的,就是使用把目标库给搞崩了。先别急着敲命令,使用你得明白它到底在干嘛。使用

sqlmap 本质上是使用个自动化检测和利用 SQL 注入的工具。它替你干了那些重复的使用、手工会疯掉的使用事情——比如判断注入点、枚举数据库、使用拖数据。使用但它的使用核心逻辑很简单:给你一个带参数的 URL,它去试各种 payload,看哪个能触发数据库报错或者行为差异。就这么回事。

我常用的第一条命令永远是 python sqlmap.py -u "http://example.com/page?id=1" --batch。--batch 参数很重要,不然它会像个话痨一样问你几十个问题,烦死你。这条命令跑完,它会告诉你这个点能不能注入,能注入的话是什么类型。注意,别一上来就加 --dbs 或者 --dump,那是急着找死的行为。先探测,再动手,节奏要对。

真实场景里,你遇到的几乎不会是那种裸奔的注入点。总有 WAF 挡在前面,或者参数被编码过。这时候就得靠 tamper 脚本了。sqlmap 自带的 tamper 目录里躺着一堆现成的,比如 space2comment 把空格换成注释,between 把等号换成 between 语法。我习惯先拿 --tamper=space2comment 试试水,很多低版本的 WAF 就吃这一套。要是还不行,就得自己写 tamper 了,说白了就是个 Python 函数,改改 payload 字符串,没多神秘。

还有个坑,很多人忽略——请求头。目标站可能只允许特定 User-Agent 访问,或者需要登录后的 Cookie。你直接拿个裸请求去打,人家服务器理都不理你。所以 --headers="User-Agent: Mozilla/5.0..." 或者 --cookie="session=xxx" 得带上。这不算什么高深技巧,但就是能省你半天时间。

再说说速度控制。默认的线程数可能太快,目标站响应一慢,sqlmap 就容易误判。我一般加 --delay=1,每请求之间歇一秒。慢是慢点,但结果干净。你要是急着出数据,可以试试 --threads=3,但别超过 5,不然目标站挂了,你连日志都没得看。

真到了拖数据那步,别贪心。先 --current-db 看看当前库,再 --tables -D 库名 看表。别一上来就 --dump-all,那玩意能把几千张表全给你拉下来,你硬盘满了不说,目标站日志里全是你的大动作。挑重点,比如 -T users --columns 先看列,再 -T users -C username,password --dump 精准拿。密码字段经常是 hash,sqlmap 会尝试自动识别,但碰上自定义加密,它也没辙,你得自己截下来另做处理。

最后说个我自己的习惯。跑完一次 sqlmap,我会把输出存成文件,-o output.txt 或者直接重定向。别信自己的记忆,命令行滚过去就没了。回头写报告或者复盘的时候,翻文件比翻脑子靠谱多了。

工具终归是工具。sqlmap 再强,它也替代不了你对目标业务逻辑的理解。我见过有人拿它扫了三天,一无所获,结果手工测了一下,发现注入点在 JSON 参数里,sqlmap 默认根本不会去碰。所以,用它,但别迷信它。你得知道它什么时候会失灵,然后补上那一刀。

(责任编辑:探索)

相关内容
精彩推荐
热门点击
友情链接