背景:
这个漏洞是有CVE的CVE-2018-11784,这是一个任意URL跳转漏洞,具体案例可以参考H1的一个漏洞,https://hackerone.com/reports/387007 下面就来剖析一下。
CVE描述:
https://nvd.nist.gov/vuln/detail/CVE-2018-11784
当Apache Tomcat版本9.0.0.M1到9.0.11、8.5.0到8.5.33和7.0.23到7.0.90中的默认servlet返回到一个目录的重定向(例如,当用户请求'/foo'时重定向到'/foo/’),一个特制的URL可用于导致重定向生成到攻击者选择的任何URI。
环境准备
IDEA联调Tomcat源码
源码下载:
http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.73/src/
配置参考:
https://blog.csdn.net/qq_35262405/article/details/101780644
我一直使用的Tomcat版本为7.0.73,所以我就下载这个版本的源码来进行debug.
配置IDEA调试
1、idea本地导入项目
从本地存在的文件,创建项目,默认选项即可。
2、Run -> 创建Application - 配置如下,
确保Main Class 为:org.apache.catalina.startup.Bootstrap
Working directory 为源码根目录, /Users/xxxx/DevTools/Tomcat/apache-tomcat-7.0.73-src
选择JRE,选择class path of modules 为apache-tomcat-7.0.73-src
如下图所示:
此时直接运行,是会报错的,提示缺少一些库。如下图所示:
缺这些jar包,我们用Maven来导入吧,项目根目录编写pom.xml文件内容如下: