当前位置: 首页 > news >正文

Web攻防-PHP反序列化字符逃逸增多减少成员变量属性解析不敏感Wakeup绕过

知识点:
1、WEB攻防-PHP反序列化-CVE&wakeup绕过
2、WEB攻防-PHP反序列化-PHP版本绕过机制
3、WEB攻防-PHP反序列化-字符增多减少逃逸

一、演示案例-WEB攻防-PHP反序列化-CVE&wakeup绕过

PHP版本绕过漏洞
CVE-2016-7124__wakeup绕过)
漏洞编号:CVE-2016-7124
影响版本:PHP 5<5.6.25; PHP 7<7.0.10
漏洞危害:如存在__wakeup方法,调用unserilize()方法前则先调用__wakeup方法,但序列化字符串中表示对象属性个数的值大于真实属性个数时会跳过__wakeup执行

Demo

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

[极客大挑战 2019]PHP

1、下载源码分析,触发flag条件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、分析会触发调用__wakeup 强制username值

在这里插入图片描述

3、利用语言漏洞绕过 CVE-2016-7124

在这里插入图片描述

4、构造payload后 修改满足漏洞条件触发

在这里插入图片描述
在这里插入图片描述

Payload:
select=O%3A4%3A%22Name%22%3A3%3A%7Bs%3A14%3A%22%00Name%00username%22%3Bs%3A5%3A%22admin%22%3Bs%3A14%3A%22%00Name%00password%22%3Bs%3A3%3A%22100%22%3B%7D

在这里插入图片描述

二、演示案例-WEB攻防-PHP反序列化-PHP版本绕过机制

当对象变量属性不同就会导致序列化后数据格式差异对象变量属性:
public(公共的):在本类内部、外部类、子类都可以访问
protect(保护的):只有本类或子类或父类中可以访问
private(私人的):只有本类内部可以使用序列化数据显示:
public属性序列化的时候格式是正常成员名
private属性序列化的时候格式是%00类名%00成员名
protect属性序列化的时候格式是%00*%00成员名

Demo

<?php
class Test
{public $sex = "man";private $name = "xiaodi";protected $age = "33";
}
$t=new Test();
print_r(serialize($t));

在这里插入图片描述

PHP版本绕过机制(解析不敏感)

PHP版本导致的属性不同反序列化解析差异
影响版本:PHP7.1+及以上

<?php
class test{protected $a;private $b;public function __construct(){$this->a = 'abc';}public function __destruct(){echo $this->a;}
}echo serialize(new test());
unserialize('O:4:"test":1:{s:1:"a";s:3:"abc";}');

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

[网鼎杯 2020 青龙组]AreUSerialz

1、__destruct()–> process()–>read()

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、绕过is_valid()函数,private和protected属性经过序列化都存在不可打印字符在32-125之外

在这里插入图片描述
因为protected属性在序列化之后会出现不可见字符\00*\00,%00字符的ASCII码为0,不符合上面的要求。
在这里插入图片描述

public $op=2;
public $filename="php://filter/read=convert.base64-encode/resource=flag.php";
public $content;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、演示案例-WEB攻防-PHP反序列化-字符增多减少逃逸

字符增多

str1.php

在这里插入图片描述
在这里插入图片描述

原理解释
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
运算思路:字符个数多了1
后续有47个就写47个覆盖后续

str1-pop.php

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

字符变少

str2.php

在这里插入图片描述

str2-pop.php

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
运算思路:字符个数少了1个(5位变4位)
思考写多个就截取后续多少个,如23个、22个等

CTFSHOW-Web262(逃逸解法)

解题思路:提示有message.php
在这里插入图片描述
其中获取msg获取f,m,t 要求token=admin
在这里插入图片描述
字符增多通过本地序列化发现62位需要覆盖
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


文章转载自:
http://animalculum.sxnf.com.cn
http://benzoic.sxnf.com.cn
http://busy.sxnf.com.cn
http://andante.sxnf.com.cn
http://beginner.sxnf.com.cn
http://alcyonarian.sxnf.com.cn
http://afterpeak.sxnf.com.cn
http://bacteriuria.sxnf.com.cn
http://bottle.sxnf.com.cn
http://anatropous.sxnf.com.cn
http://atwitter.sxnf.com.cn
http://cantonization.sxnf.com.cn
http://bicuspid.sxnf.com.cn
http://choreoid.sxnf.com.cn
http://archdiocese.sxnf.com.cn
http://amort.sxnf.com.cn
http://braille.sxnf.com.cn
http://bestially.sxnf.com.cn
http://belated.sxnf.com.cn
http://almsgiver.sxnf.com.cn
http://biauriculate.sxnf.com.cn
http://amur.sxnf.com.cn
http://bandhnu.sxnf.com.cn
http://acapriccio.sxnf.com.cn
http://armourial.sxnf.com.cn
http://bladesmith.sxnf.com.cn
http://cecal.sxnf.com.cn
http://chitlin.sxnf.com.cn
http://aeolic.sxnf.com.cn
http://beadle.sxnf.com.cn
http://www.dtcms.com/a/281089.html

相关文章:

  • 网络:TCP序列号和滑动窗口,顺序保证
  • 【R语言】警告conversion failure on ‘中文字符‘ in ‘mbcsToSbcs‘: for 注 (U+6CE8)
  • 枪机、支持POE、4G连接交换机实现多屏幕显示
  • 【郑大二年级信安小学期】Day12:编写渗透测试脚本搭建虚拟环境
  • 淘宝扭蛋机小程序开发:重构电商娱乐化体验的新范式
  • 不同系统记录项目进度不一致,如何统一口径
  • 【Linux系统】命令行参数和环境变量
  • gitee某个分支合并到gitlab目标分支
  • 微信小程序未登录状态下的导航拦截有哪些方法可以实现
  • AI大模型应用架构演进:从LLM基础到Agent协作的范式转移
  • GBase 8a 与 Spring Boot + MyBatis 整合实战:从环境搭建到CRUD操作
  • 扩展:操作系统之高性能网络计算
  • 使用 mongoimport 导入本地 JSON 文件到 MongoDB 及数据查看指南
  • 微信小程序入门实例_____从零开始 开发一个每天记账的微信小程序
  • Rust语言
  • Isaac Sim仿真赋能机器人工作流,推动具身智能在机器人领域研究
  • 深入解析:磁盘级文件与内存级(被打开)文件的本质区别与联系
  • MySQL锁机制与SQL优化详解
  • Vue 中 effectScope() 的全面解析与实战应用
  • 虚拟机删除操作
  • lanch4j将jar转成exe
  • 文心4.5开源背后的战略棋局:百度为何选择All in开放?
  • Django基础(二)———URL与映射
  • 10 款游戏设计工具深度解析,打造卓越游戏项目
  • 在Autodl服务器中使用VNC建立图形界面
  • MySQL查询今天、昨天、上周、近30天、去年等的数据的方法
  • [锂电池]锂电池入门指南
  • Android 多语言适配(I18n)
  • 逻辑回归案例
  • Prompt提示工程