使用sqlmap进行sql注入

早就听说BT5sqlmap功能很强大,今天终于下决心拒绝DOTA和苍老师的诱惑,静下心来研究研究这个传说中的sqlmap!由于在虚拟机里面用的蛋疼,我直接在真机上也装了个BT5的系统,嘻嘻··,那感觉,真是流畅啊,各种不卡!

简单介绍下sqlmap吧,它是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URLSQL注入漏洞,目前支持的数据库是MS-SQL,,MYSQL,ORACLEPOSTGRESQLSQLMAP采用四种独特的SQL注入技术,分别是盲推理SQL注入,UNION查询SQL注入,堆查询和基于时间的SQL盲注入。其广泛的功能和选项包括数据库指纹,枚举,数据库提取,访问目标文件系统,并在获取完全操作权限时实行任意命令。

今天是用BT5下的sqlmap对一个真实的站进行一系列的操作,环境嘛就是bt5,+sqlmap,在操作之前我把所有的软件全部更新了一下,由于很久没进入真机上的bt5系统,所以更新了很久,提醒下,高版本的pythonsqlmap貌似兼容有问题,建议使用稳定版本的python+sqlmap,好了,下面进入正题!

0x01

很多朋友在使用bt5里的工具的时候经常为找不到哪个地方而烦躁,还有那些复杂的路径名,谁记得住啊,建议使用ALT+F2,在弹出的栏目里输入你想要使用的工具就可以了,如下图。

让我们看看sqlmap的说明,好长啊,这也说明了这个工具的复杂性和强大性,配合各种参数,能完成我们想要实现的效果

根据SQLMAP的说明,它是发现并利用给定的URLSQL注入漏洞,所以我们要先发现一个可以注入的URL,怎么找··大家发挥想象了,今天主要介绍SQLMAP的一些功能。

上图是启动SQLMAP,对这个注入点进行初步的判断和检测,它的检测机制在文章开头也已经说明,启动后,SQLMAP开始工作,并对给定的URL开始判断,如下图

已经判断出目标的系统和数据库类型,从上图也可以清楚的看出SQLMAP的判断方法

接着输入,如下图

这是判断当前数据库的使用者是否是dba

根据显示的结果看出,当前用户就是DBA··

接着输入,如下图

这句的目的是列举数据库的用户

从返回的结果看来,数据库用户是SA啊,这代表什么就不多说了吧

接着输入,入下图:

这句的目的是获取数据库用户的密码,

SAHASH密码已经显示出来,而且它还有解密的模块,你如果选择Y,它就会载入自己的解密字典,这里虽然没有解出来,但是把密码的结构显示的很明白,什么头部啊,混合的部分啊,都很明白,如下图

接着输入,如下图;

这是判断当前的权限,结果如下:

接着输入,如下图:

这句的目的是将所有的数据库列出来,结果如下:

但是这儿我没有发现与管理有关的库,算了吧,今天主要讲讲如何对库里的数据进行查询,

接着输入

这是显示WC2表的所有表,如下:

已经把所有的表都显示出来了,我们随便找一个表,查询列

我们找的是DBO.BZJ_FFMX表的内容,如下

把列名,和类型显示出来,接着查询列的内容,如下:

这里是查询第2到第4行的内容,显示如下:

如果我们找到管理员信息的表了,这儿不就找到对应的账号和密码了吗!

接着继续:

这儿我们将所有的库导出来,我想这就是前段时间盛传的脱裤吧,在执行这项操作的时候,会把所有的表里的内容导入到当前的一个目录下,看着清楚明了,但是花费的时间和很长。

上图就是WC2库里所有的表,SQLMAP导出来是CSV的格式,我们直接打开就能看到里面的数据,

要在SQLMAP里执行命令就用—OS-CMD=命令就可以了

好了,演示就到这儿了,很基础的科普,今天弄了一天的这个,发觉这个工具真的蛮强大的,有一点需要注意,之前我用穿山甲对这个站进行过扫描和执行命令,我用SQLMAP到处表的时候,发现了一个pangolin_test_table,这个应该就是穿山甲执行命令建的那个临时表,但是没有删除,如果精明的管理员发现的话,一定会有所察觉的!今天我写这个也是个抛砖引玉的作用,希望更多的人一起探讨交流BT5的使用!

对sqlmap感兴趣可以参考:《sqlmap用户手册》或者实战文章《渗透126网盘过程》及强大的绕过waf教程《如何使用SQLMap绕过WAF

本文转自扬州seo由网络安全攻防研究室(www.91ri.org)信息安全小组收集整理。