首页 > 后端开发 > 正文

php函数反弹shell [VNCTF]InterestingPHP复现

2025-02-10 01:11:08 | 我爱编程网

今天我爱编程网小编为大家带来了php函数反弹shell [VNCTF]InterestingPHP复现,希望能帮助到大家,一起来看看吧!

本文目录一览:

php函数反弹shell [VNCTF]InterestingPHP复现

[VNCTF2022]InterestingPHP复现

本文为看雪论坛优秀文章 看雪论坛作者ID:H3h3QAQ

在开始尝试复现题目的过程中,首先映入眼帘的是简洁的源码。尝试利用 phpinfo() 查看配置信息时遇到了禁用,但这并未阻碍我们获取关键信息的道路。

利用 ini_get_all() 函数,我们得以窥探 disable_functions、disable_class、open_basedir 等设置。其中,scandir() 和 file_put_contents() 等功能未被禁用,这一发现成为我们的突破口。

通过 scandir() 函数,我们发现了名为 secret.rdb 的文件,高度怀疑其为 Redis 密码。尽管 Redis 未默认在端口 6379 上运行,但我们并未因此陷入绝境。

利用 WMCTF2021 中的技巧,我们构造了一段实验代码并配合 file_put_contents() 将其写入服务器。这一操作揭示了两个存活的端口,80 和 8888,并通过 get_loaded_extensions() 查看加载的模块,确认了 Redis 的存在。

考虑到 Redis 模块可实现远程代码执行(RCE),我们尝试使用蚁剑插件操作 Redis,但发现 stream_socket_client 方法被禁用。因此,我们转而通过构造 SO 文件并利用 gopher 协议实现 RCE 和反弹 shell,过程虽繁琐,但效果显著。

将 SO 文件上传至 VPS 后,我们启动了一个 Python HTTP 服务,并利用特定的实验代码将 SO 文件写入目标服务器。成功写入文件后,我们借助 RCE 进行 shell 的反弹,找到了目标。

面对提示无权限的情况,我们利用 find / -user root -perm -4000 -print 命令寻找可利用的提权机会。借鉴之前的 CVE-2021-4034 技巧,我们尝试了 pkexec 提权方法,并成功下载、编译、执行相关脚本,最终实现提权并获得旗标。

通过这一系列操作,我们不仅实现了对题目的有效复现,还探索了多种技术手段在实际场景中的应用,展示了在面对限制时的创新思维与解决方案。

阅读原文: [VNCTF2022]InterestingPHP复现 (qq.com)

php函数反弹shell [VNCTF]InterestingPHP复现我爱编程网

PHP远程代码执行漏洞复现(CVE-2019-11043)【反弹shell成功】

CVE-2019-11043是远程代码执行漏洞,影响特定配置的Nginx + PHP-FPM服务器。攻击者通过发送换行符破坏fastcgi_split_path_info指令的Regexp,导致PATH_INFO为空,从而触发漏洞。此漏洞在Nginx的特定配置下生效,主要影响部分PHP版本和PHP 5.6。

利用方法是使用p牛的docker环境复现漏洞。首先启动环境并访问默认页面,如127.0.0.1:8080/index.php。接下来,安装docker和golang环境,搭建漏洞环境。在执行过程中,注意部分PHP-FPM子进程可能受到污染,尝试多次以执行命令。

尝试使用反弹shell,但发现本地未安装nc命令。因此,为docker容器安装nc。容器内包含两个docker镜像:nginx和php。在nginx镜像中尝试安装nc失败后,切换到php镜像,成功安装并使用nc连接本地端口,实现反弹shell。

为优化速度,使用镜像加速器,如阿里云或中科院的加速服务。配置docker文件后,重启docker,显著提升运行速度。对于基于HTTP和SOCKS5协议的访问,需要凭据支持,而无需凭据的访问则直接实现。

