ssrf初步

devtools/2024/9/23 9:41:10/

一,简介

全称:Server-Side Request Forgery(中文:服务器端请求伪造)

攻击者从服务端发起请求,让服务器连接任意外部系统,从而泄露敏感数据。主要利用各种协议的请求伪造,例如php协议,gopher协议(ssrf中最强的)

二,原理。

1.服务端允许从其他服务器应用获取数据,但没有对目标地址做过滤与限制,从而导致在服务端可以访问内网而丢失关键信息。(这样做可以绕过防火墙,因为是从内部攻击,而非外部)

2.攻击者主动使应用通过127.0.0.1localhost服务器发出 HTTP 请求,原本直接访问admin/url并不会出问题,但是当该请求来自本地时,访问控制就会被绕过,攻击者就可以随便浏览想要的内容了。

三,细节

1.可用的协议包括但不限于

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

2.可以攻击的漏洞包括但不限于

提供url分享,可以收藏图片,视频,提供在线转码和翻译,等可以发送请求同时可以人为控制地址的位置都有可能

3.防范意见——不完全

最好的办法:避免用户在代表服务器发出请求的函数中输入

黑白名单:控制能够获取内网信息的ip,防止应用被用于攻击内网

端口限制:将端口号限制为常见的80,8080等,

协议禁用:仅允许http和https等协议生效,防止其他协议带来的不必要的麻烦

过滤返回信息:以免关键信息被有心值人利用

4.ssrf绕过——不完全

(1)没有限制请求ip为内网ip

    短网址        eg:百度短地址https://dwz.cn/

    进制转换   将ip地址转换为8,16进制等

     特殊域名   

(2)域名限制

       利用@    不同的函数对@的解析有不同的方式

(3)限制请求方式仅为http

    302跳转     暂时性跳转,

     短地址

(4)其他

     符号  包括但不限于     。 (1) 【::】        将其插入或包裹ip地址即可 

     编码     CRLF 编码,将ip地址转换为crlf编码

 ctfhub

一,内网访问

1.打开题目,上面有提示,尝试访问位于127.0.0.1的flag.php

2.构造url

二,伪协议读取文件

1.打开环境,有提示,尝试去读取一下Web目录下的flag.php

2.构造url,/?url=file:///var/www/html/flag.php,出现???

3.查看源码即可

三,端口扫描(工具:bp)

1.打开环境,提示说端口范围是8000-9000(dict协议:探测开放的端口——payload: ?url=dict://127.0.0.1:8000

2.用bp截取后,在开头构造GET /?url=http://172.0.0.1:8000 HTTP/1.1

3.发送至inturder板块,修改payloads中的内容,扫了以后就可以得到flag

 

 

四,post请求

1.打开环境,提示说发一个HTTP POST请求,ssrf是用php的curl实现的.并且会跟踪302跳转。

2.构造伪协议,因为要通过172.0.0.1访问,我们需要bp抓包来修改,先访问一下302.php,没有什么,再访问flag.php,有一个key值,但是不是我们想要的东西。

3.看一下flag.php的源码,上面说使用gopher://协议进行传输,修改一下

4.放包以后发现我们的url符号被转换,进行二次编码,就可以得到flag


http://www.ppmy.cn/devtools/40094.html

相关文章

【神经网络】输出层的设计

文章目录 前言一、恒等函数和softmax函数恒等函数softmax 函数python实现softmax函数 二、实现softmax函数时的注意事项函数优化python实现 三、softmax函数的特征计算神经网络的输出输出层的softmax函数可以省略“学习”和“推理”阶段 四、输出层的神经元数量 前言 神经网络…

JVM认识之垃圾收集算法

一、标记-清除算法 1、定义 标记-清除算法是最基础的垃圾收集算法。它分为标记和清除两个阶段。先标记出所有需要回收的对象(即垃圾),在标记完成后再统一回收所有垃圾对象。 2、优点和缺点 优点:实现简单缺点: 可能…

静态代理IP是否支持HTTP和HTTPS?

静态代理IP通常是在服务器上进行配置的,可以支持HTTP和HTTPS协议。无论是使用HTTP还是HTTPS,静态代理IP都可以通过配置服务器的代理设置来实现对网络请求的转发和代理。 静态代理IP支持哪些协议 静态代理IP支持的协议包括但不限于HTTP、HTTPS、FTP、So…

luceda ipkiss教程 70:合并GDS版图

通过代码拼版: 所有代码如下: from si_fab import all as pdk from ipkiss3 import all as i3class Design1(i3.GDSCell):def _default_filename(self):return "Ring_Test.gds"def _default_name(self):return "Design1"class Des…

1.前端环境搭建

1.安装nodejs 因为我们开发Vue项目需要使用npm命令来创建和启动,安装node.js是为了获得这个命令,目前和使用node.js无关 下载地址:http://nodejs.cn/download/ 下载完之后安装,通过cmd查看是否安装成功 node --version2.创建项目…

网络爬虫概述与原理

网络爬虫概述与原理 网络爬虫简介狭义上理解功能上理解常见用途总结 网络爬虫分类通用网络爬虫聚焦网络爬虫增量网络爬虫深度网络爬虫 网络爬虫流程网络爬虫采集策略深度有限搜索策略广度优先搜索策略 网络爬虫简介 通过有效地获取网络资源的方式,便是网络爬虫。网…

c++:刷题必备 容器map的使用

文章目录 map的概念map的使用构造![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/30e9a697b50d47a591af6e9ae2bbb7d7.png)insert迭代器遍历 findoperator[]举例 map的概念 map是一个关联容器,里面的每一个位置pair,会存储两个值,一个是key,另一个是value. 我们可以…

离线安装dokcer离线获取docker镜像

文章目录 离线安装docker1、下载docker 安装包2、上传docker安装包到服务器3、解压docker-xxx.tgz4、解压的docker文件夹全部移动至/usr/bin目录5、将docker注册为系统服务6、重启生效6.1、重新加载配置文件6.2、启动Docker服务6.3、查看启动状态6.4、 设置docker为开机自启6.5…