37 WEB漏洞-反序列化之PHPJAVA全解(上)

目录

    • PHP反序列化
    • 演示案例:
      • 先搞一把PHP反序列化热身题稳住-无类问题-本地
      • 在撸一把CTF反序列化小真题压压惊-无类执行-实例
      • 最后顶一把网鼎杯2020青龙大真题舒服下-有类魔术方法触发-实例

https://www.cnblogs.com/zhengna/p/15661109.html
代码在线测试平台:https://c.runoob.com/compile/1/

在这里插入图片描述
在这里插入图片描述
序列化和反序列化其实就是数据格式相互转化的一种形式

PHP反序列化

原理:未对用户输入的序列化字符串进行检测,导致攻击者可以控制反序列化过程,从而导致代码执行,SQL注入,目录遍历等不可控后果。在反序列化的过程中自动触发了某些魔术方法。当进行反序列化的时候就有可能会触发对象中的一些魔术方法。
serialize() //将一个对象转换成一个字符串
unserialize() //将字符串还原成一个对象

触发:unserialize函数的变量可控,文件中存在可利用的类,类中有魔术方法:
序列化函数参考文章:https://www.cnblogs.com/20175211lyz/p/11403397.html
__construct() //创建对象时触发
__destruct() //对象被销毁时触发!
__call() //在对象上下文中调用不可访问的方法时触发
__callstatic() //在静态上下文中调用不可访问的方法时触发
__get() //用于从不可访问的属性读取数据
__set() //用于将数据写不可访问的属性
__isset() //在不可访问的属性上调用isset()或empty()触发
__unset() //在不可访问的属性上使用unset()时触发
__invoke() //当脚本尝试将对象调用为函数时触发

演示案例:

先搞一把PHP反序列化热身题稳住-无类问题-本地

基本上很多程序里面都是用class来代表类,有class就是有类,有类的话,就需要学习里面的函数方法
在这里插入图片描述

在撸一把CTF反序列化小真题压压惊-无类执行-实例

反序列化和代码基础没有什么关系,知道序列化执行的情况就完事了,当我们创建一个方法,就会调用里面的东西
当代码中有这些魔术方法的时候,你就按照特定的条件去触发方法,里面的代码就会被加载执行

最后顶一把网鼎杯2020青龙大真题舒服下-有类魔术方法触发-实例

涉及:反序列化魔术方法调用,弱类型绕过,ascii绕过
使用该类对flag进行读取,这里面能利用的只有__destruct函数(析构函数)。__destruct函数对$this->op进行了===判断并内容在2字符串时会赋值为1,process函数中使用==$this->op进行判断(为2的情况下才能读取内容),因此这里存在弱类型比较,可以使用数字2或字符串' 2'绕过判断。is_valid函数还对序列化宇符串进行了校验,因为成员被protected修饰,因此序列化字符串中会出现ascii为0的字符。经过测试,在PHP7.2+的环境中,使用public修饰成员并序列化,反序列化后成员也会被public覆盖修饰。
==仅验证数值,===验证值和类型

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

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

相关文章

k8s-20 hpa控制器

hpa可通过metrics-server所提供pod的cpu 或者内存的负载情况,从而动态拉伸控制器的副本数,从而达到后端的自动弹缩 官网:https://kubernetes.io/zh-cn/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/ 上传镜像 压测 po…

IPV6 ND协议--源码解析【根源分析】

ND协议介绍 ND介绍请阅读上一篇文章:IPv6知识 - ND协议【一文通透】11.NDP协议分析与实践_router solicitation报文中不携带source link-layer address-CSDN博客 ND协议定义了5种ICMPv6报文类型,如下表所示: NS/NA报文主要用于地址解析RS/…

【数之道 08】走进“卷积神经网络“,了解图像识别背后的原理

卷积神经网络 CNN模型的架构Cnn 的流程第一步 提取图片特征提取特征的计算规则 第二步 最大池化第三步 扁平化处理第四步 数据条录入全连接隐藏层 b站视频 CNN模型的架构 图片由像素点组成,最终成像效果由背后像素的颜色数值所决定的 有这样的一个66的区域&#x…

Datawhale-新能源时间序列赛事学习笔记(1)

1.赛题描述 在电动汽车充电站运营管理中,准确预测充电站的电量需求对于提高充电站运营服务水平和优化区域电网供给能力非常关键。本次赛题旨在建立站点充电量预测模型,根据充电站的相关信息和历史电量数据,准确预测未来某段时间内充电站的充电…

Java基础20问(6-10)

6.Java接口和抽象类的区别? 不同点 1.接口在Java8之前不能写方法实现逻辑,Java8及以后的版本,可以用default关键字写方法的实现。 2.接口中方法都是public的,public可以省略,而抽象类没有这个限制。 3.接口用inter…

【MATLAB第79期】基于MATLAB的数据抽样合集(sobol、LHS、Halton、正交、随机函数)更新中

【MATLAB第79期】基于MATLAB的数据抽样合集(sobol、LHS、Halton、正交、随机函数)更新中 一、随机函数 1.指定区间随机生成数据(小数) [a b]区间随机数生成: Aa(b-a)rand(m,n) m:待生成矩阵A的行数 n: 待生成矩阵A…

