服务器端请求伪造漏洞

 

服务器端请求伪造(Server-Side Request Forger ,SSRF)漏洞是近年来比较常 见的一种漏洞。SSRF漏洞本身并不危险,与SQL注入或XSS相比较危害不大,但 近年来有人通过将SSRF结合未授权访问漏洞进行渗透,危害就非常严重了。并

且,因为SSRF漏洞本身危害不大,导致甲方对于这个漏洞不重视,更容易成为渗 透中的突破口。

 

 

 

 

 

 

5.5.1    简介

 

SSRF是一种攻击者构造恶意数据包,使服务器端向另一个服务器发起请求的 安全漏洞。大多数情况下,SSRF的目标是网站内部的系统。攻击者通过构造恶意 数据包,使服务器向内部系统发送恶意构造的请求,从而达到攻击目的。

1.SSRF常见的用处

SSRF的常见用处如下:

· 向外网、服务器所在内网、本地进行端口扫描,获取服务的banner信息等。

·攻击运行在内网或本地的应用(如Struts2 、SQL 、Redis等)。

·对内网Web应用进行指纹识别,通过访问默认文件实现(如readme等文 件)。

40da7564b0194775b7b6522f9e059e93.png

图5-14    SSRF常见应用场景

·利用file协议读取本地文件等。

2.SSRF应用场景

分享页面。一些Web程序应用为了提供更好的用户体验,在分享的功能中通

 

 

 

 

 

常会获取目标URL网页内容中的标签文本内容。如若此功能中没有对URL地址进 行过滤及限制处理,则可能存在SSRF漏洞,如图5-14所示。

在线翻译,加载图片、文章。上传头像、加载图片等处理常常会涉及远程加 载的功能,过分信任用户输入,没有做严谨的过滤限制,这也会造成SSRF漏洞, 如图5-15所示。

f60105fe9a74447c99a63f4d4d61d9c9.png

图5-15    图片加载

3.SSRF的常用绕过技巧

SSRF漏洞常用的绕过技巧如下:

cae8fdb6237e4984a92a2048546bd2f9.png

图5-16    短网址

·利用@符号绕过,例如www.baidu.com@127.0.0.1。

·利用短网址绕过,如图5-16所示。

·利用xip.io 127.0.0.1.xip.io绕过,如下所示:

2db3c9c103dd4f5597fd24acb8c4dff0.png

 

 

 

 

·利用封闭式字母数字(Enclosed alphanumeric )绕过,如下所示:

877a19b329d4414e8a73e444d392a9db.png

 

 

 

 

 

5.5.2    检测方法

利用SSRF进行内网探测的攻击方式常见于进行内网端口扫描,以及对Redis 服务进行攻击。这里介绍内网扫描的情况。

判断是否存在SSRF ,只需在漏洞URL处输入公网服务器的Web应用地址,然 后在公网服务器上监控访问的数据,发现有存在漏洞的IP访问,便说明存在SSRF 漏洞。

比如https://www.target.com/ueditor/getRemote.jspx?upfile=xxx.xxx.xxx ,此处的 URL参数可控并且经过验证,确实可以通过修改参数中的地址实现访问。以此为 例,编写SSRF的内网探测脚本,具体步骤如下:

1)构造portscan方法,接收两个参数,第一个参数为拼接成SSRF漏洞的地 址,第二个参数作为内网探测地址。

2)通过访问构造的URL ,根据返回值判断端口是否开放:

# -*- coding-utf-8 -*-

import requests

def portscan(url,rurl) :

# 测试端口,可以根据需求添加或更改

ports = [21,22,23,25,80,443,445,873,1080,1099,1090,1521,3306,6379,27017] for port in ports:

try:

url = url + '/ueditor/getRemoteImage .jspx?upfile= ' + rurl +

' :{port} ' .format(port=port)

response = requests .get(url, timeout=6)

except :

超过6秒就认为端口是开放的,因为如果端口不开放, 目标肯定会发一个TCP REST, 连接会立刻中断,说明漏洞存在

print( '[+]{port} is open ' .format(port=port))

if __name__ == '__main__ ' :

# portscan( 'target site ', 'hacker test site ')

portscan('Target : Expect More. Pay Less. ', '192 .168 .23 .1 ')

192.168.23.1代表需要探测的内网地址,运行效果如图5-17所示。

 

 

 

 

 

