作者: 且聽安全
原文鏈接:https://mp.weixin.qq.com/s/XDX5eq3UE51_yLo0Q4wZ0g
漏洞信息
近日,Atlassian官方發布了一則Atlassian Jira Server RCE的漏洞公告:

漏洞編號為CVE-2021-43947。從官方描述來看,屬于CVE-2021-39115補丁繞過。CVE-2021-39115漏洞的復現過程可以參考公眾號文章:
CVE-2021-39115
公眾號:且聽安全CVE-2021-39115-Atlassian Jira Service Management Server SSTI漏洞分析
漏洞分析
安裝完畢后,修改/bin/setenv.bat文件,加入調試信息:
set JVM_SUPPORT_RECOMMENDED_ARGS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:8787
重新啟動后打開遠程調試。
start-jira.bat /fg
既然這個漏洞是補丁繞過,我們首先做下補丁對比。Atlassian Jira Server通過黑名單方式修復Velocity SSTI漏洞,查看velocity.properties配置文件,對比發現新增了幾個黑名單類:

新增了黑名單類如下:
webwork.util.ValueStack,\
javax.el.ELProcessor,\
javax.script.ScriptEngineManager,\
java.lang.ProcessBuilder,\
javax.el.ImportHandler,\
javax.el.ELManager
看到這幾個熟悉的類,有經驗的小伙伴大概能夠猜到如何實現繞過了。因為上一篇Atlassian Jira Server漏洞沒有進行分析,本文還是從代碼審計的角度簡要分析下漏洞觸發流程。
查看web.xml:


一步一步跟調用棧非常長,既然問題出在郵件處理部分,直接定位com.atlassian.jira.web.action.admin.mail.SendBulkMail#doExecute:

往下走,進入com.atlassian.jira.mail.builder.EmailRenderer#renderEmailSubject:

模板渲染在org.apache.velocity.app.VelocityEngine#evaluate處完成:

為了方便bypass黑名單,我們可以編寫測試代碼,在斷點處構造不同模板逐步實現繞過:

這樣處理主要是為了方便進行漏洞調試分析。結合新增加的黑名單,應該很容易構造出繞過姿勢。感興趣的小伙伴可以按照上面的方法自行進行研究,有需要的可以關注公眾號后私聊。
漏洞復現
復現過程可以參考以前分享的漏洞CVE-2021-39115:
CVE-2021-39115
公眾號:且聽安全CVE-2021-39115-Atlassian Jira Service Management Server SSTI漏洞分析

本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1813/
暫無評論