所以我一直在想是否有辦法發送一個XML,使XML包含的代碼(字節碼)將被JVM無意中執行。我正在使用java,所以我認爲未編譯的代碼將無法工作。我想我需要在XML中插入字節碼來欺騙JVM?我想嘗試確保我構建的Web服務是安全的。我正在使用JAXB進行xml編組解碼和Jersey作爲Web服務處理程序。爲了有害的目的在XML中注入Java字節碼
3
A
回答
4
無意中?我不這麼認爲。
JAXB marshaller將要將XML值反序列化爲給定對象的狀態,但該類及其行爲將由您決定。我沒有看到在XML中發送原始字節碼,並做了任何有害的事情。
您可以發送一個JSON對象,您的Java對象可以使用Rhino執行,但這不是無意的。
您的服務可能存在其他安全問題,但Java字節碼注入攻擊不是其中之一。
無論如何,您應該在綁定之前驗證發送給您的所有數據。
2
關於唯一與xml相關的漏洞(我知道)是「外部實體」,你可以在here上閱讀。很確定這些日子裏jdk的默認外部實體處理被禁用了。
1
XML是數據,任何收件人都不會嘗試執行它。
但是當然,一些XML詞彙表使用這些數據來包含您可以認爲的執行操作的指令,然後收件人可能會被愚弄到執行不適當的操作,您可能會認爲這是一個安全問題。此漏洞不在XML級別,它處於應用程序協議(詞彙表)級別。攻擊將不得不使用在本協議中有意義的指令,這比字節碼級別的東西更像是<employee action="delete"/>
。
相關問題
- 1. Java字節碼注入
- 2. Android上的Java字節碼注入
- 3. 什麼是Java字節碼注入?
- 4. As3 swf字節碼注入
- 5. 字節碼操作的危害是什麼(如果有的話)?
- 6. 在Java中有多少字節的字節碼有特定的方法?
- 7. XML節點以字符串在Java中沒有XML頭標記
- 8. 瞭解Java字節碼和JVM
- 9. 在現有項目中用於字節碼驗證的Java路徑查找器,字節碼驗證
- 10. 瞭解Java字節
- 11. 在java中將字節[]解碼並解碼爲字符串?
- 12. 有沒有在JavaScript中實現的Java字節碼閱讀器?
- 13. Java字節碼的不同行爲
- 14. 使用JAVA代碼將XML節點添加到現有的XML
- 15. 字母O被認爲是有害的?
- 16. XML節點爲String在Java中
- 17. Spring:在ArrayList中注入字節數組
- 18. 固有/字節碼註解安全
- 19. 類Java的字節碼
- 20. 是否可以將LLVM字節碼轉換爲Java字節碼?
- 21. 帶有ASM的Java字節碼檢測:INVOKESPECIAL指令處的代碼注入驗證錯誤
- 22. 如何在使用Java的現有節點內插入新的XML節點
- 23. 瞭解Java中的註釋
- 24. 如何在Java中將字節編碼爲字符串
- 25. Java字節碼庫
- 26. JavaScript中的Java字節碼編譯器
- 27. java中的多字節編碼
- 28. 將字符串寫入文件作爲Java中的字節
- 29. XML編碼:XML注入到輸出
- 30. Java源代碼的字節碼