赏金猎人|挖1day漏洞反推技巧实战(2)
2023-6-21 09:12:19 Author: 编码安全研究(查看原文) 阅读量:18 收藏

款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跳转了.

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

作者:CSDN博主「IT_Coke」原文链接:https://www.cnblogs.com/piaomiaohongchen/p/15215885.html

声明:本公众号所分享内容仅用于网安爱好者之间的技术讨论,禁止用于违法途径,所有渗透都需获取授权!否则需自行承担,本公众号及原作者不承担相应的后果。

转自hackread

注:如有侵权请联系删除

   学习更多技术,关注我:   

觉得文章不错给点个‘再看’吧。

文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2NDY1MDc2Mg==&mid=2247503238&idx=2&sn=851606aa4c543fefe25e0353ce39db68&chksm=ce649ee3f91317f5cbb985d4130bec1ffd5962ef0a6c8170c1093921f7abd80c6fb2233e6956#rd
如有侵权请联系:admin#unsafe.sh