当前位置:论坛首页 > Linux面板 > Linux面板教程

【漏洞预警】metinfo 6.2.0 前台SQL 注入漏洞

发表在 Linux面板2019-4-1 17:04 [复制链接] 2 4412

文章地址:https://nosec.org/home/detail/2436.html
metinfo 6.2.0最新版本前台注入分析概述

看到某个表哥发的metinfo 6.1.3最新注入(https://xz.aliyun.com/t/4508),以前我发过metinfo利用注入getshell的文章,这里正好可以结合。(]https://nosec.org/home/detail/2324.html),在检查官方发布的最新版6.2.0版本的时候,发现该漏洞并未修复。

利用条件

前台,(https://xz.aliyun.com/t/4508 )作者在这里说需要注册会员,其实有一处不需要。

漏洞详情

这里关键点在auth类的encode()和decode()方法。看下代码:


这里两个方法全都调用了authcode()方法,跟进authcode看一下:


这里decode和encode算法可逆,但我们需要知道$key的值,查看构造函数:


这里$key的值是来源于met_webkeys这个配置,查看met_webkeys来源发现在安装的时候把这个key写入到./config/config_safe.php文件中。


查看/config/config_safe.php文件,这里写入方式类似以下,但p牛在某篇文章中说过,这种是无法解析的,php后面必须要有一个空白字符,右键查看源代码即可得到met_webkeys,但有的会报错,根据这个表哥所说和php线程安全有关,本地试了下好像是这样。




这里有两个利用点,简单说下其中一个。在register类的doemailvild()方法中,这里把用户提交的p参数进行了解密,并且传入到了get_user_valid()方法中。


查看get_user_valid()方法,这里又把解密后的值传入到了get_user_by_username()方法。


查看get_user_by_username()方法,又传入了get_user_by_nameid()方法。


查看get_user_by_nameid()方法,直接拼接。


这里基本就清楚了,将auth类的authcode()方法copy本地。


访问本地文件得到加密后的字符串。


将加密后的字符串放到cookie,get或者post中,构造请求提交,延时注入成功。


payload

这里有两个,一个是不需要登陆就可注入,另一个是coolcat表哥所说的需要以会员登陆。以下请自行替换p参数。

1、不需要登陆

GET /admin/index.php?n=user&m=web&c=register&a=doemailvild HTTP/1.1Cookie: p=00c7%2FDBwD23b41olxVCthTvDDTRBhldmrrdyA8S3t%2F3yAl4QZ0P%2FSfOS5zlB

2、 需要登陆

GET /admin/index.php?n=user&m=web&c=profile&a=dosafety_emailadd HTTP/1.1Cookie: p=497cD9UpkDtsvFzU9IKNlPvSyg1z%2bf09cmp8hqUeyJW9ekvPfJqx8cLKFSHr;<自行添加登陆后的cookie>




第二个metinfo <=6.1.3前台SQL注入


使用道具 举报 只看该作者 回复
发表于 2019-4-1 17:14:00 | 显示全部楼层
火钳刘明
使用道具 举报 回复
发表于 2019-4-2 16:24:28 | 显示全部楼层
难道我的网站被黑,,被黑之前就是装了这个程序拿来测试做企业站,被黑了,就删除这个程序了。
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击联系技术免费分析

工作时间:09:00至18:30

快速回复 返回顶部 返回列表