分享好友 最新动态首页 最新动态分类 切换频道
PHP魔术方法:Typecho反序列化漏洞
2024-12-21 16:00

服务器安装typecho之后没有删除install.php,导致可以在前台利用反序列化漏洞执行任意代码。

PHP魔术方法:Typecho反序列化漏洞

PHP序列化的函数是serialize(),它可以把php对象转化为字符串,加上base64编码,方便传输。
例如对象

可以通过serialize()转化为字符串(x00开头说明是私有变量

再base64编码

反序列化函数是unserialize(),作用和serialize()相反。所以当用户可以控制unserialize()的参数时,就可能有漏洞产生。

php的魔术方法有很多,容易利用的有__wakeup()、__destruct()、__toString()。
这里还要使用一个方法__get()

__toString() 方法用于一个类被当成字符串时应怎样回应。例如 echo $obj; 应该显示些什么。

unserialize() 会检查是否存在一个 __wakeup() 方法。如果存在,则会先调用 __wakeup 方法,预先准备对象需要的资源。

PHP 5 引入了析构函数的概念,这类似于其它面向对象的语言,如 C++。析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。

读取不可访问属性的值时,__get() 会被调用。

PHP手册有详细的解释:魔术方法

PHP 5.6.31 Typecho 1.0 (14.10.10)

1.查找反序列化函数和用户可控点
/install.php 230行
程序获取用户cookie,base64解码后反序列化成$config,然后$config[‘adapter’]被当成字符串了,我们来看看有什么类可以利用__toString()。

mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $… ]] )
第一个参数 callback 是被调用的回调函数,其余参数是回调函数的参数。

这里把$this->_filter中的元素当做回调函数,把刚才的$this->_params[‘screenName’]作为回调函数的参数。所以用户可以通过修改cookie为构造好的序列化对象,执行任意命令。

4.构造payload
只要按上面的思路构造即可,但有个地方需要注意,install.php 54行用了ob_start(),所有输出会先留在缓冲区中,call_user_func()运行完我们的命令后__toString()会抛出致命错误,导致清空缓冲区,返回状态码500(不知道有没有理解错)。

原文

在install.php的开始,调用了ob_start()

在php.net上关于ob_start的解释是这样的。
ob_start

因为我们上面对象注入的代码触发了原本的exception,导致ob_end_clean()执行,原本的输出会在缓冲区被清理。

我们必须想一个办法强制退出,使得代码不会执行到exception,这样原本的缓冲区数据就会被输出出来。

这里有两个办法。 1、因为call_user_func函数处是一个循环,我们可以通过设置数组来控制第二次执行的函数,然后找一处exit跳出,缓冲区中的数据就会被输出出来。 2、第二个办法就是在命令执行之后,想办法造成一个报错,语句报错就会强制停止,这样缓冲区中的数据仍然会被输出出来。

解决了这个问题,整个利用ROP链就成立了

如果只是想种一句话木马的话就不用会显啦,判断状态码500就证明成功。

综合了两篇文章的payload

typecho.py

删除install.php

第一次写博客,图很多,字不多,代码审计是跟着文章按图索骥,也不知道自己理解的有没有错,以后还要努力学习一个。

最新文章
WordPress 发布文章,出现发布失败与更新失败的解决办法
新版的Wordpress出来后,用新版的覆盖了之前老板的文件之后,出现了无法发布文章,更新老文章失败等错误提示。 这是什么原因呢?我通过网络查询,收集了以下原因和解决方法。1.古腾堡编辑器出错 这种情况非
影视建站遇到的坑与修复过程 苹果cms+海螺模板
主题设置后台 安装PHP扩展 后台快捷菜单配置添加 海螺主题设置,/admin.php/admin/conch/theme免费解析网:http://api.momimi.cn/?url=站长交流群:707031200海螺模板完美修复版2020.01.04带模板独立后台管理系统的多功能模板。使用此模板务
空间、算力、数据、场景“模力福地”重磅礼包发布!深圳福田打造人工智能产业高地!
12月11日,“模力福地”行动方案发布会暨人工智能先锋城市核心区高质量推进大会在深业上城城市云客厅举行。深圳市人工智能产业办、重点人工智能企业精英和深港两地专家,共同见证福田区在人工智能领域的重要举措与创新布局。“模力福地,智
扒一扒大模型应用隐形冠军:服务1600 企业、200 业务场景,分分钟就可构建专属应用
白小交 发自 凹非寺量子位 | 公众号 QbitAI服务1600+企业、200+业务场景直接落地。这位大模型应用的隐形冠军不藏了。他们打造大模型应用开发平台,客户能够开箱即用。服务企业覆盖央国企、金融、政务、民生、制造、零售等领域。就在今天,
网站站长角色深度解析:他们是如何驾驭互联网的?
网站站长角色深度解析:如何驾驭互联网? 随着互联网技术的迅猛发展和普及,站长这一职业角色也逐渐成为了互联网生态中不可或缺的一环。他们如何驾驭互联网?今天我们就来深度解析网站站长的角色及其工作内涵。网站站长,顾名思义,即负责
深圳SEO秘籍,关键词优化攻略,助力企业网站排名飞升!
深圳快速SEO,专注关键词优化,助力企业网站快速提升排名。本文揭秘高效策略,助您优化关键词,实现网站流量激增。随着互联网的飞速发展,企业对的需求日益增长,在这个竞争激烈的市场环境中,如何让企业网站在搜索引擎中脱颖而出,成为众
警惕,裸聊诈骗竟为AI换脸“照骗”!
  近年来,AI换脸技术被应用在各个领域,不法分子也动起了歪心思,利用AI换脸实施犯罪,例如伪造不雅视频、换脸诈骗等。AI换脸不仅可以快速将一张人脸无缝融入另一个图片或视频中,甚至连人物表情、口型都可以用AI技术合成,具有更强的以
移动站seo优化-怎么做好移动网站的SEO优化-移动seo优化方法软件免费
移动站seo优化,移动网站怎么做SEO优化,移动网站SEO优化有什么规范。首先搜索引擎对移动网站的打开响应速度有一定的要求,打开速度越快越适合优化,打开速度越慢,越不适合优化。随着互联网的发展,
卖家精灵Mac 4.5.2
卖家精灵Mac官方版是款很多网店店主使用的关键词优化工具。卖家精灵Mac正式版为用户提供选品、关键词调研、竞品分析、关键词工具等丰富功能,用户可以通过它来查看各种商品最新热门搜索词。卖家精灵Mac还可以帮助购物网站上面的商家进行购
Broken Link Detector
Broken Link Detector为用户提供了一套死链接检测方案。其能够自动分析网站中的链接,并查看是否出现死链接。通过该程序可以帮助您查询网站上的无效的链接,辅助进行清除。检测结果分为全部与错误两部分,您可以查看所有的链接结果是否正常
相关文章
推荐文章
发表评论
0评