游客发表

sqlmap教程

发帖时间:2026-10-17 04:50:52

sqlmap是教程sql注入测试里最顺手的工具,没有之一。教程它不像某些商业扫描器那样给你一堆云里雾里的教程报告,而是教程直接告诉你:这个参数能打,那个库能脱,教程甚至帮你把shell都弹出来。教程

安装没什么好说的教程,kali自带,教程别的教程系统就一条命令。真正要花心思的教程是参数组合。很多人上来就sqlmap -u "http://target.com/page?教程id=1",跑完看结果,教程没注入就换下一个目标——这是教程典型的脚本小子玩法。sqlmap最值钱的教程是它的--level和--risk参数,默认level=1只测最基础的教程报错和布尔盲注,但真实站点的注入点往往藏在cookie、Referer头甚至User-Agent里。把level提到3,它会连HTTP头一起测,很多开发人员会忽略这些地方的过滤。

有一次我拿一个老系统练手,URL参数过滤得跟铁桶似的,id、name全被转义。随手把--level=5 --risk=3扔上去,结果在X-Forwarded-For头里翻出了MySQL报错——那是个IP白名单逻辑,开发直接拼接SQL查数据库比对来源。这种洞,纯手工找得花半小时,sqlmap三分钟定位。

跑出注入点只是第一步。真正让它强大的是--tamper脚本。WAF不是爱拦union select吗?加个space2comment把空格换成/**/,或者between改写比较运算,很多规则就废了。我见过最狠的一次,对方装了某知名云WAF,普通查询直接403,挂上--tamper=charencode把payload做URL编码,再配合--random-agent换UA,硬是绕过去了。别指望单个tamper万能,多试几个组合,sqlmap的tamper目录里有几十个现成的,翻一遍就知道攻防思路了。

数据获取阶段别傻乎乎全表脱。先--dbs看有哪些库,再-D 库名 --tables看表,最后挑敏感表-T users --dump。直接全库拖下来,目标站点可能几百MB,网络慢点得等半天,还容易触发日志告警。另外,--batch配合--answers能跳过交互确认,自动化脚本里必加。

最容易被忽略的是--sql-shell和--os-shell。前者相当于在目标数据库里开了个交互终端,能直接执行任意SQL;后者更狠,如果能拿到DBA权限且知道网站绝对路径,直接写个webshell上去。我上次做渗透测试就是这么拿下的一台内网服务器——注入点在后台登录框,数据库是PostgreSQL,--os-shell弹出来的时候我都愣了,对方居然开了COPY ... FROM PROGRAM权限,直接执行系统命令。

工具终究只是辅助,关键在于判断。sqlmap报错说all tested parameters are not injectable的时候,别急着换目标。看看是不是参数需要登录态——加个--cookie或--data带上POST体。还有,有些站点用JS渲染参数,sqlmap直接跑URL是空的,先用浏览器抓真实请求,把完整包丢给-r request.txt,这样比手动填URL靠谱得多。

最后提醒一句:sqlmap跑得再欢,也别忘了看数据库版本和当前用户权限。MySQL 5.7以下还能用--os-shell碰碰运气,高版本默认禁止了--secure-file-priv,写文件这条路基本堵死。PostgreSQL倒是有不少妙招,但权限控制比MySQL严,得先--current-user确认是不是超级用户。别一上来就想着getshell,先拿数据,再提权,顺序别搞反。

    热门排行

    友情链接