【c++】跟webrtc学std array 2:TaskExecutorMap单例用法

D:\XTRANS\m98_rtc\ndrtc-webrtc\src\base\task\task_executor.ccstd array实现的map:TaskExecutorMap // Maps TaskTraits extension IDs to registered TaskExecutors. Index |n| // corresponds to id |n - 1|. using TaskExecutorMap =std::array<TaskExecutor*, Task…

物联网AI MicroPython传感器学习 之 AS608指纹识别模块

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; 一、产品简介 AS608指纹识别模块是一款高性能的光学指纹识别模块。它采用的是指纹识别芯片公司杭州晟元芯片技术有限公司生产的AS608指纹识别芯片。该芯片内置DSP运算单元&#xff0c;集成了指纹识别算法&am…

CENTOS 7基于ISO文件进行安装新软件

众所周知&#xff0c;YUM是CENTOS7的安装程序。 普通情况下&#xff0c;连网之后 &#xff0c;用yum install 就可以安装。 但当网络环境经常出现连接失败的情况&#xff0c;默认情况下的行为就走不通了。 为解决这个问题&#xff0c;可以考虑如下三个方案 方案一&#xff1a;Y…

23.项目开发之量化交易抓取数据QuantTradeData(二)

后端业务&#xff1a;定时更新“A股日线行情”数据 需求说明 为了获取前一天的最新数据&#xff0c;我们需要每天晚上10点定时刷新daily股票列表基础信息&#xff0c;并将最新数据插入或更新到数据库中。 如果该内容是在当天交易日信息未更新前查询&#xff08;15~16点之前&a…

【Python】Python 中的Docutils模块详解

Python 中的Docutils模块详解 1. 什么是Docutils Docutils项目的主要是为了创造一套将纯文本转换为一些常用格式的工具&#xff0c;这些常用格式包括&#xff1a;HTML、XML和LaTeX。请事先了解 reStructuredText 的基础知识。 已经支持的包括&#xff1a; 独立的文本文件 P…

利用 NLP 超能力:一步步介绍Hugging Face微调教程

导入必要的库 导入必要的库类似于为特定编程和数据分析活动构建工具包。这些库通常是预先编写的代码集合,提供广泛的功能和工具,有助于加快开发速度。开发人员和数据科学家可以通过导入适当的库来访问新功能、提高生产力并使用现有解决方案。 import pandas as pd import n…

《数据结构、算法与应用C++语言描述》使用C++语言实现数组循环队列

《数据结构、算法与应用C语言描述》使用C语言实现数组循环队列 定义 队列的定义 队列&#xff08;queue&#xff09;是一个线性表&#xff0c;其插入和删除操作分别在表的不同端进行。插入元素的那一端称为队尾&#xff08;back或rear&#xff09;&#xff0c;删除元素的那一…

vue 鼠标划入划出多传一个参数

// item可以传递弹窗显示数据&#xff0c; $event相关参数可以用来做弹窗定位用 mouseover"handleMouseOver($event, item)" mouseleave"handleMouseLeave($event, item)"举个栗子&#xff1a; 做一个hover提示弹窗组件(用的vue3框架 less插件) 可以将组件…

rabbitmq发送json格式 utf8编码数据

参考文章&#xff1a;Spring-Cloud RabbitMQ 用法 - 发送json对象 - 简书 生产者&#xff1a; 消费者&#xff1a;

哪家堡垒机支持国密算法?有哪些功能?

国密算法即国家密码局认定的国产密码算法&#xff0c;即商用密码。最近看到有不少小伙伴在问&#xff0c;哪家堡垒机支持国密算法&#xff1f;有哪些功能&#xff1f; 哪家堡垒机支持国密算法&#xff1f; 行云堡垒支持SM2、SM3、SM4等国产密码算法&#xff0c;同时支持国密…

2023年下半年NPDP考试今天开始报名!

2023年第二次NPDP考试将于2023年12月2日&#xff08;周六&#xff09;举行&#xff0c;考试报名相关事项安排如下&#xff1a; 一、考试时间&#xff1a; 12月2日09:00-12:30。 二、报名时间&#xff1a; 10月18日08:00-11月10日23:59。 三、缴费及退考截止时间&#xff1…

C++使用openssl对AES-256-ECB PKCS7 加解密

/** AES-256-ECB PKCS7 加密 函数* input:经过PKCS7填充后的明文数据* outhex:加密后的命名数据16进制数,可以使用base64_encode转换为base64格式字符串密文* key:密钥* len:经过PKCS7填充后的明文数据长度*/ void AesEcb256Pkcs7Encrypt(u8 *input, u8 *outhex, u8 *key, int …

基于Java的旅游网站系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09; 代码参考数据库参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

2023年中国GPS导航设备产量、销量及市场规模分析[图]

GPS导航设备行业是指生产和销售用于导航、定位和监控目的的GPS设备的行业&#xff0c;可以用于汽车、船只、飞机、人员和其他物体的定位和导航&#xff0c;以及用于地理信息系统&#xff08;GIS&#xff09;、测绘、海洋抢险、森林监测、地质勘探、气象预报、交通管理、物流跟踪…