SSRF(服务器请求伪造)

一、什么是ssrf漏洞

SSRF(service side request forgery) 为服务器请求伪造,是一种右攻击者形成服务器端发起的安全漏洞。

二、造成ssrf的原因

有些web网站会提供从其他服务器上传数据的功能,会使用用户指定的url获取数据。由于对远程的url没有进行严格的过滤,所以攻击者可以通过该漏洞控制该web网站作为代理服务器攻击远程服务器或者该web的本地服务器。

三、ssrf漏洞的危害

  • 可以对内网,本地进行端口扫描,查看端口的关闭状态;
  • 攻击运行在内网或者本地的应用程序;
  • 对内网应用程序做指纹识别;
  • 利用协议获取本地的文件;

四、挖ssrf漏洞

1.由于ssrf漏洞的产生原理是web服务器向其他远程服务器获取相关的数据从而产生的。

2.ssrf漏洞可能存在的场景

  • 分享,通过URL地址分享网页内容,通过URL获取目标页标签等内容
  • 转码服务,适应硬件设备的大小;
  • 图片的加载与下载
  • 图片,文章的收藏;

3.通过url地址分享网页内容

3.1首先当我们点击该连接时,观察url位置,会发现http协议,此时可能存在漏洞。

3.2输入http://www.baidu.com进行验证;

发现可以成功访问 

3.3 尝试读取本地d盘的文件

3.4 此时可以输入端口进行探测

3.4.1 输入3306 端口,返回信息,说明端口开了

3.4.2 输入8080端口 发现尝试连接了一会并没有返回信息,说明端口没有开

 3.4.3 输入135 端口 发现一致转圈,说明一致在请求连接,说明端口开了

3.5 后端使用了file_get_content()函数

3.5.1 读取网页后端源代码以base64编码的方式

payload:http://localhost/pikachu/vul/ssrf/ssrf_fgc.php?file=php://filter/read=convert.base64-encode/resource=ssrf.php

http://localhost/pikachu/vul/ssrf/ssrf_fgc.php?file=php://filter/read=convert.base64-encode/resource=ssrf.php

 

3.5.2 测试端口是否打开 

端口打开: 会一直转圈尝试连接

 端口关闭:

 3.6 转码服务

转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览

3.7 在线翻译:

在线翻译:通过URL地址翻译对应文本的内容。提供此功能的百度、有道等。

3.8 图片下载

图片加载与下载:通过URL地址加载或下载图片图片加载远程图片地址此功能用到的地方很多,但大多都是比较隐秘,比如在有些公司中的加载自家 图片服务器上的图片用于展示。(此处可能会有人有疑问,为什么加载图片服务器上的图片也会有问题, 直接使用img标签不就好了,没错是这样,但是开发者为了有更好的用户体验通常对图片做些微小调整例 如加水印、压缩等,就必须要把图片下载到服务器的本地,所以就可能造成SSRF问题)。

3.9 url编码中一些关键字

share、wap、url、link、src、source、 target、u、3g、display、sourcellRL、imageURL、domain

3.10 Weblogic(wbe中间件)配置不当,天生ssrf漏洞

五、如何绕过编码检测

1.url地址格式改写: 增加干扰(@前面的是账号密码)

http://[email protected]

http://[email protected]

访问的是一个地址。

六、如何防御ssrf漏洞

1.统一错误信息

2.限制请求端口

3.黑名单内网IP

4.禁用不需要的协议

 

 

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>