SSRF:服务器端请求伪造
SSRF(Server-Side Request Forgery:服务器端请求伪造)是一种由攻击 者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统,正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统
与XSS漏洞、CSRF漏洞的区别
XSS漏洞发生在客户端
CSRF漏洞发生在攻击者
SSRF漏洞发生在服务端
原理:
SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制,比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等
这里要重点与URL重定向漏洞区分,SSRF漏洞只是把目标网站打印出来而不是重定向过去
危害:
1.可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的Banner信息等
2.攻击运行在内网或本地的应用程序
3.对内网Web应用进行指纹识别,通过访问默认文件实现(如Readme等文件)
4.攻击内外网的Web应用,主要是使用GET就可以实现的攻击(比如Struts2,SQLI等)
5.利用File协议读取本地文件等
常见的应用场景:
分享
在线翻译
图片加载与下载
图片、文章收藏功能
未公开的API实现以及其他调用URL的功能等
常见的绕过技巧:
利用@符号
利用localhost
利用短地址
利用特殊域名
利用DNS解析
利用Enclosed Alphanumerics
利用。(句号)
利用进制转换
其他协议
*协议绕过
Dict://
dict://<user-auth>@<host>:<port>/d:<word>
SFTP://
ssrf.php?url=sftp://example.com:11111/
TFTP://
ssrf.php?url=tftp://example.com:12346/TESTUDPPACKET
LDAP://
ssrf.php?url=ldap://localhost:11211/%0astats%0aquit
如有错误,欢迎批评指正[鞠躬]