i春秋學院是國內比較知名的安全培訓平臺,前段時間看了下網站,順便手工簡單測試常見的XSS,發現網站搜索功能比較有意思。javascript
實際上是對用戶輸入的內容HTML編碼和URL編碼的處理方式在這裏不合理,提交到烏雲被拒絕了,由於確實沒啥危害,所以技術BLOG記錄下。html
如搜索:http://www.ichunqiu.com/search/ab<>,搜索內容爲ab<>,頁面會把<>作html編碼後在頁面展示,這樣看起一切正常。java
如:web
但通過屢次分析,發現把搜索的內容用URL屢次編碼或html屢次編碼後,服務端後臺都會自動解碼而後輸出到客戶端,那是否能夠把惡意的標籤經過屢次編碼後來搜索,僞造一個URL地址,達到XSS的攻擊效果呢。安全
結果通過屢次測試,發現雖然屢次URL和HTML編碼後,後臺會自動解碼,但輸出到客戶端前,會再次對輸出的內容作安全性檢測,致使不能XSS。測試
好比輸入:%25253Cimg%20src%253D"http%3A%2F%2Fwww.baidu.com%2Flogin%2Flogout"%25253E網站
該內容是標籤:<img src="http://www.baidu.com/login/logout">,通過URL屢次編碼的效果,實際把英文字母用HTML屢次編碼同樣能夠,以前測試的時候用iframe,javascript等,都通過html屢次編碼字母內容也能夠繞過,但輸出到客戶端時服務端又作了處理,因此致使不能XSS。編碼
效果以下:spa
要是把img裏的內容換成<img src="http://www.ichunqiu.com/login/logout">,則訪問這個的地址會自動退出該網站。htm
最終沒有對用戶和網站形成任何安全影響,但以爲html這樣處理的方式適合多文本框輸入輸出的處理方式,不適合對搜索內容的編碼處理方式。