成理信安协会部分PHP伪协议题目

PHP伪协议,是简单而又重要的知识点。这里奉上几道协会里的出的PHP伪协议题目,加深一下印象。

BACK DOOR

上源码

<?php
if(isset($_GET['show_source']))
    highlight_file(__file__);
$sandbox = 'sandbox/'.md5($_SERVER['REMOTE_ADDR']).'/';
@mkdir($sandbox);
chdir($sandbox);

$filename =@$_POST['filename'] ?: "";
$code = @$_POST['code'] ?: "";
$code = "<?php die('嘿嘿嘿,我就喜欢你看不惯但又干不掉我的样子');?>".$code;  // I added it


if($filename)
{
    if(file_put_contents($filename, $code))
    {
        echo $sandbox.$filename;
    }
}

代码审计

  • POST传filename和code,然后就会写入。但是很烦的是你要传的code前面要被加个"<?php die();?>",在执行你的一句话之前就结束了。
  • 所以主要是两个考点,一个是用PHP伪协议把一句话写进去,另一个是把如何绕过die()这个函数。
    这里直接奉上p神的博客,仔细读读就都懂了。

https://www.leavesongs.com/PENETRATION/php-filter-magic.html#_1

posted @ 2020-10-11 21:04  Riv3r1and  阅读(201)  评论(0编辑  收藏  举报