sqlmap靶场
第一次用sqlmap扫自己的靶场测试站,三分钟就拿到了数据库root权限。靶场那感觉像用一把万能钥匙开了自家门——原来门锁这么脆。靶场后来才知道,靶场靶场里那些看似正常的靶场登录框,背后藏着多少注入点。靶场 sqlmap这工具,靶场说白了就是靶场自动化SQL注入检测和利用。它不创造漏洞,靶场只是靶场把手工注入的繁琐流程打包成命令。你给它一个URL,靶场它帮你判断注入类型、靶场猜表名、靶场爆字段、靶场拖数据,靶场甚至直接拿shell。很多人第一次接触它,是在DVWA或者sqli-labs这类靶场里,点几下鼠标,命令行跑一跑,数据库就出来了。 我见过有人在公开靶场里用sqlmap跑出数据后截图发朋友圈,配文“又拿下一個”。靶场存在的意义是让你理解漏洞原理,不是让你当黑客表演。sqlmap的 拿sqli-labs的Less-1举例。手工注入时,你得先判断闭合方式: 还有个坑: 靶场的数据库是MySQL,表名规规矩矩叫users,字段叫username、password。真实环境里,表名可能是 我见过一个案例:某站搜索框用 sqlmap的 靶场练到最后,你会发现真正难的不是工具用法,而是判断哪里可能有注入。一个URL参数、一个Cookie值、甚至HTTP头里的X-Forwarded-For,都可能是入口。sqlmap能帮你验证,但发现靠的是经验。 别把sqlmap当黑盒。每次跑完,看看它生成的payload,想想为什么这个payload能生效。靶场里丢人没关系,真实环境里丢数据才要命。靶场不是让你炫技的地方
--batch参数会默认选择所有选项,新手往往一路回车,最后连自己注入了什么参数都没看清。这种用法,换个真实环境,第一步就被WAF拦了。?id=1'报错,?id=1' --+正常,说明单引号闭合。然后order by猜字段数,union select找回显位。这一套流程走下来,你对注入的理解才扎实。sqlmap一条-u "http://target/Less-1/?id=1"就全自动跑完,快是快,但脑子没动。那些被忽略的参数细节
--level和--risk这两个参数,默认值分别是1和1。level越高,测试的注入点越多,比如Cookie、User-Agent、Referer这些头部。risk越高,用的payload越激进,可能造成数据库报错甚至锁表。在靶场里可以随便调,生产环境调高就是给自己找麻烦。--threads。默认1,有人为了快调到10。靶场里没事,真实站点可能因为并发请求触发防护规则,IP直接被封。我自己的习惯是,靶场练习时保持默认,观察sqlmap每一步的输出,看它怎么判断布尔盲注、时间盲注。这些日志比结果更有价值。从靶场到真实场景的差距
t_usr_info_2023,字段名用拼音缩写,数据量几百万行。sqlmap跑起来慢得你想砸键盘。更别说还有参数化查询、存储过程、ORM框架这些防护手段。?keyword=传参,sqlmap检测出时间盲注,但跑--dump时每秒只返回一行数据。因为对方数据库有300万条记录,且网络延迟高。最后只能写脚本配合sqlmap的--sql-query逐条取。这种场景,靶场里永远遇不到。工具之外的东西
-r参数可以加载Burp Suite导出的请求文件,这对POST注入和需要登录的站点很实用。但很多人不知道,--csrf-token和--csrf-url能自动处理CSRF令牌。这些细节,说明书里写得清楚,但新手往往跳过文档直接搜“sqlmap使用教程”。
-
上一篇
-
下一篇