服务器端请求伪造——SSRF
目录
- SSRF简介
- SSRF漏洞发生场景
- 1. 分享功能
- 2. 转码服务
- 3. 在线翻译
- 4. 图片加载与下载
- 5. 图片、文章收藏功能
- 6. 未公开的api实现以及其他调用URL的功能
- 7. 云服务厂商
- 8. 网站采集,网站抓取的地方
- 9. 数据库内置功能
- 10. 邮件系统
- 12. 从URL关键字中寻找
- 13…………
- ssrf 防御
- ssrf 绕过
- 1.利用@
- 2.利用302重定向
- 3.更改ip写法
- 4.TCP数据流绕过
- 5.使用非http协议
- 参考资料
SSRF简介
SSRF(Server-Side Request Forgery:服务器端请求伪造)
是由攻击者构造形成的由服务端发起请求的一个安全漏洞。
一般情况下,SSRF的攻击是目标网站的内部系统。(因为他是从内部系统访问,所有可以通过它攻击外网无法访问的内部系统,也就是把目标网站当做中间人)
通俗来讲,有两个网站:
A网站,所有人都可以访问的外网网站
B网站,只能内部访问的网站
A网站能访问B网站
所以,作为普通用户,我们可以访问A网站,然后篡改获取资源的来源,请求从B网站获取资源。A网站没有检测我的请求合不合法,以自己A网站的身份去访问B网站,于是我们就有机会攻击B网站。
SSRF漏洞发生场景
只要当前服务器有发送请求的地方都可能存在ssrf,如:
1. 分享功能
在早期
,Web应用的分享功能,会获取目标URL地址网页内容中标签或<meta name=“description”content=“”/>标签中content的文本内容,来为用户提供更好的体验。所以可以查看通过URL地址分享网页内容的地方是否有此漏洞
2. 转码服务
通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览
3. 在线翻译
通过 URL地址翻译对应文本的内容。例如百度翻译
4. 图片加载与下载
通过URL地址加载或下载图片,有的站长为了对图片进行加水印、打码等处理,会将图片下载到服务器上,就出现了SSRF漏洞
还有富文本编辑器中的点击下载图片到本地功能
5. 图片、文章收藏功能
这其实不算一个新的场景,图片收藏功能同4
,文章收藏同1
6. 未公开的api实现以及其他调用URL的功能
利用google 语法加上这些关键字去寻找SSRF漏洞
7. 云服务厂商
一些厂商会远程执行一些命令来判断网站是否存活,如果可以捕获相应的信息,就可以测试是否存在ssrf漏洞
8. 网站采集,网站抓取的地方
一些网站会针对用户输入的url进行信息采集工作
9. 数据库内置功能
比如mongodb的copyDatabase函数
10. 邮件系统
比如接收邮件服务器的地址
12. 从URL关键字中寻找
share
wap
url
link
src
source
target
u
3g
display
sourceURl
imageURL
domain
……
13…………
ssrf 防御
1.禁止私有Ip访问
2.限制远程连接的域名
3.防火墙限制
4.限制请求方式
5.过滤协议使用https
ssrf 绕过
1.利用@
url只解析@后面的域名 ,例如,在url栏里输入
https://www.qq.com@www.baidu.com
浏览器会跳到www.baidu.com界面,在这个过程中,火狐浏览器会提示你有风险
IE浏览器则报错,不能进入
360浏览器、谷歌浏览器则直接跳转到百度界面(所以一个好的浏览器是很重要的)
显然,服务器认为@前面的www.qq.com是账号,所以进入的是www.baidu.com站点
在php里,@是屏蔽错误信息,所以匹配到@前面的www.qq.com符合要求,就不匹配@后面内容。当然也可能是后端的正则表达式没表达正确
不只是@,?
,#
,\
,/
……都能绕过,用法和@差不多
2.利用302重定向
通过dns解析绕过私有地址限制,探测内网
有个很神奇的网站xip.io
当访问这个网站的子域名,例如127.0.0.1.xip.io,它会给你重定向到127.0.0.1
3.更改ip写法
例如:127.0.0.1
利用八进制绕过: http://0177.0.0.1
利用十六进制绕过: http://0x7f.0.0.1
利用十六进制整数格式绕过: http://0x7f000001
利用十进制整数格式绕过: http://2130706433
特殊的IP地址,如果中间两位是0,可以省略掉:
如127.0.0.1还可以写成http://127.1
4.TCP数据流绕过
对于常见的IP限制,后端服务器可能通过下图的流程进行IP过滤:
对于用户请求的URL参数,首先服务器端会对其进行DNS解析,然后对于DNS服务器返回的IP地址进行判断,如果在黑名单中,就pass掉。
但是在整个过程中,第一次去请求DNS服务进行域名解析到第二次服务端去请求URL之间存在一个时间查,利用这个时间差,可以进行DNS 重绑定攻击。
要完成DNS重绑定攻击,我们需要一个域名,并且将这个域名的解析指定到我们自己的DNS Server,在我们的可控的DNS Server上编写解析服务,设置TTL时间为0。这样就可以进行攻击了,完整的攻击流程为:
(1)、服务器端获得URL参数,进行第一次DNS解析,获得了一个非内网的IP(2)、对于获得的IP进行判断,发现为非黑名单IP,则通过验证(3)、服务器端对于URL进行访问,由于DNS服务器设置的TTL为0,所以再次进行DNS解析,这一次DNS服务器返回的是内网地址。(4)、由于已经绕过验证,所以服务器端返回访问内网资源的结果。
5.使用非http协议
http:// 可以用来探测是否存在ssrf
gopher:// 一个分布型的文件搜集获取网络协议,人称万能协议,没有默认端口,在WWW出现之前,Gopher 是Internet上最主要的检索工具,可以利用Gopher攻击Redis、攻击Fastcgi
dict:// 字典服务器协议,查看端口,软件版本信息,操作内网redis服务等
ftp:// 只能探测是否存在ftp,不能进行暴力破解
file:// 本地文件传输协议,可以读取本地文件
ldap:// 轻量目录访问协议
ssh:// 一种加密的网络传输协议,在不安全的网络中为网络服务提供安全的传输环境
telent:// 可以匿名访问及爆破
tftp:// UDP协议 发送UDP数据包
php:// 访问各个输入/输出流(I/O streams)
…………
参考资料
http://www.52bug.cn/hkjs/3100.html
https://www.t00ls.net/articles-41070.html
服务器端请求伪造——SSRF相关推荐
- SSRF服务器端请求伪造
SSRF服务器端请求伪造 SSRF服务端请求伪造漏洞,也称为XSPA跨站端口攻击,是一种由攻击者构造一定的利用代码导致服务端发起漏洞利用请求的安全漏洞,一般情况下SSRF攻击的应用是无法通过外网访问的 ...
- ssrf 服务器端请求伪造 简介
SSRF漏洞是如何产生的? SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF是要目标网站 ...
- Web安全——服务器端请求伪造(SSRF)
SSRF 概述 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF攻击的目标是从外网无法访 ...
- Web漏洞之SSRF(服务器端请求伪造)
文章目录 一.漏洞场景 二.漏洞描述 三.漏洞原理 四.漏洞危害 五.漏洞评级 六.漏洞验证 七.漏洞利用 八.漏洞防御 一.漏洞场景 服务器会根据用户提交的URL 发送一个HTTP 请求.使用用户指 ...
- 【转】SSRF(Server-Side Request Forgery:服务器端请求伪造)
原文链接:服务端请求伪造(SSRF) - Hel10 - 博客园 0x01:服务器端请求伪造的概念 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻 ...
- SSRF服务器端请求伪造漏洞基础
SSRF服务器端请求伪造漏洞基础,下面分五个专题来说 1.什么是ssrf? 2.ssrf的相关协议 3.有无回显的ssrf漏洞确认 4.ssrf如何利用? 5.ssrf漏洞的绕过 6.ssrf漏洞的加 ...
- SSRF(Server-Side Request Forgery):服务器端请求伪造
0X00 SSRF介绍 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF攻击的目标是从外 ...
- SSRF漏洞(服务器端请求伪造)
中间人(SSRF就是中间人)攻击,服务端请求伪造,主要攻击内网,打redis和weblogic特别厉害,目标网站的内部系统(他是从内部系统访问的,所以通过它攻击外部系统无法访问的内部系统,也就是目标网 ...
- SSRF服务器端请求伪造攻击详解
一.SSRF概述 SSRF(Server-Side Request Forgery:服务器端请求伪造),是一种由攻击者构造请求,由服务端发起请求的安全漏洞. 其形成的原因大都是由于服务端提供了 ...
- 【SSRF-01】服务器端请求伪造漏洞原理及利用实例
目录 1 基础知识 1.1 概述 1.2 原理 1.3 危害 2 SSRF漏洞利用实例 2.1 实验环境及实验前准备 2.2 SSRF漏洞的利用实例 2.2.1 正常访问 2.2.2 端口扫描-扫描内 ...
最新文章
- C语言打印100-200之间的素数
- 难点电路详解之负反馈放大器电路(4)
- Linux—帐号和权限管理
- Windows锁定计算机C代码编程实现
- ListView添加项目
- ZOJ 1410 题解
- keil编译时提示 Undefined symbol __ROR
- springboot aop加载流程
- python导出数据找不到csv_找不到Python/CSV文件
- 学习SQLSERVER2005高可用性数据库镜像的一些心得
- Asp.Net Core 第05局:读取配置
- Python 列表 sorted( )函数
- 在Windows上创建CUDA C程序
- 一部影响美国网络安全政策的电影
- PHP设计模式——命令模式
- 网络编程基础知识之单线程与多线程
- C# 不借助第三个变量实现两整数交换
- [转]软件安装管家软件安装目录
- mysql创建拼音函数_MySQL汉字转换拼音(存储函数)
- 通过Python绘制分段函数