目录
SSRF漏洞
1、SSRF漏洞介绍
SSRF全称为Server-side Request Fogery,中文含义为服务器端请求伪造。
一般情况下,我们服务端请求的目标都是与该请求服务器处于同一内网的资源服务,但是如果没有对这个请求的目标地址、文件等做充足的过滤和限制,攻击者可通过篡改这个请求的目标地址来进行伪造请求,所以这个漏洞名字也叫作“服务器请求伪造”。
2、SSRF漏洞形成原因
SSRF漏洞形成的原因主要是服务器端所提供的接口中包含了所要请求的内容的URL参数,并且未对客户端所传输过来的URL参数进行过滤
一般的防御措施是对URL参数进行过滤,或者使得URL参数用户不可控,但当过滤方法不当时,就存在Bypass的不同方式
3、SSRF漏洞的利用
1、可以对外网、内网、本地进行端口扫描,某些情况下端口的Banner会回显出来(比如3306的);
2、攻击运行在内网或本地的漏洞程序(比如溢出);
3、可以对内网Web应用进行指纹识别,原理是通过请求默认的文件得到特定的指纹;
4、攻击内网或外网有漏洞的Web应用;
5、使用file://协议读取本地文件(或其他协议)
4、SSRF漏洞常见出现点
1)分享:通过URL地址分享网页内容
2)转码服务
3)在线翻译
4)图片加载与下载:通过URL地址加载或下载图片
5)图片、文章收藏功能
6)未公开的api实现以及其他调用URL的功能
7)从URL关键字中寻找(wap,share,url,link,src,source,target,u,3g,display,sourceURl,imageURL,domain)
5、SSRF漏洞的防御手段
• 禁止302跳转,或者每跳转一次都进行校验目的地址是否为内网地址或合法地址。
• 过滤返回信息,验证远程服务器对请求的返回结果,是否合法。
• 禁用高危协议,例如:gopher、dict、ftp、file等,只允许http/https
• 设置URL白名单或者限制内网IP
• 限制请求的端口为http的常用端口,或者根据业务需要治开放远程调用服务的端口
• catch错误信息,做统一错误信息,避免黑客通过错误信息判断端口对应的服务
Pikachu靶场的SSRF漏洞习题
1、curl
1、进入curl关卡
进来后发现 它使用的url读取文件
注:如果这里使用的带端口域名进行访问,则url后面也要跟上相关域名才能正常访问。
PHP支持的由Daniel St