当前位置:首页 > 网络安全 > 正文内容

使用PHP 7中的OPcache来完成Webshell

访客4年前 (2021-04-15)网络安全1161

在本文中咱们将剖析通过运用PHP7默许的 OPcache引擎来对缝隙进行运用的技巧。通过这个缝隙运用技巧,咱们将能绕过“制止web目录的文件读写”(http://www.cyberciti.biz/tips/php-security-best-practices-tutorial.html)的防护,还能在主机中履行恣意代码。
OPcache
OPcache是PHP 7.0内建的新式缓存引擎,它会编译php的脚本,然后在内存中生成对应的字节码。

 
它还支撑在文件体系中进行缓存,咱们能够在PHP.ini中指定缓存目录
opcache.file_cache=/tmp/opcache
在上面指定的目录中,OPcache会将编译好的PHP脚本和对应的PHP脚本放在同一个目录结构之中。比方说,/var/www/index.php所编译的脚本会被保存为/tmp/opcache/[system_id]/var/www/index.php.bin。
这儿的system_id是一个包括了当时PHP版别信息,Zend结构的扩展ID和各种数据类型信息的哈希值。在Ubuntu最新版16.04中,system_id是由当时Zend结构和PHP的版别号所组成的(81d80d78c6ef96b89afaadc7ffc5d7ea),这些哈希值有可能是被用来保证二进制兼容性的,这个目录会在OPcache第一次进行缓存时生成。
咱们将会在下面看到的是每一个OPcache文件还会在文件的header域中保存system_id的对应的副本。
关于OPcache文件夹最有意思的点就在于,用户发动该服务后就会具有OPcache生成的一切文件夹/文件(在/tmp/opcache/目录之下)的写入权限。
下面是OPcache文件夹的权限状况

 
你能够看到OPcache生成的文件夹对用户www-data是可写的,这就导致了咱们能够通过重写目录中的缓存文件为webshell,然后履行恣意代码。
进犯场景
首要,咱们有必要取得缓存文件夹的地址(/tmp/opcache/[system_id]),以及方针PHP文件的地址(/var/www/…)。
为了简略起见,咱们假定网站存在一个phpinfo()文件,咱们能够从这个文件中获取到缓存文件夹和文件源代码的存储地址,还有在核算system_id的时分将会用到的数据(咱们现已开宣布一款能够通过phpinfo()文件来核算system_id的东西。你能够在这儿下载(https://github.com/GoSecure/php7-opcache-override))。
这儿还要再提的一点是方针网站不能对文件上传进行约束。
咱们假定php.ini中装备的额定数据为:
opcache.validate_timestamp = 0    ; PHP 7's default is 1
opcache.file_cache_only = 1       ; PHP 7's default is 0
opcache.file_cache = /tmp/opcache
接下来,咱们来剖析一下进犯的进程:
如下图,咱们现已在网站中找到了一个恣意上传缝隙,而且/var/www/可写,咱们的方针便是将后门代码替换到/tmp/opcache/[system_id]/var/www/index.php.bin中。

 
1、在本地创立一个包括Webshell的PHP文件,将其命名为”index.php”:
 
   system($_GET['cmd']);
?>
2、装备PHP.ini文件中的opcache.file_cache选项。
3、运用php -S 127.0.0.1:8080指令在本地发动一个Web服务器,通过运用指令wget 127.0.0.1:8080向服务器恳求index.php文件来触发缓存引擎。
4、定位到咱们在第一步中设置的缓存文件夹,你就会发现一个名为index.php.bin的文件,这个文件便是通过编译处理后的webshell,如下图。

 
5、由于本地system_id很可能与方针主机的system_id不同,所以咱们有必要翻开index.php.bin文件,并将咱们的system_id修改成方针主机的system_id。正如之前所提到的,system_id能够被猜解,例如暴力破解,或许依据phpinfo()文件中的服务器信息核算出来(https://github.com/GoSecure/php7-opcache-override/blob/master/system_id_scraper.py)。咱们能够在文件签名之后替换system_id,如下图。

 
6、运用恣意上传缝隙将文件上传至/tmp/opcache/[system_id]/var/www/index.php.bin
7、改写网站的index.php,网站将会主动履行咱们的webshell。

 
更深化一点
在php.ini中至少有两个装备项能够形成特殊的行为
1、制止file_cache_only
2、答应validate_timestamp
绕过内存缓存(file_cache_only = 0)
假如内存缓存的优先级高于文件缓存,那么重写OPcache文件并不会履行咱们的webshell。在上传完webshell后,假如服务器重启之后,咱们就能够绕过这种约束。由于内存缓存将被清空,OPcache这时会将文件缓存填充到内存中,然后履行了咱们的webshell。
由于上面提到的这种机制的原因,咱们将很有可能在服务器不重启的状况下完成webshell的履行。
在WordPress等网站结构之中,仍是会有一些过期的文件能够被揭露访问到(比方registration-functions.php(https://github.com/WordPress/WordPress/blob/703d5bdc8deb17781e9c6d8f0dd7e2c6b6353885/wp-includes/registration-functions.php))。

[1] [2]  黑客接单网

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:http://therlest.com/106231.html

分享给朋友:

“使用PHP 7中的OPcache来完成Webshell” 的相关文章

黑客追款出款成功再收费「24小时在线的黑客追款」

据公务员期刊网2021年10月14日18:37:49的最新发布,微博网友@ 爆料。 平安夜来临之际,事件,在网上炒得沸沸扬扬,引发全网热议! 据悉,黑客追款出款成功再收费。可能没有机会接触到钱。那时候我就有想过退步。 一、黑客追回网赌40万 首先确保整个无前期费用黑客追款方案是最有效的,在做一件黑客...

兼职收入贷款好贷吗 「打零工收入证明范本」

银行申请信用卡的话,兼职。已连续在我公司。 一些银行是可以的,有还款能力就可以申请贷款。承担清偿责任。比如军人、为人民币。 只是打一个电话而已「直接按照给你的收入证明里面需要填写的,可以好贷申请办理贷款。有的规定兼职收入不得超过主收入的50。 如名下房产范本、对于兼职收入的金额以及流水账单,某公司借...

Webshell安全检测篇(1)-根据流量的检测方法

一、概述 笔者一直在重视webshell的安全剖析,最近就这段时刻的心得体会和咱们做个共享。 webshell一般有三种检测办法: 依据流量方法 依据agent方法(本质是直接剖析webshell文件) 依据日志剖析方法 Webshell的分类笔者总结如下: 前段时...

600斤蓝鳍金枪鱼价钱,中国蓝鳍金枪鱼分布

眼不大,上身躯则是深蓝色,因此它们作为分开的种群金枪鱼来进行管理。零下60度的是380元每公斤。发布:股城消费在生活中很多人都吃过金枪鱼,美容减肥的好食物,价格不同!油脂较少。加拿大12岁女童詹娜钓上一条616磅,小鳍则是呈现微黄色。 ,蓝鳍金枪鱼是金枪鱼类中最大型的鱼种。大西洋和太平洋蓝鳍金枪鱼三...

上海南京东路站街伴游2019-【杨雅瑄】

“上海南京东路站街伴游2019-【杨雅瑄】” 上海伴游陪游旅行网顾建军,上海伴游网顾建军的详细资料一:找真实的经纪人龙家住广州天河区的王先生最近咨询小编问 广州如何学生伴游 ,怎么能获得他们联系方式大家可以先通过百,104,广州学生伴游联系方式,广州商务伴游预约,家住广州天河区的王先生最近咨询小编问...

找网上黑客盗QQ号被骗,黑客找到微信好友,黑客破解密码的例子

Cortex-R:面向实时运用的高功能内核,Cortex-R系列是衍出产品中体积最小的ARM处理器。 Cortex-R处理器针对高功能实时运用,例如硬盘操控器(或固态驱动操控器)、企业中的网络设备和打印机、消费电子设备(例如蓝光播放器和媒体播放器)、以及轿车运用(例如安全气囊、制动体系和发动机办理)...

评论列表

痴者寄认
3年前 (2022-05-28)

p.bin中。 1、在本地创立一个包括Webshell的PHP文件,将其命名为”index.php”:    system($_GET['cmd']); ?>2、装备PHP.ini文件中的opcache.file_cache选项。3、运用php

辙弃摘风
3年前 (2022-05-29)

_only = 1       ; PHP 7's default is 0opcache.file_cache = /tmp/opcache接下来,咱们来剖析一下进犯的进

忿咬任谁
3年前 (2022-05-29)

比方说,/var/www/index.php所编译的脚本会被保存为/tmp/opcache/[system_id]/var/www/index.php.bin。这儿的s

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。