web安全漏洞之ssrf入门
web安全漏洞之ssrf入门
1.什么是ssrf
SSRF(Server Side Request Forgery,服务端请求伪造)是一种通过构造数据进而伪造成服务端发起请求的漏洞。因为请求是由服务器内部发起,所以一般情况下SSRF漏洞的目标往往是无法从外网访问的内系统。
SSRF漏洞形成的原理多是服务端提供了从外部获取数据的功能但没有对目标地址、协议等重要参数进行过滤和限制,从而导致可以自由构造参数并发出预期之外的请求。
2.URL结构
URL的结构如下: URL = scheme:[//authority]path[?query][#fragment]
scheme由一串大小写不敏感的字符组成,表示获取资源所需的协议。
authority中,userinfo用于进行身份验证,格式为username:password
host表示服务器地址,一般是域名,也可能是ipv4或者ipv6地址
port表示服务器端口,如果不填,则使用协议的默认端口,比如http的80,ftp的21
path为资源路径,一般用"/"来分层 ,表示目录
query为查询字符串,接收用户输入参数,以"? "作为起点标识,比如"?name=crane"
fragment为片段ID,与query不同的是,它不会发送到服务端,只作为一个标记
3.ssrf漏洞利用方式
1.以PHP为例,实现了个包含SSRF漏洞的代理程序(帮你转发你的请求),代码如下:
```php
<?php $url = $_GET['url'];//从get参数中获取url的值
$ch = curl_init();//然后创建了curl这个对象
curl_setopt($ch, CURLOPT_URL, $url);//通过curl_setopt函数来给这个curl设置一些参数
curl_setopt($ch,CURLOPT_HEADER,false);//输出中不包含HTTP的header
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true); //表示跟随跳转
curl_setopt($ch, CURLOPT_TIMEOUT, 3);//大于3秒后会强制结束
curl_exec($ch);//开始执行
curl_close($ch);//关闭
?>
```
如果url=https://www.baidu.com,可以代理访问 www.baidu.com
2.但是因为代理程序的url未作任何过滤处理,所以可以修改url协议来发起SSRF。例如, 修改访问URL为:"file:///etc/passwd ",即可使用FILE协议访问本地文件/etc/passwd
这是SSRF最常见的利用方式,但更多的是读他的源码
3.SSRF漏洞通常出现在应用程序中,当它调用外部资源时可能会出现这种问题。
比如在社交服务中的分享功能、图片识别服务、网站采集服务以及远程资源请求或文件处理服务等场景下。
针对存在SSRF漏洞的应用程序进行测试的方法包括尝试控制和支持常见的协议:
file:从本地文件系统中读取文件的例子为file:///etc/passwd.
dict:字典服务器协议,原本用于查询词典信息,但由于支持自定义内容,因此可以用来探测端口并获取banner(例如Redis), 或者发送一些简单的流量给其他服务(比如MySQL)。
gopher:gopher是一种分布式文档传递服务,在SSRF攻击中有重要作用。通过使用gopher协议向特定IP地址及端口号发送任意内容,这可能模拟HTTP、Redis或者Mysql等网络请求行为。
4.在CTF和实战中,如果发现了目标存在SSRF漏洞,首先可以尝试通过file协议读取本地文件,了解目标系统的相关信息。
常见的文件路径如下:
/etc/passwd 几乎所有的linux发行版都会有这个文件,可以作为是否能读取本地文件的评判标准。同时他还保存了系统中有哪些用户
/etc/apache2/* 这个目录包含了apache2的配置文件,可以了解web目录,开放端口等信息
/etc/issue 这个文件一般表示该系统是什么linux发行版
/proc 这个目录存放着系统运行的状态信息,其中含有以pid命名的文件夹,保存着这个进程的信息。
还有一个self软连接指向当前运行的进程
/proc/[pid]/cmdline 程序运行的命令行
/proc/[pid]/env 程序运行的环境变量
/proc/[pid]/fd/* 程序打开的文件
/proc/net 系统的网络状态信息
相关文章:
web安全漏洞之ssrf入门
web安全漏洞之ssrf入门 1.什么是ssrf SSRF(Server Side Request Forgery,服务端请求伪造)是一种通过构造数据进而伪造成服务端发起请求的漏洞。因为请求是由服务器内部发起,所以一般情况下SSRF漏洞的目标往往是无法从外网访问的内系统。 SSRF漏洞形成的原理多是服务…...
《NoSQL 基础知识总结》
在当今的数据存储和管理领域,NoSQL 数据库正逐渐崭露头角,成为许多应用场景下的有力选择。今天,我们就来一起深入了解一下 NoSQL 的基础知识吧。 一、什么是 NoSQL? NoSQL,即 “Not Only SQL”,它是一种不…...
高校宿舍信息管理系统小程序
作者主页:编程千纸鹤 作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参…...
2.索引:MySQL 索引分类
MySQL中的索引是提高数据查询速度的重要工具,就像一本书的目录,可以帮助我们快速定位到所需的内容。选择适合的索引类型对数据库设计和性能优化至关重要。本文将详细介绍MySQL中常见的索引类型,并重点讲解聚集索引和二级索引的概念及应用。 1…...
sklearn红酒数据集分类器的构建和评估
实验目的: 1. 掌握sklearn科学数据包中决策树和神经网络分类器的构建 2. 掌握对不同分类器进行综合评估 实验数据: 红酒数据集 红酒数据集利用红酒的化学特征来描述三种不同类型的葡萄酒。 实验内容与要求: 解压文件得到wine数据。利用pa…...
【IC验证面试常问-4】
IC验证面试常问-4 1.11 struct和union的异同1.13 rose 和posedge 的区别?1.14 semaphore的用处是什么?1.15 类中的静态方法使用注意事项有哪些?1.16 initial和final的区别? s t o p , stop, stop,finish的区别1.17 logic,wire和re…...
【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
数据集介绍 【数据集】道路事故识别数据集 8939 张,目标检测,包含YOLO/VOC格式标注。数据集中包含2种分类:{0: accident, 1: non-accident}。数据集来自国内外图片网站和视频截图。检测范围道路事故检测、监控视角检测、无人机视角检测、等&…...
书生浦语第四期基础岛L1G4000-InternLM + LlamaIndex RAG 实践
文章目录 一、任务要求11.首先创建虚拟环境2. 安装依赖3. 下载 Sentence Transformer 模型4.下载 NLTK 相关资源5. 是否使用 LlamaIndex 前后对比6. LlamaIndex web7. LlamaIndex本地部署InternLM实践 一、任务要求1 任务要求1(必做,参考readme_api.md&…...
基于ViT的无监督工业异常检测模型汇总
基于ViT的无监督工业异常检测模型汇总 论文1:VT-ADL: A Vision Transformer Network for Image Anomaly Detection and Localization(2021)1.1 主要思想1.2 系统框架 论文2:Inpainting Transformer for Anomaly Detection…...
数据库管理-第258期 23ai:Oracle Data Redaction(20241104)
数据库管理258期 2024-11-04 数据库管理-第258期 23ai:Oracle Data Redaction(20241104)1 简介2 应用场景与有点3 多租户环境4 特性与能力4.1 全数据编校4.2 部分编校4.3 正则表达式编校4.4 随机编校4.5 空值编校4.6 无编校4.7 不同数据类型上…...
运放进阶篇-多种波形可调信号发生器-产生方波-三角波-正弦波
引言:前几节我们已经说到硬件相关基础的电路,以及对于运放也讲到了初步的理解,特别是比较器的部分,但是放大器的部分我们对此并没有阐述,在这里通过实例进行理论结合实践的学习。而运放真正的核心,其实就是…...
CSS中的变量应用——:root,Sass变量,JavaScript中使用Sass变量
:root—— 原生CSS 自定义属性(变量) 在 SCSS 文件中定义 CSS 自定义属性。然后通过 JavaScript 读取这些属性。 // variables.scss :root { --login-bg-color: #293146;--left-menu-max-width: 200px;--left-menu-min-width: 64px;--left-menu-bg-…...
WPF+MVVM案例实战与特效(二十八)- 自定义WPF ComboBox样式:打造个性化下拉菜单
文章目录 1. 引言案例效果3. ComboBox 基础4. 自定义 ComboBox 样式4.1 定义 ComboBox 样式4.2 定义 ComboBoxItem 样式4.3 定义 ToggleButton 样式4.4 定义 Popup 样式5. 示例代码6. 结论1. 引言 在WPF应用程序中,ComboBox控件是一个常用的输入控件,用于从多个选项中选择一…...
速盾:怎么使用cdn加速?
CDN(Content Delivery Network)即内容分发网络,是一种通过在网络各处部署节点来缓存和传输网络内容的技术。通过使用CDN加速,可以提高网站的访问速度、减轻服务器负载、提供更好的用户体验。 使用CDN加速的步骤如下: …...
C++ 优先算法 —— 三数之和(双指针)
目录 题目:三数之和 1. 题目解析 2. 算法原理 ①. 暴力枚举 ②. 双指针算法 不漏的处理: 去重处理: 固定一个数 a 的优化: 3. 代码实现 Ⅰ. 暴力枚举(会超时 O(N)) Ⅱ.…...
YOLOv7-0.1部分代码阅读笔记-yolo.py
yolo.py models\yolo.py 目录 yolo.py 1.所需的库和模块 2.class Detect(nn.Module): 3.class IDetect(nn.Module): 4.class IAuxDetect(nn.Module): 5.class IBin(nn.Module): 6.class Model(nn.Module): 7.def parse_model(d, ch): 8.if __name__ __main__…...
【缓存与加速技术实践】Web缓存代理与CDN内容分发网络
文章目录 Web缓存代理Nginx配置缓存代理详细说明 CDN内容分发网络CDN的作用CDN的工作原理CDN内容的获取方式解决缓存集中过期的问题 Web缓存代理 作用: 缓存之前访问过的静态网页资源,以便在再次访问时能够直接从缓存代理服务器获取,减少源…...
MySQL的约束和三大范式
一.约束 什么是约束,为什么要用到约束? 约束就是用于创建表时,给对应的字段添加对应的约束 约束的作用就是当我们用insert into时,如果传入的数据有问题,不符合创建表时我们定的规定,这时MySQL就会自动帮…...
Unity网络通信(part7.分包和黏包)
目录 前言 概念 解决方案 具体代码 总结 分包黏包概念 分包 黏包 解决方案概述 前言 在探讨Unity网络通信的深入内容时,分包和黏包问题无疑是其中的关键环节。以下是对Unity网络通信中分包和黏包问题前言部分的详细解读。 概念 在网络通信中,…...
练习题 - DRF 3.x Overviewses 框架概述
Django REST Framework (DRF) 是一个强大的工具,用于构建 Web APIs。作为 Django 框架的扩展,DRF 提供了丰富的功能和简洁的 API,使得开发 RESTful Web 服务变得更加轻松。对于想要在 Django 环境中实现快速且灵活的 API 开发的开发者来说,DRF 是一个非常有吸引力的选择。学…...
解锁智能OCR新范式:Pix2Text多模态内容识别技术全解析
解锁智能OCR新范式:Pix2Text多模态内容识别技术全解析 【免费下载链接】Pix2Text Pix In, Latex & Text Out. Recognize Chinese, English Texts, and Math Formulas from Images. 项目地址: https://gitcode.com/gh_mirrors/pi/Pix2Text Pix2Text是一款…...
M1 Mac 8GB内存跑不动7B模型?手把手教你用1.5B版DeepSeek+RAGFlow搭建个人知识库
M1 Mac 8GB内存跑不动7B模型?手把手教你用1.5B版DeepSeekRAGFlow搭建个人知识库 当M1 Mac用户尝试在本地部署大语言模型时,8GB内存往往成为难以逾越的障碍。特别是运行7B参数模型时,内存不足导致的崩溃和卡顿让许多开发者望而却步。本文将分…...
Kodi PVR IPTV Simple全方位应用指南:从入门到精通的多场景解决方案
Kodi PVR IPTV Simple全方位应用指南:从入门到精通的多场景解决方案 【免费下载链接】pvr.iptvsimple IPTV Simple client for Kodi PVR 项目地址: https://gitcode.com/gh_mirrors/pv/pvr.iptvsimple 一、场景痛点分析:当IPTV体验不如预期时&…...
万物识别在智能体(Skills Agent)中的集成应用
万物识别在智能体(Skills Agent)中的集成应用 想象一下,你正在开发一个智能客服机器人,用户发来一张照片,里面是自家厨房水槽下漏水的一堆零件。用户问:“这是什么东西坏了?我该买什么配件?” 传统的文本对…...
Thorium浏览器:重新定义Chromium性能的颠覆性优化方案
Thorium浏览器:重新定义Chromium性能的颠覆性优化方案 【免费下载链接】thorium Chromium fork named after radioactive element No. 90. Windows and MacOS/Raspi/Android/Special builds are in different repositories, links are towards the top of the READM…...
Magisk完整实践指南:从Root权限获取到系统级定制
Magisk完整实践指南:从Root权限获取到系统级定制 【免费下载链接】Magisk The Magic Mask for Android 项目地址: https://gitcode.com/GitHub_Trending/ma/Magisk Magisk作为Android系统Root权限管理的主流解决方案,提供了系统级定制能力而无需修…...
相场法模拟枝晶生长的karma模型研究:基于Matlab的实现
相场法模拟枝晶生长,karma模型,matlab咱们今天来玩点好玩的——用Matlab搞个金属凝固过程的枝晶生长模拟。相场法这玩意儿真是材料模拟界的万金油,特别是Karma模型,处理枝晶分岔那叫一个丝滑。先整点基础配置: % 基础参…...
Zigbee网关配网操作全解析:从连接到触发
1. Zigbee网关配网前的准备工作 第一次接触Zigbee网关配网的朋友可能会觉得有点复杂,但其实只要跟着步骤一步步来,整个过程并不难。我刚开始接触时也踩过不少坑,现在把这些经验都整理出来,希望能帮你少走弯路。 首先得确认你的硬件…...
OpenClaw赋能金融投研:17个高效应用案例详解
扫描下载文档详情页: https://www.didaidea.com/wenku/16666.html...
ofa_image-caption算力适配:A10G云GPU上稳定运行的最小配置方案
ofa_image-caption算力适配:A10G云GPU上稳定运行的最小配置方案 1. 引言 如果你正在寻找一个能自动为图片生成英文描述的本地工具,并且希望它能在消费级显卡上流畅运行,那么基于OFA模型的图像描述生成工具很可能就是你的答案。这个工具最大…...
