知识

sqlmap命令

时间:2010-12-5 17:23:32  作者:热点   来源:休闲  查看:  评论:0
内容摘要:sqlmap 这东西,用好了是利器,用不好就是给自己挖坑。别把它想得多玄乎,它本质上就是个自动化检测 SQL 注入漏洞的工具,只不过做得足够狠、足够全。 先看最基础的用法。你拿到一个 URL,怀疑有注

sqlmap 这东西,命令用好了是命令利器,用不好就是命令给自己挖坑。别把它想得多玄乎,命令它本质上就是命令个自动化检测 SQL 注入漏洞的工具,只不过做得足够狠、命令足够全。命令

先看最基础的命令用法。你拿到一个 URL,命令怀疑有注入点,命令直接 sqlmap -u "http://example.com/page?命令id=1" 跑一遍。它会自己探测参数、命令识别数据库类型、命令判断注入手法。命令默认情况下它不会乱来,命令只做检测,不碰数据。第一次跑的时候,它会问你一堆问题,比如“这个参数看起来像数字,要不要试?”你直接回车选默认就行,大部分时候默认选项是合理的。

真正让它强大的是 --dbs 参数。检测到注入后,加这个参数能直接列出所有数据库名字。接着 -D 数据库名 --tables 拖出表名,-D 数据库名 -T 表名 --columns 看字段,最后 --dump 把数据全导出来。一条龙下来,只要目标站点的数据库权限没做好隔离,你就能看到一堆明文密码、手机号、身份证号。我见过不少“安全测试报告”就是这么来的——跑一遍 sqlmap,截图,完事。

但别高兴太早。真实环境没那么干净。很多站点有 WAF(Web 应用防火墙),sqlmap 默认的请求特征太明显,直接被拦。这时候需要 --tamper 参数,它用来加载各种绕过脚本。比如 --tamper=space2comment 能把空格替换成注释符,--tamper=between 把比较操作符换成 BETWEEN 写法。选对了 tamper,WAF 就像瞎了一样。不过别指望一个脚本通吃,得根据目标用的什么 WAF 来组合,这需要点经验。

还有个实用场景是登录后的页面。很多注入点藏在后台功能里,不带 Cookie 根本访问不到。用 --cookie="session=xxxx" 把登录状态带上去,或者更省事,用 --data="username=admin&password=123" 配合 --forms 让它自动解析表单。有一次我测试一个内部系统,登录页有个“忘记密码”功能,注入点就在邮箱参数里。用 --forms 跑了两分钟,直接拿到管理员密码哈希。那系统的开发估计没想到有人会拿 sqlmap 对付一个找回密码的接口。

速度也是个问题。默认情况下一秒发好几个请求,目标服务器扛得住,但你的 IP 可能很快被封。加 --delay=1 让每个请求间隔一秒,或者 --random-agent 随机换 User-Agent 伪装浏览器。要是目标在海外,走代理 --proxy="socks5://127.0.0.1:1080" 更稳。这些细节决定你能不能跑完整个流程,而不是跑到一半被踢下线。

最后说点实在的。sqlmap 不是万能的,它跑不出来的注入不代表不存在。有些注入点藏得深,需要手工配合 Burp Suite 去挖。但一旦确认了注入点,sqlmap 的自动化能力能省下你大量重复劳动。我建议你把它当做一个“数据提取器”来用——手工找到注入点,确认可行,然后交给 sqlmap 去拖数据。这样比盲目扫描高效得多,也更能体现你的技术判断力。

工具本身没有对错,关键看谁在用。你拿它做授权测试,它是效率神器;你拿它乱打别人的站,那就是违法。别问我怎么知道的——我见过有人因为跑 sqlmap 把自己跑进了派出所。命令行敲下去之前,先想想那个域名是不是你该碰的。

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