赏金猎人|挖1day漏洞反推技巧实战(2)
2022-10-8 12:35:8 Author: 白帽子左一(查看原文) 阅读量:36 收藏

扫码领资料

获黑客教程

免费&进群

上篇:赏金猎人|挖1day漏洞反推技巧实战(1)

款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

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

@
学习更多渗透技能!体验靶场实战练习

hack视频资料及工具

(部分展示)

往期推荐

【精选】SRC快速入门+上分小秘籍+实战指南

爬取免费代理,拥有自己的代理池

漏洞挖掘|密码找回中的套路

渗透测试岗位面试题(重点:渗透思路)

漏洞挖掘 | 通用型漏洞挖掘思路技巧

干货|列了几种均能过安全狗的方法!

一名大学生的黑客成长史到入狱的自述

攻防演练|红队手段之将蓝队逼到关站!

巧用FOFA挖到你的第一个漏洞

看到这里了,点个“赞”、“再看”

文章来源: http://mp.weixin.qq.com/s?__biz=MzI4NTcxMjQ1MA==&mid=2247581053&idx=1&sn=a53ace8bc07b7aed7aea8ac85c944a11&chksm=ebebf450dc9c7d46cfd568df38031b7950f9d90d67291573d1f9ec732204226b0ef65aa95ac2#rd
如有侵权请联系:admin#unsafe.sh