MetInfo_v5.1.3 任意文件上传漏洞

admin 2021年4月3日19:20:35评论146 views字数 1450阅读4分50秒阅读模式

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

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

注:请勿利用本文内容从事一切非法活动,否则后果自负

author:my5t3ry

废话不多说,看代码:

includecommon.inc.php 20 - 39

$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;
}

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

是通过代码

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

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

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

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

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

exp:任意文件上传

任意文件上传

source

文章来源于lcx.cc:MetInfo_v5.1.3 任意文件上传漏洞

相关推荐: 【火星帖】关于这种类似NOSQL数据库技术,一直不明白是什么,望赐教!

关于这种类似NOSQL数据库技术,一直不明白是什么,望赐教! 神牛 | 2014-01-26 21:24 如下图所示,普遍出现于一些小型asp网站,没有假设数据库,用asp来内链数据库,类似于NOSQL技术 一直不懂这种技术的原理和名称,还有其详细信息,希望知…

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年4月3日19:20:35
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   MetInfo_v5.1.3 任意文件上传漏洞https://cn-sec.com/archives/321599.html

发表评论

匿名网友 填写信息