漏洞原理
fileserver是Apache ActiveM提供的一個RESTful API接口,可通過GET、PUT、DELETE等HTTP請求對文件進行讀寫操作,設計目的是為了彌補消息隊列操作不能傳輸、存儲二進制文件的缺陷,在文件操作過程中出現了任意文件讀寫漏洞。
影響版本
5.12.x之前的版本。
復現環境
將ActiveMQ部署在MAC上,使用版本為apache-activemq-5.11.1,JDK版本為1.7
復現過程
啟動ActiveMQ,並嘗試上傳jsp木馬,返回401,上傳時失敗。。。
把文件名后綴改為txt,再上傳,返回204,上傳成功(網上有些文章直接上傳jsp也能傳上去,我這里是傳不上去的,原因不明。。。)
在apache-activemq-5.11.1/webapps/fileserver文件夾下可以找到剛才上傳的文件:
此時的jsp木馬是無法執行的,原因有二:1.文件名后綴是txt,2.fileserver目錄無法執行jsp。所以需要將該文件后綴改為jsp,然后移動到可以執行jsp的文件夾內。
查看activemq的絕對路徑:http://IP:8161/admin/test/systemProperties.jsp,將木馬傳到webapps/api下面:
訪問上傳的木馬,執行ls命令成功:
本文僅用於技術學習和交流,嚴禁用於非法用途,否則產生的一切后果自行承擔。