一、SSRF介绍
SSRF(Cross-site Scripting,简称XSS)是一种安全漏洞,它允许攻击者通过构造特定的请求,使服务器发起对外网无法访问的内部系统请求。这种漏洞通常发生在服务端提供了从其他服务器应用获取数据的功能,但没有对目标地址进行严格的过滤和限制时,例如,黑客可以操作服务器从指定URL地址获取网页文本内容,加载指定 地址的图片或下载文件等。
二、SSRF漏洞原理
服务端提供了从其他服务器应用获取数据的功能,但是没有对前端传进来的目标地址做严格的过滤限制,导致攻击者可以传入任意地址,来让服务器对其发起请求并返回该目标地址请求的数据,攻击者以存在SSRF的服务器为跳板对其他的目标服务器进行攻击
三、SSRF漏洞的防御
1、过滤返回信息:这可以通过在服务端对返回的信息进行检查和过滤来实现,确保只允许预期的响应类型通过
2、统一错误信息:避免用户可以根据错误信息来判断远程服务器的端口或其他敏感信息。
3、限制URL参数:对客户端传输过来的URL参数进行过滤或限制,确保他们不会被用来发起不安全的请求4、更新和维护软件:使用最新的软件版本可以减少已知漏洞的存在,从而降低被利用的风险,定期更新和打补丁是防止SSRF攻击的有效方法之一等
5、使用Web应用防火墙:部署WAF可以帮助识别和阻止恶意的SSRF请求,因为它可以监控和分析进入Web应用的所有流量,从而识别出潜在的攻击行为
四、怎么利用SSRF
利用:进行内外网端口和服务探测、本地主机敏感数据的读取、内外网主机应用程序漏洞的利用等等
例如:进行端口扫描
1、在SSRF中,dict协议和http协议还可以用来探测内网主机存活与端口开放的情况
payload:?url=dict://127.0.0.1:8000
2、burp,进行暴力扫描,将端口设置为变量3、使用SIMPLE List扫描常用端口,或用NumerList进行枚举
4、当发现长度不同的数据包时,再用http协议进一步探测
payload:?url=http://127.0.0.1:8111
五、如何绕过SSRF
1、IP限制绕过:十进制转换、十六进制转换、八进制转换、不同进制组合转换
2、协议限制绕过:当url协议限制只为http(s)时,可以利用follow redirec 特性,构造302跳转服务,结合dict:// file://
3、利用@绕过 http://abc@127.0.0.14、添加端口号
5、短网址绕过
6、利用DNS解析绕过7、利用【.】 绕过
六、SSRF检测思路
SSRF漏洞的验证方法
1、因为SSRF漏洞是让服务器发送请求的安全漏洞,所以我们就可以通过抓包分析发送的请求是否由服务器发送的,从而来判断是否存在SSRF漏洞
2、在页面源码中查找访问的资源地址,如果该资源地址类型为“http://www.baidu.com/xxx.php?image=地址”的就可能存在SSRF漏洞