前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >代码审计 | 敏感信息泄露

代码审计 | 敏感信息泄露

作者头像
TeamsSix
发布2022-09-20 18:31:26
1.2K0
发布2022-09-20 18:31:26
举报

这里以 TurboMail 5.2.0 里的敏感信息泄露漏洞作为学习。

已知 TurboMail 5.2.0 的敏感信息泄露路径为 /mailmain?type=pm

打开 TurboMail 的安装目录,在 turbomail\web\webapps\ROOT\WEB-INF 下找到 web.xml 文件,发现以下配置信息

代码语言:javascript
复制
<servlet-mapping>
  <servlet-name>mailmaini</servlet-name>
  <url-pattern>/mailmain</url-pattern>          
</servlet-mapping>  
代码语言:javascript
复制
<servlet-name>mailmaini</servlet-name>
<servlet-class>turbomail.web.MailMain</servlet-class> 

从这些配置信息不难看出 /mailmain 路径对应的 servlet-name 是 mailmaini,而 mailmaini 对应的 servlet-class 是 turbomail.web.MailMain

那么这里就需要找到 turbomail.web.MailMain 类进行分析,假设这个类是在 turbomail.jar 文件里,通过搜索在 /turbomail/web/webapps/ROOT/WEB-INF/lib/ 下找到 turbomail.jar 文件

利用 jd-gui 或者 Intellij IDEA 对 turbomail.jar 进行反编译,可以在 turbomail/web/ 文件夹内找到 MailMain.java 文件,这说明之前的假设是正确的。

在 195 行可以看到接收了 type 参数

代码语言:javascript
复制
195  String type = request.getParameter("type");
196  if (type == null) {
197      type = "";
198  }

在 543 行可以看到如果 type 参数为 pm,则执行 PMAdmin 的 show 方法

代码语言:javascript
复制
543  } else if (type.equals("pm")) {
544     PMAdmin.show(false, request, response);

查看该方法的代码,可以看到并没有对用户身份进行验证

代码语言:javascript
复制
public static void show(boolean bAjax, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    PMInterface pm = null;
    StringBuffer sb = new StringBuffer();

    for(int i = 0; i < alPM.size(); ++i) {
        pm = (PMInterface)alPM.get(i);
        sb.append(pm.PM());
        sb.append("\r\n");
    }
    String str = sb.toString();
    response.getOutputStream().write(str.getBytes(SysConts.New_InCharSet));
}
}

因此直接访问 /mailmain?type=pm 就可以看到已登录的用户邮箱信息

这个地方除了泄露登录用户邮箱外,type 后面跟上不同的参数还会泄露邮箱用户列表以及对管理员密码重置等,读者可以自己尝试去发现发现。


往期推荐

代码审计 | JWT Token

代码审计 | 模板注入

代码审计 | 表达式注入

原文链接: https://www.teamssix.com/211215-131111.html

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TeamsSix 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
代码审计
代码审计(Code Audit,CA)提供通过自动化分析工具和人工审查的组合审计方式,对程序源代码逐条进行检查、分析,发现其中的错误信息、安全隐患和规范性缺陷问题,以及由这些问题引发的安全漏洞,提供代码修订措施和建议。支持脚本类语言源码以及有内存控制类源码。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档