SSRF服务端请求伪造
漏洞原理:
Server-Side Request Forgery (SSRF,服务器端请求伪造) 漏洞是一种安全漏洞,允许攻击者向服务器发起欺骗性请求。攻击者利用这种漏洞可以探测、扫描或者攻击服务器内部的资源,或者将服务器用作代理访问其他非公开的网络资源。
SSRF漏洞通常由于服务器端应用程序对用户输入信任不够严谨而导致。攻击者可以通过构造恶意的请求,使服务器端应用程序发起指向内部或者外部网络资源的请求。这些请求可能会导致信息泄露、服务拒绝或者服务器端攻击。
常见的SSRF攻击包括但不限于:
- 通过发送恶意的URL来访问服务器内部的敏感文件。
- 通过发送请求来扫描服务器内部的端口。
- 将服务器用作代理来发起针对其他服务器的攻击。
php ssrf敏感函数
# 这些函数可以通过网络协议访问目标服务器上的资源 file_get_ contents() fsockopen() curl_exec()
SSRF常用伪协议
- file://:用于访问本地文件系统。攻击者可以尝试访问服务器上的敏感文件,如/etc/passwd等。示例:
file:///etc/passwd
- http:// 和 https://:用于访问Web资源。攻击者可以尝试访问内部Web应用程序或者其他服务器上的敏感信息。示例:
http://internal.site/internal_page
- ftp://:用于访问FTP服务器。攻击者可以尝试访问FTP服务器上的文件。示例:
ftp://ftp.site/secret_file
- dict://:用于查询词典服务。虽然不常见,但在某些情况下也可能被利用。示例:
dict://dictionary.com/
- gopher://:用于访问Gopher协议服务。同样不太常见,但也可能被利用。示例:
gopher://gopher.site/
- ldap://:用于访问LDAP目录。攻击者可以尝试从LDAP服务器中检索敏感信息。示例:
ldap://ldap.site/
- mailto::用于发送电子邮件。虽然不太可能导致安全问题,但仍可能被用于构造攻击。示例:
mailto:user@example.com
- ssh://:用于访问SSH服务器。攻击者可以尝试通过SSH协议与其他服务器建立连接。示例:
ssh://internal.site/
- telnet://:用于访问Telnet服务器。虽然不太常见,但也可能被利用。示例:
telnet://telnet.site/
ByPass
1.利用?绕过限制url=https://www.baidu.com?www.xxxx.me 2.利用@绕过限制url=https://www.baidu.com@www.xxxx.me 3.利用斜杠反斜杠绕过限制 4.利用#绕过限制url=https://www.baidu.com#www.xxxx.me 5.利用子域名绕过 6.利用畸形url绕过 7.利用跳转ip绕过