漏洞原理:
SSRF(Server-Side Request Forgery,服务器端请求伪造),针对服务器端向其他服务器(或其他服务)主动发起数据获取的场景。当获取数据的目标服务器地址可控且未有效过滤,通过地址构造等方式被恶意利用时,主服务器就会被攻击者利用而发起内部网络攻击,如对内网进行信息探测、攻击内部主机系统和服务等。主要目标是攻击外网无法直接访问的内网环境。
攻击流程:
客户端带有构造的指定地址
发起请求
服务器端
服务器端请求客户,传入参数后访问恶意地址
恶意地址请求数据返回服务器端
服务器端输出渲染在页面上
客户端浏览器显示
常见发起请求的函数:fsockopen(),file_get_contents(),curl_exec(),readfile()
防御建议:
对服务器端请求的地址设置白名单
判断是否为内网IP,对内网的限制访问
禁止30x跳转