SSRF
漏洞成因:在服务器向用户请求一些参数时,用户提交恶意的参数信息,而服务器未对用户提交的信息进行合法性判断就直接执行后续请求业务,就会导致安全隐患
与CSRF的区别
攻击者需要伪造的请求为服务器发起的内容(web服务器存在向其他服务器发起请求并获取数据的功能,并在获取过程中未对目标地址进行安全过滤或加以限制,导致服务器的请求被伪造,进而实现后续攻击)
可能存在漏洞缺陷的目标
图片加载与下载功能
通过URL地址远程加载或下载图片,常见于很多转载行为或远程加载
本地处理功能
像业务流程中需要对用户输入的参数进行本地处理;获取提交的URL中的header信息等
各类辅助功能
可针对用户输入的参数添加各类辅助信息,提升参数的可视化效果
图片、文章收藏功能
将远程地址保存,可让用户重新发起请求访问时由服务器重新加载远程地址即可
防护
需要重点解决用户请求的合法性和服务器行为的合规性
可以优先利用各类黑白名单手段对用户输入的内容进行合法性识别,并严格对用户输入参数进行格式及长度限制,CSRF中的token不太适合SSRF
(1)双向过滤用户端参数,严格限定输入参数、返回结果的数据类型及内容
(2)限制请求行为端口,并针对具有服务器请求业务的网络范围进行严格划分
(3)针对内网地址添加黑白名单
(4)尽可能实现业务集中化调用,并尽量减少这类直接发起主动请求的业务行为