Pikachu靶场——SSRF 服务端请求伪造

news2024/12/26 10:39:18

文章目录

  • 1 SSRF 服务端请求伪造
    • 1.1 SSRF(curl)
      • 1.1.1 漏洞防御
    • 1.2 SSRF(file_get_content)
      • 1.2.1 漏洞防御
      • 1.2.3 SSRF 防御

1 SSRF 服务端请求伪造

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

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

数据流:攻击者----->服务器---->目标地址

根据后台使用的函数的不同,对应的影响和利用方法又有不一样。

PHP中下面函数的使用不当会导致SSRF:

file_get_contents()
fsockopen()
curl_exec()

如果一定要通过后台服务器远程去对用户指定(“或者预埋在前端的请求”)的地址进行资源请求,则请做好目标地址的过滤

1.1 SSRF(curl)

cURL用法:PHP: cURL - Manual。

点击链接,查看页面变化

http://192.168.188.183/pikachu/vul/ssrf/ssrf_curl.php

image-20230909165553429

发现页面的URL中多了一个url参数。

http://192.168.188.183/pikachu/vul/ssrf/ssrf_curl.php?url=http://127.0.0.1/pikachu/vul/ssrf/ssrf_info/info1.php

image-20230909165618949

因为curl支持很多协议,就可以做以下尝试:

通过网址访问

比如说修改url为:url=http://www.baidu.com,访问百度页面:

image-20230909170414143

利用file协议查看本地文件

file协议:file://是一种在本地文件系统中读取或写入文件的协议。通过file://协议,可以使用Curl直接读取本地文件或将数据写入到本地文件。

修改url为:url=file:///c:/test/wuhu.txt,查看文件的内容:

image-20230909170606811

dict协议扫描内网主机开放端口

dict协议:dict://是一种用于在Curl命令中传递字典参数的协议。该协议通常用于向服务器发送包含键值对的数据。

使用dict协议可以获取内网主机开放端口相应服务的指纹信息,修改url为:url=dict://192.168.188.183:80

image-20230909170837808

1.1.1 漏洞防御

修改代码前,可以看到代码中没有做任何的过滤操作

image-20230916110534547

对代码做一些改动

echo $URL."<br \>";
$octet = explode(".",$URL);
echo $octet[1]."<br \>";
if($octet[1]!="php"){
    die("黑客!!!");
}

代码解析:

  • die:等同于 exit(),终止程序的执行。

  • explode: 使用一个字符串分割另一个字符串。

    explode(string $separator, string $string, int $limit = PHP_INT_MAX): array
    
    • 此函数返回由字符串组成的数组,每个元素都是 string 的一个子串,它们被字符串 separator 作为边界点分割出来。

image-20230916142508506

这样我们就可以让页面访问的时候只能去访问info1.php和info2.php文件,这里以点作为分割,所以如果后缀名不为php的话那么就不允许通过。

页面访问

http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?url=http://localhost/pikachu/vul/ssrf/ssrf_info/info1.php

image-20230916142905667

如果访问其他的路径,例如访问本地文件

http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?url=file:///c:/test/wuhu.txt

image-20230916143015027

访问其他网站

127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?url=http://www.baidu.com

image-20230916143101802

1.2 SSRF(file_get_content)

点击链接,查看页面变化

image-20230909171408872

发现路径中的参数从url变成了file

image-20230909171453431

file_get_content使用方法。

file读取本地文件

修改file为:file=file:///../../../../../../../../windows/system32/drivers/etc/hosts

查看页面效果:

image-20230909171839757

http协议请求内网资源

为了演示效果,开启一台kali主机,并且开启一个http服务

python3 -m http.server 8888

image-20230909174834552

修改file为:file=http://192.168.188.185:8888

查看页面效果:

image-20230909174627165

1.2.1 漏洞防御

修改之前的代码

image-20230916143654508

修改后的代码

echo $filename."<br \>";
$octet = explode(".",$filename);
echo $octet[1]."<br \>";
if($octet[1]!="php"){
    die("黑客!!!");
}

image-20230916143715962

页面访问,读取本地文件

http://127.0.0.1/pikachu/vul/ssrf/ssrf_fgc.php?file=file://../../../../../../../../windows/system32/drivers/etc/hosts

