2013-08-02 21 views
1

我還有一個問題涉及JSP EL和安全問題如何測試這個問題(JSP表達式不允許在Struts 2標籤庫中,因爲安全問題允許黑客使用JSP EL將OGNL注入到標記中以做不好的事情)我做了大量的搜索,不能創建這樣的測試用例。請如果你有任何樣本測試或想法請建議如何測試EL有struts2安全問題OGNL

+0

你嘗試從各地JSP EL被默認禁用時間閱讀的發行說明? –

+0

你在找什麼樣的測試?你能準確地說出你在測試什麼,期望得到什麼結果? –

+0

表達式語言注入: 發生在攻擊者控制由表達式語言(EL)解釋器評估的數據時發生 有關在Google搜索中看到的問題的詳細信息: https://docs.google.com/document/d/ 1dc1xxO8UMFaGLOwgkykYdghGWm_2Gn0iCrxFsympqcE/edit?pli = 1# 現在我想測試這個注入如何在struts2.3.15中工作。 –

回答

2

從Struts版本2.0.9開始,對於評估OGNL的Struts標記屬性,JSTL/JSP表達式語言(EL)已被禁用。這是針對安全漏洞的預防措施,這種安全漏洞可能是由於第一次將屬性作爲JSTL/JSP EL表達式處理並將結果作爲OGNL表達式處理時發生的雙重評估而產生的。解決方案是直接使用OGNL表達式在Struts標記中表示所有動態屬性值。

http://struts.apache.org/release/2.2.x/docs/why-cant-i-use-jstl-style-el-expressions-in-struts-tags.html

這種類型的注射不起作用了。如果你想看看它是如何工作的,那麼爲Struts2標籤創建一個新的.tld文件副本,並對各種標籤的屬性進行EL評估。

如上所述,這是一個漏洞,利用了EL表達式由JSP/EL引擎處理的事實,並且OGNL表達式在標記類內部進行了評估。

例如,如果Struts2的標籤允許EL表達式,你可以用下面的風:

<s:text name="${someVar}"/> 

哪裏someVar是從傳入請求設置的參數,它可以評估到任意OGNL表達式。一旦文本標籤被調用,它就會評估OGNL表達式,這可能會產生意想不到的後果。

有一個更深入的例子坐落在JIRA票針對此問題: https://issues.apache.org/jira/browse/WW-2107

+0

請注意,實際修復版本似乎爲2.0.10,而不是2.0.9,如第一個鏈接所示。 –