概述
SSRF (Server-Side Request Forgery:服务器端请求伪造)
其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制
导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据
数据流: 攻击者----->服务器---->目标地址
根据后台使用的函数的不同,对应的影响和利用方法又有不一样
PHP中下面函数的使用不当会导致SSRF:
file_get_contents()
fsockopen()
curl_exec()
如果一定要通过后台服务器远程去对用户指定("或者预埋在前端的请求")的地址进行资源请求,则请做好目标地址的过滤。
你可以根据"SSRF"里面的项目来搞懂问题的原因
一、SSRF之curl
- 关于php的curl
PHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯。
libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。
PHP中使用cURL实现Get和Post请求的方法
这些函数在PHP 4.0.2中被引入
| 函数 | 描述 |
|---|---|
| curl_close() | 关闭一个cURL会话。 |
| curl_copy_handle() | 复制一个cURL句柄和它的所有选项。 |
| curl_errno() | 返回最后一次的错误号。 |
| curl_error() | 返回一个保护当前会话最近一次错误的字符串。 |
| curl_escape() | 返回转义字符串,对给定的字符串进行URL编码。 |
| curl_exec() |

本文深入探讨SSRF(Server-Side Request Forgery)漏洞原理,重点分析PHP中curl和file_get_contents函数的不当使用如何引发安全风险,包括文件读取、内网探测等攻击手法。
最低0.47元/天 解锁文章
2034

被折叠的 条评论
为什么被折叠?



