Win Server 2003搭建Sql注入环境

Posted 坏坏-5

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Win Server 2003搭建Sql注入环境相关的知识,希望对你有一定的参考价值。

实验环境说明

身份系统版本IP地址
服务器Windows Server 2003192.168.43.128
攻击者Kali 5.3.0192.168.43.5

软件及环境下载

软件安装与环境部署

  • 安装phpstudy软件,注意安装路径,可能需要修改
    • 因为使用的是虚拟机环境,我是将软件安装在E:\\phpStudy下的
    • 需要关闭防火墙(因为作为靶机使用,安装完成系统后,就已经将防火墙关闭了)
  • 安装完成后,启动phpStudy,同时启动服务
    • 因为服务器还开启了IIS服务,所以80端口被占用,这里修改为了8080端口。如果启动服务端口被占用,可以关闭相应端口的服务或者更换phpStudy的服务端口

  • 访问测试

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

  • 将靶场环境复制进服务器中

    • 将下载的靶场环境文件放入到phpStudy的环境中
    • 将整个sqli-labs-master 文件夹复制到E:\\phpStudy\\WWW中(如果是Github下载的压缩包,需要解压)
    • 找到E:\\phpStudy\\WWW\\penetration\\sql-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进行扫描
    • -sU UDP扫描
  • 使用命令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 -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清理缓存

以上内容均属原创,如有不详或错误,敬请指出。
本文作者: 坏坏 本文链接: http://t.csdn.cn/KTtHS 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请联系作者注明出处并附带本文链接!

以上是关于Win Server 2003搭建Sql注入环境的主要内容,如果未能解决你的问题,请参考以下文章

2003server r2 + sql 2000 sp4 环境配置

计算机网络安全 实验三 SQL注入攻击

2018.1.31环境搭建介绍

SQL注入 -----(显错注入)

SQL注入实战及漏洞网站搭建

我想在win7上管理server2003的AD,我的机器在域中,怎么实现?