首页 » 网站攻防 » 浏览内容

某网站CMS 5.X版本存在管理员密码重置漏洞

321 1 发表评论

某CMS 5.X版本 管理员密码重置漏洞

首发于: 某CMS 5.X版本 管理员密码重置漏洞

0x01 漏洞分析

在 admin/admin/getpassword.php 中包含了 admin/include/common.inc.php 。跟入common.inc.php,第77行:

这里存在变量覆盖漏洞。

回到 admin/admin/getpassword.php ,从第 94 行开始是发送重置密码链接邮箱的处理过程:

  1. 从数据库中取出管理员的信息
  2. 生成密码重置链接
  3. 发送密码重置链接

在发送阶段,admin/admin/getpassword.php 第 143 行:

先来看看当$sendMail==0时的情况,此时会将所需信息整合为变量$post,之后调用curl_post发送。curl_post定义在 include/export.func.php:

可以看到这里的$met_host操控了邮件内容的发送地点,而该参数可以利用前面的变量覆盖漏洞来进行直接的控制。

接着考虑如何让$sendMail==0。跟入jmailsend,include/jmail.php 第7行:

met_fd_port指定了邮件发送端口,属于系统配置。因此倘若我们利用前面的变量覆盖漏洞修改端口,即可导致邮件发送失败,进入到curl_post

0x02 漏洞复现

因为使用curl_post中使用的是http协议,默认端口为80。因此在vps上监听80端口:

在填入管理员密码或邮箱后,抓包修改数据:

forward掉后

0x03 漏洞补丁

在6.0版本中,官方直接删除了该文件,简单粗暴。

标签:

评论 共 1 条 (RSS 2.0) 发表 评论

  1. 会员头像 mask说道:

    厉害厉害

发表评论

  •   没有头像?

关注我们,实时联系

通知公告">更多...

♥如果喜欢本站可以直接点击订阅博客
♥点击此加入晓残博客会员群加入扣群
♥本站免费提供加密解密服务点击解密
♥如果你有意向广告合作点击广

站长微信

订阅博客

站内广告

博客统计

  • 日志总数:536 篇
  • 评论数目:2064 条
  • 标签总数:43 个
  • 页面总数:8 个
  • 分类总数:17 个
  • 友链总数:25 个
  • 建站日期:2011-02-13
  • 运行天数:2627 天
  • 最后更新:2018-4-25