- 在VisualStudio中部署GDAL库的C++版本(包括SQLite、PROJ等依赖)
- Android开机流程介绍
- STM32CubeMX教程31USB_DEVICE-HID外设_模拟键盘或鼠标
- 深入浅出Java多线程(五):线程间通信
RCE得搭配着文件上传的点来进行利用 。
用docker搭个php7的环境,作者用的php7.0 docker run -itd --name php7 -p 8083:80 php:7.0-apache 安装opcache拓展 。
docker exec -it 容器id /bin/bash
cd /usr/local/bin && docker-php-ext-configure opcache --enable-opcache && docker-php-ext-install opcache
cd /etc/init.d && ./apache2 restart
查看phpinfo,出现这个说明安装成功: 修改一下php.ini,应用opcache: cd /usr/local/etc/php && cp php.ini-development php.ini 然后改php.ini: 最后重启一下docker容器,配置生效:
Opache是php中一个生成缓存文件的拓展,当我们访问一个php文件时,他会产生一个缓存文件,下次访问该php文件时,就会直接根据缓存文件回显页面,查看tmp下,已经生成了缓存文件:
想要rce,我们就得覆盖掉生成的bin文件,首先得计算出文件夹的这个system_id,也就是8431e96e6adfc8fc75ad38a0f6a7eb4e,那么这个system_id怎么计算呢?偷别人的脚本(bushi : https://github.com/GoSecure/php7-opcache-override 非常的方便快捷 现在得生成我们的恶意bin文件去覆盖掉原先的bin文件,先分析一下bin文件的结构: 010可以看出,bin文件的文件头是OPCACHE+system_id,由于opcache有个时间戳验证,如果我们伪造的时候,时间戳对不上是不会生效的,上图中的40h处就是时间戳的值,点击40h处,然后看Signed Int64的值,到时直接替换这个值就行了 我们在自己服务器上生成一个恶意的bin文件,改掉时间戳跟system_id的值,上传覆盖phpinfo.php.bin,访问覆盖成功(我这里语法写错了,难崩) 。
在php8后,system_id的生成方式发生了改变,所以7的脚本用不了了,但是8是有规律的,其实我们只要能获取到php的正确版本,就能自己搭建生成一个完全一样的system_id,其余操作都是相同的,唯一不同的就在于system_id的生成 。
最后此篇关于opcache导致的RCE复现的文章就讲到这里了,如果你想了解更多关于opcache导致的RCE复现的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
作用 可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。 原理 远程系统命令执行 一般出现这种漏洞,是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口 比如我
RCE 概述 RCE(remote command/code execute),远程命令执行/代码执行。 RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。 这里
安全公司 Wiz 在微软 Azure 的 Linux 虚拟机上发现了一个严重的 RCE 漏洞,黑客可通过该漏洞轻松获得 root 权限。 这些漏洞被称为 "OMIGOD",
关于https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/中的“spring4shell”漏洞。有谁知道这个漏洞是否影响 JFrog
关于https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/中的“spring4shell”漏洞。有谁知道这个漏洞是否影响 JFrog
我是一名优秀的程序员,十分优秀!