3536847cc9714999b7c18bae89a361f2.png

图5-17    运行效果

 

 

 

 

 

 

5.5.3    防御策略

 

对于SSRF的防御策略,可以从漏洞的成因进行分析。造成SSRF漏洞的主要 原因在于:

·传入服务器需要访问的地址或者需要访问的参数用户可控。

·对于用户传入的参数,服务器端没有做校验限制。

严格控制传入参数的内容,校验参数的合法性,便能有效地防御此漏洞。比 如一个加载远程头像的功能点,就应该限制传入的参数必须为网址,而不是IP , 并且校验网址的后缀是否为图片的地址,否则将不予访问。按照此思路,对于不 同的功能点需求限制传入参数的特定作用范围,如此便能有效地防御此漏洞。

 

 

 

 

 

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

安装并开始设置 Windows 终端(命令提示符或Windows PowerShell或Azure Cloud Shell)

安装 安装 若要试用最新的预览功能,可能还需要安装 Windows 终端预览。 ‼️备注 如果你无法访问 Microsoft Store,GitHub 发布页上发布有内部版本。 如果从 GitHub 安装,Windows 终端将不会自动更新为新版本。 有关使用包管理器&#xff…

C# .Net Framework webapi 全局日志

1.创建一个类名字叫做CustomActionFilter.cs /// <summary>/// /// </summary>public class CustomActionFilter : System.Web.Http.Filters.ActionFilterAttribute{/// <summary>/// /// </summary>/// <param name"actionExecutedContext&q…

CCF-CSP 202312-3 树上搜索(Java、C++、Python)

文章目录 树上搜索题目背景问题描述输入格式输出格式样例1输入样例1输出样例解释子任务 满分代码JavaCPython 树上搜索 题目背景 西西艾弗岛大数据中心为了收集用于模型训练的数据&#xff0c;推出了一项自愿数据贡献的系统。岛上的居民可以登录该系统&#xff0c;回答系统提…

在 Amazon EKS 上部署生成式 AI 模型

导言 生成式 AI 正在改变企业的运作方式&#xff0c;并加快创新的步伐。总体而言&#xff0c;人工智能正在改变企业利用技术的方式。生成式 AI 技术包括微调和部署大型语言模型&#xff08;LLM&#xff09;&#xff0c;并允许开发人员访问这些模型以执行提示和对话。负责在 Kub…

搭建WebGL开发环境

前言 本篇文章介绍如何搭建WebGL开发环境 WebGL WebGL的技术规范继承自免费和开源的OpenGL ES标准&#xff0c;从某种意义上说&#xff0c;WebGL就是Web版的OpenGL ES&#xff0c;而OpenGL ES是从OpenGL中派生出来的。他们的应用环境有区别&#xff0c;一般来说&#xff1a;…

聊聊百度造车

10月27日&#xff0c;极越-01上市&#xff0c;一个月后大幅降价&#xff0c;时至今日距离发布已经过去了两个月&#xff0c;官方迟迟不肯公布销量&#xff0c;实际情况大家也都心知肚明。 如今小米汽车技术发布会风头无两&#xff0c;而同一年宣布造车的极越却无人问津&#x…

算法随想录第四十八天打卡| 198.打家劫舍 , 213.打家劫舍II , 337.打家劫舍III

详细布置 今天就是打家劫舍的一天&#xff0c;这个系列不算难&#xff0c;大家可以一口气拿下。 198.打家劫舍 视频讲解&#xff1a;动态规划&#xff0c;偷不偷这个房间呢&#xff1f;| LeetCode&#xff1a;198.打家劫舍_哔哩哔哩_bilibili 代码随想录 class Solution(…

【智能家居入门3】(MQTT服务器、MQTT协议、微信小程序、STM32)

前面已经写了三篇博客关于智能家居的&#xff0c;服务器全都是使用ONENET中国移动&#xff0c;他最大的优点就是作为数据收发的中转站是免费的。本篇使用专门适配MQTT协议的MQTT服务器&#xff0c;有公用的&#xff0c;也可以自己搭建&#xff08;应该要钱&#xff09;&#xf…

华为配置ARP安全综合功能实验

配置ARP安全综合功能示例 组网图形 图1 配置ARP安全功能组网图 ARP安全简介配置注意事项组网需求配置思路操作步骤配置文件 ARP安全简介 ARP&#xff08;Address Resolution Protocol&#xff09;安全是针对ARP攻击的一种安全特性&#xff0c;它通过一系列对ARP表项学习和A…

