SSRF过滤攻击

SSRF绕过:

靶场地址:重庆橙子科技SSRF靶场

这个是毫无过滤的直接读取,但是一般网站会设置有对SSRF的过滤,比如将IP地址过滤。

下面是常用的绕过方式:

1.环回地址绕过

http://127.0.0.1/flag.php   

http://017700000001/flag.php  #八进制

http://0x7F000001/flag.php   #十六进制

http://2130706433/flag.php   #十进制

发现题目出现过滤,直接进行IP的进制转换。

直接搞定。

2.重定向绕过

     302重定向绕过是指一种安全漏洞,通常出现在Web应用程序中,可以被恶意用户利用来绕过预期的访问控制或执行非授权的操作。这种漏洞的本质在于应用程序对302状态码的处理不当,导致攻击者可以通过重定向来引导用户到他们控制的恶意网站或执行其他未授权的操作。

重定向绕过分为两种:

  1. 开放重定向漏洞(Open Redirect):在这种情况下,应用程序允许用户控制重定向的目标URL,但没有进行足够的验证和过滤。攻击者可以构造一个特殊的URL,将用户重定向到恶意站点,从而进行钓鱼攻击或窃取用户信息。

  2. 闭合重定向漏洞(Closed Redirect):虽然应用程序限制了重定向的目标URL,但攻击者可以利用不同的方式绕过此限制。例如,通过在URL中添加参数或混合使用URL编码和解码来绕过输入验证。

 

如上图所示,这里对IP地址(进行了过滤,只要访问服务器的IP是127.0.0.1或者一眼内网IP,直接过滤掉,导致无法访问)

重定向绕过原理:

其实很简单,就是攻击者利用一台有公网IP的web服务器,然后在上面进行命令,然后302重定向到127.0.0.1,其实就是将SSRF这台服务器进行了一层利用或者跳板。

302重定向攻击代码

在自己web服务器上写入index.php

<?php
header('Location: http://127.0.0.1/flag.php');

 然后打开php -s 0.0.0.0:7777,开启相应的服务,

 

提交后变成

直接识别出你的IP地址是222.183.24.10(公网IP)

3.DNS重绑定绕过

现在针对SSRF攻击的主流防御手段通常为:

1.解析目标URL,获取其Host
2.解析Host,获取Host指向的IP地址
3.检查IP地址是否为内网地址
4.请求URL
5.如果有跳转,拿出跳转URL,执行1

经过这整套流程过后:

可以有效限制:直接访问内网IP;302跳转;xip.io/xip.name 及短链接变换等URL变形;畸形URL;iframe攻击;IP进制转换

针对这种防御可以使用DNS Rebinding Attack(DNS重绑定攻击)

其实就是服务器进行两次DNS解析同一域名的间隔期间,(如果间隔期间比较长,而且有缓存,会有失败的概率)我利用这个空档直接更换我都IP,从而进行对WAF的绕过

 DNS重绑定网站生成:rbndr.us dns rebinding service (cmpxchg8b.com)

A输入自己服务器的公网IP然后B是本地,就可以产生重绑定

直接拿到手。

希望本文能够帮助给位学习SSRF绕过攻击,谢谢!

文章参考:重庆橙子科技陈腾老师---<<SSRF学习>>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3267308.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Qt基础 | 自定义界面组件 | 提升法 | 为UI设计器设计自定义界面组件的Widget插件 | MSVC2019编译器中文乱码问题

文章目录 一、自定义 Widget 组件1.自定义 Widget 子类2.自定义 Widget 组件的使用 二、自定义 Qt Designer 插件1.创建 Qt Designer Widget 插件项目2.插件项目各文件的功能实现3.插件的编译与安装4.使用自定义插件5.使用 MSVC 编译器输出中文的问题 一、自定义 Widget 组件 当…

primetime如何合并不同modes的libs到一个lib文件

