学习存货(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跳转了.