周其仁:停止改革,我们将面临三大麻烦

抛开立场观点不谈,且看周小平写一句话能犯多少语病

罗马尼亚的声明:小事件隐藏着大趋势——黑暗中的风:坚持做对的事相信未来的结果

布林肯突访乌克兰,为何选择去吃麦当劳?

中国不再是美国第一大进口国,贸易战殃及纺织业? 美国进一步延长352项中国商品的关税豁免期

生成图片,分享到微信朋友圈

自由微信安卓APP发布,立即下载! | 提交文章网址
查看原文

渗透测试 之 SSRF 302跳转 Bypass

剑胆琴心 LemonSec 2023-01-24

今天面试问到了302SSRF,之前没了解过,发现CTFHub技能树里面有,就来记录一下学习

302用来做临时跳转

302 表示临时性重定向,访问一个url时,被重定向到另一个url上。

302常用于页面跳转,比如未登陆的用户访问用户中心,则重定向到登录页面,访问404页面会重新定向到首页。


301适合永久重定向

301比较常用的场景是使用域名跳转。

比如,我们访问 http://www.baidu.com 会跳转到 https://www.baidu.com发送请求之后,就会返回301状态码,然后返回一个location,提示新的地址,浏览器就会拿着这个新的地址去访问。


注意: 301请求是可以缓存的, 即通过看status code,可以发现后面写着from cache。
或者你把你的网页的名称从php修改为了html,这个过程中,也会发生永久重定向。


301重定向和302重定向的区别:
302重定向只是暂时的重定向,搜索引擎会抓取新的内容而保留旧的地址,因为服务器返回302,所以,搜索搜索引擎认为新的网址是暂时的。

而301重定向是永久的重定向,搜索引擎在抓取新的内容的同时也将旧的网址替换为了重定向之后的网址。

题目

题目:SSRF中有个很重要的一点是请求可能会跟随302跳转,尝试利用这个来绕过对IP的检测访问到位于127.0.0.1的flag.php吧

打开题目,发现地址为:http://challenge-d3b433f06a62d54f.sandbox.ctfhub.com:10800/?url=

发现后面有过get的url参数,尝试访问:127.0.0.1/flag.php提示“被拦截,不允许内部ip访问”

那我使用file协议获取flag其源码:?url=file:///var/www/html/flag.php

可见通过REMOTE_ADDR请求头限制本地IP请求,但是源码中并没有之前的“hacker! Ban Intranet IP”,所以查看index.php页面的源码:?url=file:///var/www/html/index.php

可以看到存在黑名单,限制了12717210192网段,这里可以通过localhost的方式绕过: ?url=localhost/flag.php
也可以得到flag:

但是题目说了使用302,这里还是要学习一下这个知识点的。

使用短网址,将http://127.0.0.1/flag.php转为短网址:

利用生成的短地址构造Payload:?url=surl-2.cn/0nPI发送请求,利用302跳转,得到flag:

302跳转

可绕过ssrf一些利用限制

使用dict协议查看端口开放情况,当端口开放时会返回 Bad request 3 当端口未开放时:利用gopher协议反弹shell 或者限制了只能使用HTTP,HTTPS,设置跳转重定向为True(默认不跳转)即利用302跳转

短网址绕过(DNS重定向302) http://t.cn/RwbLKDx

xip.io来绕过(DNS重定向302):http://xxx.192.168.0.1.xip.io/ == 192.168.0.1 (xxx 任意) http://xip.io 指向任意ip的域名:xip.io(37signals开发实现的定制DNS服务)

文章作者: 剑胆琴心文章链接: http://www.xpshuai.cn/SSRF-302%E8%B7%B3%E8%BD%AC-Bypass.ht

声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权

侵权请私聊公众号删文

 热文推荐  


欢迎关注LemonSec
觉得不错点个“赞”、“在看“

文章有问题?点此查看未经处理的缓存