image-20230916143819125

1.2.3 SSRF 防御

参看我写的另一篇博客:服务端请求伪造(SSRF)及漏洞复现

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

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

相关文章

uni-sec-check内容安全unicloud公共模块,校验微信小程序文本内容安全识别和图片智能鉴黄,uniapp进阶

uni-sec-check内容安全是unicloud封装了微信小程序的免费接口&#xff0c;文本内容安全识别&#xff08;msgSecCheck&#xff09;和音视频内容安全识别&#xff08;mediaCheckAsync&#xff09;&#xff0c;如果我没选择使用uniappunicloud开发的话&#xff0c;可以轻松从插件市…

大数据分析就业班项目介绍

大数据分析就业班专业培养企业级刚需人才&#xff0c;拥有完善的独家的课程体系&#xff0c;采用项目式教学&#xff0c;专属导师全程伴学&#xff0c;最后帮助学生推荐就业。 大数据分析培训的适学人员包括&#xff1a; 1、大三大四应届学生 数学类、统计类、计算…

新增测试场景:方言

SpeechIO的所有历史文章可在语音之家网站的【声浪】-【SpeechIO专区】查看&#xff0c;评测结果数据可在语音之家&#xff08;PC端&#xff09;的【SOTA】页面查看。 官网地址&#xff1a;http://www.speechhome.com/eval 新增测试场景 另注&#xff1a;测试平台目前总计43个…

vue中同一个页面参数不同动态改变数据与标题

背景 要求做一个页面&#xff0c;可以在菜单配置参数后直接跳转显示不同的报表&#xff1b; 具体步骤 步骤1&#xff1a;接收参数 参数配置与路由拦截这里不详细说&#xff0c;可以参考vue配置参数跳转 说明&#xff1a;这里参考的是saber框架中的特殊情况&#xff0c;如果…

VS2022 编译protobuf , qt 使用

一、下载源码 protobuf: 同步 https://github.com/protocolbuffers/protobuf (gitee.com) 下载如v3.11.2 版本 二、下载CMake 三、编译 1、在1处选择源码目录下的cmake 目录&#xff1b;在2处选择一处空目录&#xff08;自己随便建&#xff09; 2、点击config&#xff0c;选择…

MySQL超入门(1)__迅速上手掌握MySQL

# 1.选择语句 # 注意事项&#xff1a;MySQL不区分大小写&#xff0c;SELECT * 代表选择全部 // 测试一 USE sql_store; -- 使用 sql_store库 SELECT * FROM customers -- 查询customers表 WHERE customer_id 1 OR customer_id 4 -- 条件判断为customer_id 1或customer_id …

vue 非父子通信 拓展 -- provide inject 跨层级共享数据

vue 非父子通信 拓展 – provide inject provide inject 作用&#xff1a; 跨层级共享数据 例子是啥样的&#xff1f; 创建 工程&#xff1a; H:\java_work\java_springboot\vue_study ctrl按住不放 右键 悬着 powershell H:\java_work\java_springboot\js_study\Vue2_3入门…

Linux(CentOS/Ubuntu)——安装nginx

如果确定你的系统是基于CentOS或RHEL&#xff0c;可以使用以下命令&#xff1a; ①、安装库文件 #安装gcc yum install gcc-c#安装PCRE pcre-devel yum install -y pcre pcre-devel#安装zlib yum install -y zlib zlib-devel#安装Open SSL yum install -y openssl openssl-de…

CTF_BUUCTF_Reverse解题_02reverse1

题目地址&#xff1a;BUUCTF在线评测 下载文件解压后打开exe&#xff1a; 输入任何东西之后都是闪退的 直接PE 64位C没加壳 再来IDA 64 找到地方F5直接看&#xff1a; strncmp比较 Str1和 Str2前v2的值&#xff0c;如果Str1Str2&#xff0c;返回0&#xff1b;大于返回正数&a…

ITSM有哪些好用的软件?

ITSM知名软件有很多&#xff0c;但好用且性价比高的仅有一些&#xff0c;比如&#xff1a; 1.Atlassian Jira 最初&#xff0c;开发人员创建Jira来跟踪软件创建&#xff0c;但随后Atlassian的管理层注意到一些团队正在调整Jira来处理服务台请求 2.Spiceworks Spiceworks是一款免…

