背景:今天想实践一下actuator Jolokia XXE RCE的复现;复现过程中出现了很多的名词之前是没接触到的,就一此次复现做一个契机,补充一下自己需要知道的知识点
需要了解的知识点如下:其中的每一点我基本上都会先一篇文章去整理。
思维导图地址地址:https://www.processon.com/mindmap/61a5edbf5653bb136f91f417
Jolokia允许通过HTTP访问所有已注册的MBean,同时可以使用URL列出所有可用的MBeans操作。(MBean是JMX中可以被动态调用的一些对象。因为图上也说过,Jolokia是JMX的一种通过HTTP使用的方式。)
我们可以看到jolokia中有logback JMXConfigurator。JMXConfigurator中提供的“reloadByURL”方法。可以从外部URL
重新加载日志的记录配置. Jolokia的通信协议可看连接
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<withJansi>true</withJansi>
<encoder>
<pattern>[%thread] %highlight(%-5level) %cyan(%logger{15}) - %msg %n</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="STDOUT" />
</root>
<jmxConfigurator/>
</configuration>
搭建HTTP服务器。供JMXConfigurator中提供的“reloadByURL”方法,引入外部xml文件。
1、 cd到当前目录下;
2、执行 python -c “from http.server import test, SimpleHTTPRequestHandler as RH; RH.extensions_map={k:v+’;charset=UTF-8’ for k,v in RH.extensions_map.items()}; test(RH)”
完成下载http服务器搭建:
解析外部引入的xml,对插入JNDI部分解析并进行创建JNDI服务
到这一步时就不知怎么去操作了,困难点如下:1、如何对JNDI进行分析?2、解析过程中如何进行调用JNDI的服务?3、JNDI服务应该如何去写,写完如何被调用?
##############2021/12/1月。 问题待解决。。。。