摘要

MetInfo 23号发布了新版本5.1.5,修补了本文提到的漏洞,当然严格来说应该是任意变量覆盖漏洞….

ps:欢迎各种形式转载,首发t00ls.net

MetInfo 23号发布了新版本5.1.5,修补了本文提到的漏洞,当然严格来说应该是任意变量覆盖漏洞….

ps:欢迎各种形式转载,首发t00ls.net

废话不多说,看代码:

include/common.inc.php 20 - 39

[php]

$db_settings = parse_ini_file(ROOTPATH.'config/config_db.php');

@extract($db_settings);

require_once ROOTPATH.'include/mysql_class.php';

$db = new dbmysql();

$db->dbconn($con_db_host,$con_db_id,$con_db_pass,$con_db_name);

define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc());

isset($_REQUEST['GLOBALS']) && exit('Access Error');

require_once ROOTPATH.'include/global.func.php';

foreach(array('_COOKIE', '_POST', '_GET') as $_request) {

foreach($$_request as $_key => $_value) {

$_key{0} != '_' && $$_key = daddslashes($_value);

}

}

$query="select * from {$tablepre}config where name='met_tablename' and lang='metinfo'";

$mettable=$db->get_one($query);

$mettables=explode('|',$mettable[value]);

foreach($mettables as $key=>$val){

$tablename='met_'.$val;

$$tablename=$tablepre.$val;

}

[/php]

metinfo系统通过查询数据库的{$tablepre}config表,并将获取的结果通过foreach循环初始化表名变量,其中的

是通过代码

[php]$db_settings = parse_ini_file(ROOTPATH.'config/config_db.php');

@extract($db_settings);

[/php]

来初始化的,然后在系统中使用这样”SELECT * FROM $met_message where id=$id and lang=’$lang’”的SQL查询数据库,

其中的$met_message变量就是前面foreach循环初始化的变量……

我们可以覆盖$tablepre变量使表名初始化失败,进而提交表名变量…..

我找了个后台的上传页面,通过覆盖变量绕过后台验证并且覆盖允许上传后缀列表,构造上传漏洞。

exp:

[php]

[/php]

作者: my5t3ry

php.ini 米拓_MetInfo(米拓) v5.1.3任意文件上传漏洞分析附利用EXP | CN-SEC 中文网相关推荐

  1. php大文件上传php.ini配置

    来源:http://xuqin.blog.51cto.com/5183168/909258 http://wenku.baidu.com/view/daa108687e21af45b307a8e3.h ...

  2. php.ini maxfileuploads,细说PHP高洛峰文件上传类源文件

    以下是兄弟连php视频教程中高洛峰老师所教授的文件上传类的源代码,尚没有完全理解精髓,在这里记录一下,供日后有需要时查看: $value){ $key=strtolower($key); if(!in ...

  3. ThinkPHP V5.0.5漏洞_ThinkPHP漏洞分析与利用

    一.组件介绍 1.1 基本信息 ThinkPHP是一个快速.兼容而且简单的轻量级国产PHP开发框架,遵循Apache 2开源协议发布,使用面向对象的开发结构和MVC模式,融合了Struts的思想和Ta ...

  4. .user.ini上传详解附CTF例题

    .user.ini上传详解附CTF例题 题目 解法 https://buuoj.cn/challenges#[SUCTF%202019]CheckIn [SUCTF 2019]CheckIn 题目 解 ...

  5. PHP修改php.ini中关于文件上传大小的配置项

    php.ini php.ini文件保存了php的一些重要属性,例如现在要说的文件上传的一些限制条件,关于php.ini,有一篇很好的介绍:php.ini文件详解,在Windows系统中编写php的时候 ...

  6. 第三十二天学习笔记-web漏洞-文件上传的条件竞争、.htaccess文件与.user.ini文件使用前提、二次渲染

    目录 二次渲染原理 绕过方法 htaccess配置文件 .user.ini 二次渲染原理 在我们上传文件后,网站会对图片进行二次处理(格式.尺寸,保存,删除 要求等),服务器会把里面的内容进行替换更新 ...

  7. 文件上传 .htaccess 与.user.ini

    1..htaccess 1使用方法,上传.htaccess文件内容如下 <FilesMatch "shell"> SetHandler application/x-ht ...

  8. Upload-labs Pass-05 .user.ini文件上传

    0x01 .user.ini分析 原靶场环境更新,在04关后更新了一关,从05关以后,所有的关卡都是往后推了一关. 这一关和04传.htaccess文件相似,过滤了.htaccess没有过滤.user ...

  9. 拓网超大文件上传组件

    javaweb上传文件 上传文件的jsp中的部分 上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求 1.通过form表单向后端发送请求 <form id=" ...

最新文章

  1. 0x14.基础数据结构 — hash表与字符串hash
  2. 以太坊知识教程------账户
  3. 蓝桥杯-题目:猜算式
  4. php中上传图片怎么显示出来,PHP上传图片类显示缩略图功能
  5. windows上配置nginx php,Windows下配置Nginx使之支持PHP
  6. 12个JavaScript技巧
  7. oracle分区表学习及应用
  8. vue 修改项目启动后的页面_vue项目打包后打开页面空白解决办法
  9. python3.7怎么安装tensorflow_gpu_(更新版)python3.7 Windows10 tensorflow-GPU 安装
  10. 新鲜角度看问题:从Python角度解析Selenium原理
  11. ERROR: libopenjp2 = 2.1.0 not found using pkg-config
  12. win7无线网络突然不能用了(或打开无线按钮灰色)
  13. JS简单的时间控件分享
  14. FPGA基础之HLS
  15. 副驾驶的意义_副驾驶位置有什么含义?
  16. Android系统编程入门系列之应用环境及开发环境介绍
  17. 从转载阿里开源项目 Egg.js 技术文档引发的“版权纠纷”,看宽松的 MIT 许可该如何用?
  18. Drawable转Bitmap,Bitmap#getPixel像素为0的解决办法
  19. Linux中的lvm动态扩容管理
  20. Iterator循环的用法

热门文章

  1. 2015最新心肺复苏指南
  2. 分享88个HTML社会教育模板,总有一款适合您
  3. 抖音同城团购拓客工具+账号矩阵技术搭建新动态
  4. 一位【田】姓学生的2016年【java】小游戏全码
  5. 如何实现「零信任网络」安全体系结构?教你五步实现无边界安全
  6. 修改linux命令行显示格式PS1
  7. 世上最健康的作息时间表七点半起床十一点半睡觉
  8. 程序员的一天日常(你们也这样的么?)
  9. 解决IE8下工商银行个人网银登入错误
  10. 两位清华校友闪耀NeurIPS2020!各9篇入选,华人之最,“不意外,哪个顶会近就投哪个”...