别人眼中的软件测试就是点点点的工作,而对于资深的软件测试专家来说,功能测试只是软件测试中的一小部分,也是最基础的。而软件安全渗透测试经常被很多企业所忽略,特别是一些小企业,因为他们没有意识到这个危险带来的损失,当遇到了问题才知道安全测试的重要性比什么都要高。

言归正传,今天下午拿公司的一个产品出来做数据库的安全渗透,借此机会整理一下笔记。数据库安全渗透测试工具我知道的有数十种,自己有使用过的,也差不多十种左右。今天刚开始使用APPScan工具进行安全扫描,居然没有发现SQL漏洞,怀疑工具扫描不彻底,于是换SQLMap进行测试。关于SQLMap的环境如何搭建,网上搜索一下很多,这里不再赘述。

拿一个常见的登录功能来做SQL注入测试案例:

一、打开Fiddler抓包工具

二、打开要进行测试的页面,输入用户名和密码并点击登录

三、通过Fiddler工具,我们可以看到抓包的详细内容,登录时需要post请求的参数,如loginname=admin_sbj&password=1&x=0&y=0

看到上面这一串参数就知道这可能存在注入点,于是开始做注入操作:

四、运行电脑CMD,打开运行窗口,执行相应的命令,我们先尝试是否存在注入的危险

D:\Python35\sqlmap>sqlmap.py -u http://192.1******:8080/****/login/doAction.action --data "loginname=admin_sbj&password=1&x=0&y=0"

 

 

 

当我们看到以上框红色边框的内容时,发现有戏了,我们把这一串注入的内容加上地址,直接在地址栏访问,发现居然成功登录,这就证明有问题了;

接下来我们根据提示进行操作,如输入0进行一个post操作

最终我们很明显的看到,当前使用的数据库类型为oracle:

五、知道了数据库类型了,我们继续往下尝试,看下是否可以猜测出数据库名

一样的语句,后面增加--dbs

 

 

 

 又发现惊喜,经过长时间的猜测,把当前数据库名也查找出来了,看到这一步,是不是觉得很危险了。

六、有了数据库名,接下去我们尝试下数据库用户

 

 

 

 

 又是一个重大发现,几个用户名都被找出来了,接下去的方法一样,找出密码,然后把数据库表,表数据全部找出来........

看到这,你是不是觉得如果没有给软件做安全测试,那潜在的危险造成的损失是有多可怕,赶紧动手看看你们的软件是否安全了吗。