最后,分享团队关于CTF靶场、内网渗透、APT方面的技术干货,致力于提供实用的干货分享,服务于红蓝队攻防领域。团队已出版《Web安全攻防:渗透测试实战指南》,预计后续出版更多书籍,如《内网安全攻防:渗透测试实战指南》、《CTF竞赛秘笈-入门篇》以及Python渗透测试、JAVA代码审计和APT方面的书籍。官方网站ms08067.com提供更多信息与资源。

框架安全-CVE 复现&Spring&Struts&Laravel&ThinkPHP漏洞复现

我爱编程网(https://www.52biancheng.com)小编还为大家带来框架安全-CVE 复现&Spring&Struts&Laravel&ThinkPHP漏洞复现的相关内容。

服务攻防与框架安全概述


中间件及框架包括但不限于:IIS、Apache、Nginx、Tomcat、Docker、K8s、Weblogic、JBoos、WebSphere、Jenkins、GlassFish、Jetty、Jira、Struts2、Laravel、Solr、Shiro、Thinkphp、Spring与Flask等。


常见开发框架按语言分类如下:



  • PHP框架:Laravel与Thinkphp

  • Javaweb框架:Struts2与Spring

  • Python框架:Django与Flask

  • JavaScript框架:Node.js、Vue.js、Angular与Bootstrap


具体框架安全与CVE复现


Thinkphp与Laravel框架安全详解


Thinkphp是一个轻量级的PHP框架,遵循Apache2协议,具备面向对象与MVC模式,借鉴了国外优秀框架与模式。Laravel框架简洁优雅,旨在从代码杂乱中解脱出来,构建网络应用。


安全问题与漏洞复现


Thinkphp版本3与5存在远程代码执行(RCE)漏洞,可通过浏览器插件或数据包信息进行开发框架判断。Laravel框架中,版本5在处理控制器名称时存在错误,导致RCE,可利用靶场vulfocus进行环境开启与漏洞复现。


Laravel框架安全问题与CVE-2021-3129 RCE


Laravel框架详解,具备简洁与优雅特性。通过vulfocus靶场与GitHub搜索漏洞编号进行漏洞复现。


Struts2框架安全与CVE漏洞复现


Struts2框架介绍与特点,URL上存在.action或.do文件,通过接口追加actionErrors参数判断。CVE-2017-5638与CVE-2020-17530为Struts2框架中远程代码执行漏洞,可直接利用成熟工具或GitHub搜索利用。


Spring框架安全与CVE漏洞复现


Spring框架背景与功能介绍,包含Spring Core、Spring AOP、Spring ORM、Spring DAO、Spring Context、Spring Web与Spring Web MVC。Spring框架存在CVE-2017-4971、CVE-2018-1273等安全问题。CVE-2018-1273漏洞存在于Spring Data Commons中,可利用URL编码与base64编码实现反弹shell;CVE-2017-4971漏洞存在于Spring WebFlow中,通过WebFlow流程实现远程代码执行。


Spring Cloud框架安全与CVE漏洞复现


Spring Cloud Function提供通用模型,用于部署基于函数的软件。Spring Cloud Gateway安全问题涉及SpEL表达式注入(CVE-2022-22947、CVE-2022-22963),可直接利用工具进行漏洞复现。

以上就是我爱编程网整理的php函数反弹shell [VNCTF]InterestingPHP复现相关内容,想要了解更多信息,敬请查阅我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
标签: PHP
与“php函数反弹shell [VNCTF]InterestingPHP复现”相关推荐
php函数实现反转 【PHP】依赖注入(DI)和控制反转(IOC)详解
php函数实现反转 【PHP】依赖注入(DI)和控制反转(IOC)详解

php删除数组重复的值$arr=array(1,2,4,2,0,9,8,5);//定义一个数组。$arr1=$arr;//定义另一个数组和上一个数组一样。//循环第一个数组让后循环第二个数组用第一个数组的每个值和第二个数组比较如果相同就删除,最后输出第二个数组就行了。for($i=0;$i<count($arr);$i++){for($j=$i+1;$j&lt

2025-01-25 05:36:40
php反序函数 几种反序列化漏洞
php反序函数 几种反序列化漏洞

PHP反序列化面向对象的PHP编程中,类和对象是核心概念。类可以看作是模板或蓝图,而对象则是基于类实例化的具体实体。对象封装了属性和方法,属性相当于变量,方法则类似于函数,它们共同构成了对象的功能和状态。序列化是将对象的状态信息转换为可以存储或传输的格式的过程。这个过程是针对对象的,而不是类。通过使用`serialize()`函数,可以将对象序列化为字符串,便于数据交换。序列化后

2024-09-24 08:28:10
如何让php执行shell
如何让php执行shell

菜鸟求助:PHP中调用系统命令为何有些命令总是失败PHP执行系统命令(简介及方法)在PHP中调用外部命令,可以用如下三种方法来实现:方法一:用PHP提供的专门函数(四个):PHP提供4个专门的执行外部命令的函数:exec(),system(),passthru(),shell_exec()1)exec()原型:stringexec(string$command[,arra

2024-09-12 16:14:47
php 如何实现推荐视频不重复,如何实现根据每个人行为标签随机推荐,并且不会重复出现已经推荐过的?
php 如何实现推荐视频不重复,如何实现根据每个人行为标签随机推荐,并且不会重复出现已经推荐过的?

php如何实现推荐视频不重复,如何实现根据每个人行为标签随机推荐,并且不会重复出现已经推荐过的?不管有好多种方案,你必须处理几个问题点:1、每个人的行为标签,标签是否有侧重点,如人员A,拥有3个标签,a,b,c,三个标签的比重是多少,侧重点是那个标签?2、推荐视频的话,视频对应的特点标签要记录,这个是通过标签筛选视频3、为某人推荐了视频后,要将推荐信息记录下来,后续筛选直接去重

2024-10-23 14:04:13
如何用Java实现弹出窗口   非常感谢!(最好给个实例)
如何用Java实现弹出窗口 非常感谢!(最好给个实例)

java定时弹出提示窗口首先,给你看一个简单的代码例子先:importjava.util.*;publicclassTest{publicstaticvoidmain(String[]args){DatemyDate=newDate();Timertimer=newTimer();timer.schedule(newMyTask(),myDate);}s

2024-06-30 05:13:14
php反填补函数 PHP开发中(Array)数组函数大全
php反填补函数 PHP开发中(Array)数组函数大全

PHP开发中(Array)数组函数大全在PHP开发中,数组操作是日常任务之一。这篇文章将为您详细介绍PHP数组操作大全,内容覆盖从基础到进阶的多种函数。一、数组基本操作函数包括数组的创建、元素的添加、删除以及遍历等基础操作,是数组使用的基础。二、数组的切割和填充数组切割函数如array_slice()和array_splice(),可帮助您获取数组的部分元素或删除特定

2025-01-29 10:43:53
php数组函数反序 用php 自定义一函数,能够输入的整数,反序逐位输出。如输入3456,输
php数组函数反序 用php 自定义一函数,能够输入的整数,反序逐位输出。如输入3456,输

PHP中array_reverse函数的一个小问题保留原来的下标。$b = array("Cat","Dog","Horse");print_r(array_reverse($b));// 数字索引的数组,需设置第二个参数保留原索引print_r(array_reverse($b, true));//Array ( [0] => Horse [1] => Dog [2] =

2024-12-10 20:34:10
php的()函数 PHP中使用按位取反(~)函数创建后门
php的()函数 PHP中使用按位取反(~)函数创建后门

php随机数函数在PHP中,随机数(RandomNumber)是指一组伪随机数(Pseudo-randomNumber),即看起来随机的数字序列,但实际上是由一个算法生成的。PHP提供了一些内置函数,可以用来生成伪随机数,这些函数可以用于各种应用程序,如游戏、密码学、模拟等。以下是一些PHP中常用的生成随机数的函数:1、rand()函数:生成一个指定范围内的随机整数。例如

2024-10-02 00:12:31