SSRF服务器请求伪造
- SSRF漏洞概述
- SSRF漏洞探测
- SSRF漏洞绕过
- SSRF漏洞防御
一、SSRF漏洞概述
1. 什么是SSRF
服务端请求伪造攻击(Server-side Request Forgery)简称SSRF,当web应用提供了从其他服务器获取数据的功能,但没有对远程服务器地址和远程服务器返回的信息进行合理的验证和过滤,就可能存在这种服务端请求伪造。
可以利用发起网络请求的服务,当做跳板来攻击其他服务。
2. SSRF漏洞可以做什么
(1)可以扫描内部网络,获得端口、服务信息;
(2)攻击运行在内网或本地的应用程序(比如溢出);
(3)对内网web应用进行指纹识别,通过访问默认文件实现 ;yafinger github地址
(4)对内部任意主机和任意端口发送请求包进行攻击(struts2、SQL注入);
(5)利用file协议读取本地文件;
二、SSRF漏洞探测
我们怎么发现SSRF漏洞
能够对外发起网络请求的地方,就可能存在SSRF漏洞
- 从远程服务器请求资源(图片代下载)
- 转码服务
- 在线翻译
- 未公开的api实现的以及其他调用URL的功能
- 数据库内置功能
- Webmail收取其他邮箱邮件(pop3、imap、smtp)
- 文件处理,编码处理,属性处理(xmlrpc.xml)
三、SSRF漏洞绕过
1、攻击本地:http://localhost:22
2、利用[::]绕过localhost:http://[::]:80
3、利用@绕过:http://[email protected]
4、利用短地址(short URL):http://dwz.cn/11SMa来代替http://127.0.0.1
5、利用特殊域名来绕过:特殊域名如http://127.0.0.1.xip.io
6、利用封闭式字母数字(Enclosed alphanumerics)
7、利用句号绕过:如127。0。0。1代替127.0.0.1
8、利用进制转换
9、利用特殊地址:http://0/
10、利用协议绕过:http://example.com/url=sftp://example.com:12345
11、可以尝试上述绕过组合
四、SSRF漏洞防御
1、在内网设备上建立黑名单内网IP,禁止公开服务器的访问
2、过滤返回信息,对响应用户请求的返回信息进行验证
3、禁用端口banner信息
4、禁用不必要的协议,防止file协议等
5、根据业务需求设定URL格式。防止攻击者构建攻击语句
6、统一错误信息,避免攻击者根据错误信息判断端口状态
7、限制请求端口
warning :未经授权,不得转载
声明:本文旨在为学习网络信息安全的同学提供指引帮助,维护网络空间的安全
有问题的小伙伴请在下方留言,喜欢就点个赞吧;关注我,带你一起写bug
知乎:叄贰壹
简书:带只拖鞋去流浪