Linux系统-Ubuntu的下载和安装

第一章 Linux系统-Ubuntu的下载和安装 1.下载Ubuntu ​ 进入https://cn.ubuntu.com/download中文官网下载iso映像文件&#xff1a; 2.安装Ubuntu 1.打开虚拟机&#xff0c;点击创建新的虚拟机&#xff1a; 2.选择“典型”&#xff0c;然后点击“下一步”&#xff1a; 3.选择…

150347-59-4;可穿透细胞膜的荧光染料CFDA, SE

产品简介&#xff1a;CFSE (5,6-carboxyfluorescein diacetate succinimidy ester)即羟基荧光素二醋酸盐琥珀酰亚胺脂&#xff0c;是一种可穿透细胞膜的荧光染料&#xff0c;具有与细胞特异性结合的琥珀酰亚胺脂基团和具有非酶促水解作用的羟基荧光素二醋酸盐基团&#xff0c;这…

【剑指Offer】55.二叉树的深度

题目 输入一棵二叉树&#xff0c;求该树的深度。从根结点到叶结点依次经过的结点&#xff08;含根、叶结点&#xff09;形成树的一条路径&#xff0c;最长路径的长度为树的深度&#xff0c;根节点的深度视为 1 。 数据范围&#xff1a;节点的数量满足 0≤n≤100 &#xff0c;…

jenkins联动显示或隐藏参数

1. 添加组件 Active Choices Plug-in 如jenkins无法联网,可在以下两个地址中下载插件,然后放到/home/jenkins/.jenkins/plugin下面重启jenkins即可 Active Choices Active Choices | Jenkins plugin 2. 效果如下: sharding为空时,sharding_info和copy_info不显示 shard…

易点易动固定资产管理系统:精准管理与科学采购,降本增效的利器

在现代企业管理中&#xff0c;固定资产的精准管理和科学采购已成为提升企业效率和降低成本的重要环节。为了满足企业管理的需求&#xff0c;我们自豪地介绍易点易动固定资产管理系统&#xff0c;这是一款功能强大的软件解决方案&#xff0c;旨在帮助企业实现固定资产的精准管理…

AI数字人导览,为各行各业带来全新VR云上服务体验

纵观历届大型运动会的开幕式&#xff0c;开头点火的环节总是备受期待的&#xff0c;那么你见过亚运会的点火环节了吗&#xff1f;一个巨大的数字人手持火炬&#xff0c;穿越了钱塘江的江面&#xff0c;一路奔向主会场&#xff0c;同现场火炬手一同点燃主火炬&#xff0c;这一刻…

详解SPI

引言 串行外设接口&#xff08;Serial Peripheral Interface&#xff0c;简称SPI&#xff09;是一种常见且广泛应用于电子系统中的通信协议。作为一种高效可靠的串行通信技术&#xff0c;SPI总线在电气工程和计算机系统领域扮演着至关重要的角色。它不仅在微控制器和外设之间实…

【EI会议征稿】第三届电子信息工程与计算机通信国际学术会议(EIECC 2023)

第三届电子信息工程与计算机通信国际学术会议&#xff08;EIECC 2023&#xff09; 2023 3rd International Conference on Electronic Information Engineering and Computer Communication 第三届电子信息工程与计算机通信国际学术会议&#xff08;EIECC 2023&#xff09;将…

Hangfire IIS持续运行配置

官方指导文档&#xff1a; https://docs.hangfire.io/en/latest/deployment-to-production/making-aspnet-app-always-running.html 附录&#xff1a; 应用程序池 配置 &#xff1a; 应用程序池 高级设置&#xff1a; 网站高级设置 配置编辑器

oracle TNS Listener 远程投毒漏洞修复

有个客户在等保测评过程&#xff0c;测评公司扫出一个关于oracle的漏洞如下&#xff1a; 客户是RAC环境11.2.0.4&#xff0c;在生产修复漏洞前我做了如下测试验证&#xff1a; 测试环境准备&#xff1a; RAC一套11.2.0.4 实例名dbserver [oraclehisdb1 ~]$ cat /etc/hosts …