ssrf初步

一,简介

全称: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

相关推荐
热爱嵌入式的小许5 小时前
Linux基础项目开发1:量产工具——显示系统
linux·运维·服务器·韦东山量产工具
韩楚风9 小时前
【linux 多进程并发】linux进程状态与生命周期各阶段转换,进程状态查看分析,助力高性能优化
linux·服务器·性能优化·架构·gnu
陈苏同学9 小时前
4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1
linux·服务器·ide·人工智能·python·深度学习·pycharm
网络研究院9 小时前
Android 安卓内存安全漏洞数量大幅下降的原因
android·安全·编程·安卓·内存·漏洞·技术
Pythonliu710 小时前
茴香豆 + Qwen-7B-Chat-Int8
linux·运维·服务器
你疯了抱抱我10 小时前
【RockyLinux 9.4】安装 NVIDIA 驱动,改变分辨率,避坑版本。(CentOS 系列也能用)
linux·运维·centos
我是哈哈hh10 小时前
专题十_穷举vs暴搜vs深搜vs回溯vs剪枝_二叉树的深度优先搜索_算法专题详细总结
服务器·数据结构·c++·算法·机器学习·深度优先·剪枝
郭二哈10 小时前
C++——模板进阶、继承
java·服务器·c++
挥剑决浮云 -10 小时前
Linux 之 安装软件、GCC编译器、Linux 操作系统基础
linux·服务器·c语言·c++·经验分享·笔记
立秋678911 小时前
Python的defaultdict详解
服务器·windows·python