漏洞介绍
服务端请求伪造攻击(Server-side Request Forgery)简称SSRF,是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统),当WEB应用提供了从其他服务器获取数据的功能,但没有远程服务器地址和远程服务器返回的信息进行合理的验证和过滤,就可能存在SSRF,致使可以利用发起网络请求的服务来攻击其他服务。
SSRF与CSRF的区别
CSRF是服务器端没有对用户提交的数据进行随机值校验,且对http请求包内的referer字段校验不严,导致攻击者可以利用用户的cookie信息伪造用户请求发送至服务器;
SSRF是服务器对用户提供的可控URL过于信任,没有对攻击者提供的URL进行地址限制和足够的检测,导致攻击者可以以此为跳板攻击内网或者其它服务器。
原理
SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载文件、读取文件内容等等。ssrf是利用存在缺陷的web应用作为代理攻击远程和本地的服务器。
危害
1. 可以扫描内部网络,获取端口、服务信息,某些情况下端口的Banner会回显出来(比如3306的)
2. 攻击运行在内网或本地的应用程序(比如,溢出)
3. 通过请求默认的文件得到特定指纹的原理来实现对内网web应用进行指纹识别(如开放的端口、中间件版本等)
4.