ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## SSRF 服务器请求伪造 ## SSRF原理 * 由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制如从指定URL地址加载图片、文本资源或者获取指定页面的内容等 * 正常的攻击者无法访问目标当中的内网,通过站点进行SSRF攻击访问内网,从而收集内网信息,如果收集的信息够多的话,可以直接危害到内网 ## SSRF的危害 * 端口扫描 * 指纹识别 * 漏洞利用 * 内网探针 ## 常用来探测的协议 **http** 主要用来发送http协议,获取超文本内容,包括文字、图片、视频、音频等常用互联网资源; **file** 本地文件传输协议,File协议主要用于访问本地计算机中的文件,就如同在Windows资源管理器中打 开文件一样 **dict** Dict协议,字典服务器器协议,dict是基于查询响应的TCP协议,它的目标是超越Webster protocol,并 允许客户端在使用过程中访问更多字典。Dict服务器和客户机使用TCP端口2628;主要用来探测内网 端口协议; **ftp** 是一种处于应用层的用于文件传输的协议。是基于TCP协议的应用层协议,用于在网络上传输文件。 **Gopher** Gopher协议是互联网上使用的分布型的文件搜集获取网络协议。gopher协议是在HTTP协议出现之 前,在internet上常见重用的协议,但是现在已经用的很少了; ## 产生在那些方面 * 分享:通过URL地址分享网页内容 * 转码服务:通过URL地址把原地址的网页内容调优使其适合收集屏幕浏览 * 在线翻译:通过URL地址翻译对应文本的内容 * 图片加载与下载:通过URL地址加载或下载图片 * 图片、文章收藏功能 * 位公开的api实现以及其他调用URL的功能 ## 利用SSRF可以实现的攻击主要有五种 1. 可以对外网服务器所在的内网本地进行端口扫描,获取一些服务的banner信息 2. 攻击运行在内网或者本地的应用程序比如溢出 3. 对内网的web应用进行指纹识别,通过访问默认文件识别 4. 攻击内外网的web应用,主要是通过get参数就可以实现的攻击 5. 利用file协议读取本地文件 ## 防御方法 * 统一错误信息,避免用户根据错误信息来判断远程服务器的端口状态 * 限制请求的端口为http的常用端口,比如:80、443、8080等 * 禁用不需要的协议,仅允许http和https * 根据请求需求,可以将特定域名加入白名单,拒绝白名单之外的请求 * 后台代码对请求来源进行验证