學習存貨(2)
CVE-2018-11784簡單分析之反推的魅力
看着挺有趣的,簡單分析下:
修改了這兩個文件,我們看java文件即可,xml文件先不看:
關鍵問題在這裏
// Avoid protocol relative redirects while (location.length() > 1 && location.charAt(1) == '/') { location.deleteCharAt(0); }
github項目:tomcat>9.0.12都修復了,tomcat9.0.12之前都沒做處理
複製粘貼出來這一段到我的本地測試:
這是修復後的,直接去除掉修復的代碼:
運行查看:
訪問:http://localhost:8070//test
跳轉到了test
運行下:
這裏的代碼沒對//做處理,導致變量走sendRedirect的時候,直接url跳轉了:
再往下跟進函數
修復方案就是去除掉兩次/
再次訪問:http://localhost:8070//test/
這樣可控點再走sendRedirect方法,就不能url跳轉了.