实战 | 1day漏洞反推技巧实战(2)
2022-9-12 10:2:13 Author: HACK学习君(查看原文) 阅读量:21 收藏

CVE-2018-11784简单分析之反推的魅力

  

看着挺有趣的,简单分析下:

通过搜索tomcat漏洞找到:

http://tomcat.apache.org/security-7.html#Fixed_in_Apache_Tomcat_7.0.91

  

修改了这两个文件,我们看java文件即可,xml文件先不看:

因为跟url跳转相关,直接搜索redirect/direct等关键字:

  

关键问题在这里

说实话这样黑盒找修复代码,还是有点费劲的,毕竟看的是修复代码,没有漏洞代码做参照

通过网上前人的脚印找到github漏洞修复对比:

   https://github.com/apache/tomcat/commit/efb860b3ff8ebcf606199b8d0d432f76898040da

  

这样看太清晰了,其中问题代码是左边的代码块:

    

右边是加了一行这个:

// 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方法支持http/https外,还有//

  

运行下:

访问路由地址,跳转到百度:

  

这里的代码没对//做处理,导致变量走sendRedirect的时候,直接url跳转了:

简单跟下sendRedirect方法:

     

再往下跟进函数

    

修复方案就是去除掉两次/

所以官方的修复方案就是这样:

循环判断,如果这里的while改成if,那么会存在安全问题hhhh

    

再次访问:http://localhost:8070//test/

已经不能重定向了

输入//,只会输出一个

  

这样可控点再走sendRedirect方法,就不能url跳转了.

这种反推对漏洞挖掘来说还是很有意思的   


推荐阅读

实战 | 记一次渗透拿下某儿童色情网站的经过

实战 | 记一次企业钓鱼演练

2022年,从现在开始学安全还不迟!

干货 | 2022年超全的安全知识库

实战 | 实战一次完整的BC网站渗透测试

作者:飘渺红尘

文章来源:https://www.cnblogs.com/piaomiaohongchen/p/15215885.html

如有侵权,请联系删除

星球部分精华内容推荐

其他更多精彩内容,欢迎加入我们的星球


文章来源: http://mp.weixin.qq.com/s?__biz=MzIzNzMxMDkxNw==&mid=2247490262&idx=1&sn=6a584898ee4cba70711b58196eb07a1d&chksm=e8cbdc7cdfbc556a8d13b9addd78850a4f62e26bc2997b2b5f0dc9ab590af503655acc032e1c#rd
如有侵权请联系:admin#unsafe.sh