所以我一直在想是否有辦法發送一個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. 瞭解字節碼java
- 5. 字節碼注入可能有用嗎?
- 6. As3 swf字節碼注入
- 7. 字節碼注入後java.lang.VerifyError
- 8. 字節碼操作的危害是什麼(如果有的話)?
- 9. 如何在java中表示java註釋字節碼
- 10. java中的字節碼
- 11. 在Java中有多少字節的字節碼有特定的方法?
- 12. Java註釋的默認值是否編譯爲字節碼?
- 13. 瞭解爲簡單Java類生成的字節碼
- 14. 在java中字符串xml的節點內轉義xml字符
- 15. XML節點以字符串在Java中沒有XML頭標記
- 16. 瞭解Java字節碼和JVM
- 17. 在現有項目中用於字節碼驗證的Java路徑查找器,字節碼驗證
- 18. 瞭解Java字節
- 19. 在java中將字節[]解碼並解碼爲字符串?
- 20. 有沒有在JavaScript中實現的Java字節碼閱讀器?
- 21. Java字節碼的不同行爲
- 22. 將字符串注入到沒有內容轉義的XML節點中
- 23. 使用JAVA代碼將XML節點添加到現有的XML
- 24. 字母O被認爲是有害的?
- 25. Java字節碼
- 26. Java字節碼中的字段引用
- 27. 如何在Gradle項目中將Kotlin的字節碼版本設置爲Java 8?
- 28. XML節點爲String在Java中
- 29. Spring:在ArrayList中注入字節數組
- 30. jar文件中的字節碼注入對策