java中xxe漏洞修复方法
java中禁止外部實體引用的設置方法不止一種,這樣就導致有些開發者修復的時候采用的錯誤的方法
之所以寫這篇文章是有原因的!最早是有朋友在群里發了如下一個pdf,
?
?而當時已經是2019年1月末了,應該不是2018年7月份那個引起較大轟動的alipay java sdk的了,我突然虎軀一震,該不是。。。
進去看了一下,果然是我前不久在github給WxJava提的一個cve漏洞(CVE-2018-20318),由于當時我知道這個不是阿里的官方團隊(雖然項目當時已經在github上有一萬多個顆星了),所以沒有過多留意后續動態,結果才出了這么個幺蛾子。
?
言歸正傳,我當時發現這個漏洞后,開發人員很快就回復馬上修復,于是我沒有跟進了,后來才發現開發人員修復的方法有問題,于是有外國佬又提了一個cve。。
漏洞本身沒什么好說的就是除了xml字符串時沒有禁止引用外部實體,而開發人員第一次修復用的是這個???? dbFactory.setExpandEntityReferences(false)
?
要知道當時官方的xxe漏洞修復方法最早也用了這個(當時阿里修改了不止一次),顧名思義上面就是禁止實體擴展引用,那為什么就不行呢?有人專門分析過,寫的文章是特別長,反正我是沒看很懂,大概意思是他和sun公司溝通了很久,sun說:“這個屬性設置不是你們想的那樣,你們都理解錯了”,不承認是自己的問題也不改,就這樣 這個問題就一直遺留了。
這里將正確的修復方法擺出來:
而dbFactory.setExpandEntityReferences(false) 沒什么卵用!!!!
還要說下第二種方法中:XMLConstants.FEATURE_SECURE_PROCESSING?? ===== "http://xml.org/sax/features/external-general-entites"
這種修復方法是可用的,而在我之前freebuf發表的文章(https://www.freebuf.com/vuls/176837.html)中,我說這種方法不可行。。。
我當時確實是測試過了的,猜測應該是eclipse當時抽風了。。。
?
轉載于:https://www.cnblogs.com/jinqi520/p/10450553.html
總結
以上是生活随笔為你收集整理的java中xxe漏洞修复方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 目录test
- 下一篇: 求一个英文加翻译个性签名