是否有可能通过mod_proxy_ajp间接利用"Ghostcat“漏洞(CNVD-2020-10487/CVE-2020-1938)?
当我瞄准我的Tomcat的AJP端口时,我成功地测试了概念的验证(https://www.exploit-db.com/exploits/48143)。但是,我的tomcat实例并不是直接从外部访问的,而是位于通过mod_proxy_ajp的Apache反向代理后面。在这种情况下,我能免受外部鬼猫的攻击吗?
作为间接攻击的测试,我向我的Apache前端发送了一个HTTP请求,这些代理指向Tomcat端口,并设置了以下HTTP报头:
req_attribute: javax.servlet.include.request_uri=/, javax.servlet.include.path_info=WEB-INF/web.xml, javax.servlet.include.servlet_path=/我还尝试了这个标题的变体,例如使用分号作为分隔符而不是逗号,以及在一个单独的行中为每个键设置多个req_attribute头,值对。
幸运的是,HTTP响应的主体没有转储我的web.xml/web.xml文件,因此这些间接攻击尝试失败了。通过对tcpdump的进一步检查,我发现这些req_attribute头不会被编码成使用单个字节(0x0a)表示req_attribute的AJP格式。因此,HTTP请求头似乎不会转换为AJP的二进制请求头。因此,我认为通过传递给mod_proxy_ajp的HTTP请求是不可利用的漏洞,对吗?或者,是否有一种巧妙的方法来创建一个HTTP请求,使mod_proxy_ajp以AJP的二进制格式传递req_attribute标头,从而间接利用此漏洞?
发布于 2020-03-14 14:06:57
此漏洞不太可能通过mod_proxy_ajp触发。它可以通过将相关的AJP属性设置为在Apache上带有AJP_前缀的环境变量来生成。如下所示。
AJP_javax.servlet.include.path_info=WEB-INF/web.xml SetEnvIf Request_URI .* .*
https://security.stackexchange.com/questions/227105
复制相似问题