Qt应用开发(安卓篇)——调用ioctl、socket等C函数

一、前言 在 Qt for Android 中没办法像在嵌入式linux中一样直接使用 ioctl 等底层函数&#xff0c;这是因为因为 Android 平台的安全性和权限限制。 在 Android 中&#xff0c;访问设备硬件和系统资源需要特定的权限&#xff0c;并且需要通过 Android 系统提供的 API 来进行。…

在线版XD,免费使用,功能全面,设计神器!

Adobe XD是什么软件&#xff1f; Adobe XD软件是一个结合设计和建立原型功能的一站式UX/UI设计平台。在XD软件中&#xff0c;数字团队可以进行移动应用、网页设计和原型制作。与此同时&#xff0c;Adobe XD软件也是一种跨平台设计产品&#xff0c;结合设计和建立原型功能&…

力扣 122.买卖股票的最佳时机 II

代码&#xff1a; class Solution { public:int maxProfit(vector<int>& prices) {if(prices.size()1) return 0;int res 0;int i0;while(i<prices.size()-1){int ji1;if(prices[j]>prices[i]){//在找到对应元素的下一个元素比他大的时候买入while(j1 < p…

研学活动报名平台源码开发方案

一、项目背景与目标 &#xff08;一&#xff09;项目背景 研学活动报名平台旨在为活动组织者提供方便快捷的研学活动管理工具&#xff0c;同时为用户提供全面的活动搜索、报名和支付等功能。通过该系统&#xff0c;活动组织者能够更好地管理活动报名信息&#xff0c;用户也可…

系统架构设计师-22年-下午题目

系统架构设计师-22年-下午题目 更多软考知识请访问 https://ruankao.blog.csdn.net/ 试题一必答&#xff0c;二、三、四、五题中任选两题作答 试题一 (25分) 说明 某电子商务公司拟升级其会员与促销管理系统&#xff0c;向用户提供个性化服务&#xff0c;提高用户的粘性。…

Unity之第一人称角色控制

目录 第一人称角色控制 &#x1f634;1、准备工作 &#x1f4fa;2、鼠标控制摄像机视角 &#x1f3ae;3、角色控制 &#x1f603;4.杂谈 第一人称角色控制 专栏Unity之动画和角色控制-CSDN博客的这一篇也有讲到角色控制器&#xff0c;是第三人称视角的&#xff0c;以小编…

【LeetCode】142. 环形链表 II

leetcode题目链接 142. 环形链表 II /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ typedef struct ListNode ListNode;ListNode *detectCycle(ListNode *head) {ListNode *slow head, *fast head;while (…

【读点论文】SPTS Single-Point Text Spotting

SPTS Single-Point Text Spotting ABSTRACT 现有的场景文本识别(即&#xff0c;端到端文本检测和识别)方法依赖于昂贵的边界框注释(例如&#xff0c;文本行&#xff0c;词级或字符级边界框)。我们首次证明&#xff0c;训练场景文本识别模型可以通过对每个实例的单点进行极低成…

Cmake编译Opencv3.3.1遇到有些文件无法下载的错误解决:

前言&#xff1a; 对于&#xff0c;opencv有些配置文件错误并未致命&#xff0c;所以&#xff0c;有错误也不影响后续的编译&#xff1a;但是&#xff0c;后引用如果要用&#xff0c;在回过头来还是要解决的。 问题表述&#xff1a; 比如&#xff0c;有些文件下载的错误&am…

uni-app在hbuilderx打开微信开发工具运行

一、运行设置配置微信开发者工具路径 运行-运行到小程序模拟器-运行设置 配置微信开发工具的安装路径&#xff08;可浏览文件位置选择&#xff09;&#xff1b;web服务器端口号在第二步骤获得&#xff1b; 二、打开微信开发者工具设置-安全设置 打开服务端口开关&#xff0…

qt中使用mysql 数据库

QT 版本介绍 虽然版本是这个&#xff0c;但是工作目录确是&#xff1a; 下面陈述安装步骤 第一步&#xff1a; 就是安装MYSQL 数据库&#xff0c;在此不再赘述了&#xff0c;很多博主已经上传了。 第二步&#xff1a; 就是拷贝QT 对应mysql 的版本驱动到 QT 的编译器文件中…