首先&#xff0c;用primetime 抽 timing model 的指令如下。 代码如下&#xff08;示例&#xff09;&#xff1a; #抽lib时留一些margin, setup -max/hold -min set_extract_model_margin -port [get_ports -filter "!defined(clocks)"] -max 0.1 #抽lib extract_mod…

Adobe正通过数字体验改变世界

在当今这个数字化飞速发展的时代&#xff0c;Adobe公司正以其创新的技术和卓越的产品引领着创意设计领域的变革。从Adobe发布的生成式AI工具&#xff08;Adobe Firefly&#xff09;&#xff0c;到Illustrator和Photoshop的新AI功能&#xff0c;再到广受认可的Adobe国际认证&…

视频去水印免费电脑版 pdf压缩在线免费网页版 pdf压缩在线免费 简单工具软件详细方法步骤分享

消除视频中的恼人水印&#xff0c;是许多视频编辑爱好者的常见需求。在这篇文章中&#xff0c;我们将探讨几种视频去水印的技巧&#xff0c;在数字化时代&#xff0c;视频和图片的传播越来越方便&#xff0c;但随之而来的水印问题也让人头疼。本文将为您详细介绍视频剪辑去水印…

moviepy:将MP4视频数据每隔10秒裁剪成一个新的视频,并保存在同一个文件夹下

将MP4视频数据每隔10秒裁剪成一个新的视频&#xff0c;并保存在同一个文件夹下。 输入数据&#xff0c; 裁剪结果&#xff1a; import os from moviepy.video.io.VideoFileClip import VideoFileClipdef split_video_into_segments(video_path, segment_duration10):# 获取视…

提示找不到 msvcp120.dll 文件要怎么处理?探讨msvcp120.dll 的修复方法

当你的电脑提示找不到 msvcp120.dll 文件时&#xff0c;这意味着系统存在问题&#xff0c;导致部分应用程序无法正常启动。这是因为 msvcp120.dll 是一个重要的系统文件&#xff0c;通常与运行使用 Microsoft Visual C 2013 开发的程序相关。下面我们将探讨 msvcp120.dll 文件的…

js将 毫秒数转为刚刚,,几分钟,几小时,几天,几周,几月,几年

复制即用 百度有一个毫秒换算器&#xff0c;可以用它来验证代码换算的正确与否。 console.log(Tools(9252206000)) //三月// 毫秒数转为天&#xff0c;小时分钟秒 function Tools (time) {let daysRound Math.floor(time / 1000 / 60 / 60 / 24);let minutesRound Math.flo…

Python文献调研(一)环境搭建

一、安装Python版本 1.点击进入Python官网 Download Python | Python.org 2.根据自己的需求选择python的版本&#xff0c;点击【Download】 3.自定义安装路径&#xff0c;记得勾选Add Python xxx to PATH 这步是自动配置环境变量的&#xff0c;如果忘记勾选&#xff0c;建议…

LeetCode24 两两交换链表中的节点

前言 题目&#xff1a; 24. 两两交换链表中的节点 文档&#xff1a; 代码随想录——两两交换链表中的节点 编程语言&#xff1a; C 解题状态&#xff1a; 没画图&#xff0c;被绕进去了… 思路 思路还是挺清晰的&#xff0c;就是简单的模拟&#xff0c;但是一定要搞清楚交换的…

UE5+OpenCV配置(Windows11系统)

一、概述 因为需要在UE5中使用OpenCV这些工具进行配置&#xff0c;所以在网络上参考借鉴一些资料进行配置。查询到不少的资料&#xff0c;最后将其配置成功。在这里顺便记录一下自己的配置成功的过程。 二、具体过程 &#xff08;一&#xff09;版本 使用Windows11系统、UE5.…

【运维笔记】数据库无法启动,数据库炸后备份恢复数据

事情起因 在做docker作业的时候&#xff0c;把卷映射到了宿主机原来的mysql数据库目录上&#xff0c;宿主机原来的mysql版本为8.0&#xff0c;docker容器版本为5.6&#xff0c;导致翻车。 具体操作 备份目录 将/var/lib/mysql备份到~/mysql_backup&#xff1a;cp /var/lib/…

【Unity】 HTFramework框架(五十三)使用 Addressables 可寻址系统

更新日期&#xff1a;2024年7月25日。 Github源码&#xff1a;[点我获取源码] Gitee源码&#xff1a;[点我获取源码] 索引 Addressables 可寻址系统使用 Addressables 可寻址系统一、导入 Addressables二、切换到 Addressables 加载模式三、切换资源加载助手四、加载资源五、注…

刷题计划 day4 【双指针、快慢指针、环形链表】链表下

⚡刷题计划day4继续&#xff0c;可以点个免费的赞哦~ 下一期将会开启哈希表刷题专题&#xff0c;往期可看专栏&#xff0c;关注不迷路&#xff0c; 您的支持是我的最大动力&#x1f339;~ 目录 ⚡刷题计划day4继续&#xff0c;可以点个免费的赞哦~ 下一期将会开启哈希表刷题…

AI绘画入门实践 | Midjourney:使用 --chaos 给图像风格来点惊喜

在 Midjourney 中&#xff0c;--chaos 影响初始图像网格的多样性&#xff0c;指 MJ 每次出的4张图之间的差异性。 默认值为0&#xff0c;值越高&#xff0c;差异性越大。 使用格式&#xff1a;--chaos 0-100的整数值 使用演示 a lot of flowers --chaos 0 --v 6.0a lot of fl…

14 集合运算符和矩阵乘法运算符@

集合的交集、并集、对称差集等运算借助于位运算符来实现&#xff0c;而差集则使用减号运算符实现。 print({1, 2, 3} | {3, 4, 5}) # 并集&#xff0c;自动去除重复元素 print({1, 2, 3} & {3, 4, 5}) # 交集 print({1, 2, 3} - {3, 4, 5}) # 差集 print({1, 2, 4, 6, …

Java高并发理论基础

并发级别 由于临界区的存在&#xff0c;多线程之间的并发必须受到控制。根据控制并发的策略&#xff0c;我们可以把并发的级别分为 阻塞、无饥饿、无障碍、无锁、无等待 几种。 阻塞 一个线程是阻塞的&#xff0c;那么在其他线程释放资源之前&#xff0c;当前线程无法继续执…

Java面试八股之什么是声明式事务管理,spring怎么实现声明式事务管理?

什么是声明式事务管理&#xff0c;spring怎么实现声明式事务管理&#xff1f; 声明式事务管理是一种编程范式&#xff0c;它允许开发人员通过声明性的配置或注解&#xff0c;而不是硬编码事务处理逻辑&#xff0c;来指定哪些方法或类应该在其上下文中执行事务。这种方法将事务…

【Python机器学习】决策树的构造——递归构建决策树

我们可以采用递归的原则处理数据集&#xff0c;递归结束的条件是&#xff1a;程序遍历完所有划分数据集的属性&#xff0c;或者每个分支下的所有实例都具有相同的分类。如果所有实例具有相同的分类&#xff0c;则得到一个叶子节点或者终止块。任何到达叶子节点的数据必然属于叶…

Linux中的三类读写函数

文件IO和标准IO的区别 遵循标准&#xff1a; 文件IO遵循POSIX标准&#xff0c;主要在类UNIX环境下使用。标准IO遵循ANSI标准&#xff0c;具有更好的可移植性&#xff0c;可以在不同的操作系统上重新编译后运行。可移植性&#xff1a; 文件IO的可移植性相对较差&#xff0c;因为…

MAC、ARP、NAT

文章目录 MACMAC帧格式MAC地址 ARP协议ARP的数据包格式 NAT和代理IP地址的数量限制NAT代理服务器 MAC 数据在局域网中如何发送就是数据链路层解决的。 MAC帧格式 源地址和目的地址是指网卡的硬件地址(也叫MAC地址), 长度是48位,是在网卡出厂时固化的。 帧协议类型字段有三种值…