SSR相关那些事情

  •  SSRF (Server-Side Request Forgrey):
    
    服务器端请求伪造,是一种由攻击者构造,从而让服务端发起请求的一种安全漏洞,它将一个发起网络请求的服务当做跳板来攻击其他服务,SSRF的攻击目标一般是内网。当服务端提供了从其他服务器获取数据的功能(例如从指定URL获取网页文本内容、加载指定地址的图片、下载等),但是没有对目标地址做过滤与现实时就会出现SSRF。
  • SSRF的危害:
    
    很多网站提供了从其他服务器上获取数据的能力,该功能被恶意使用,可以利用存在缺陷的web应用作为代理攻击远程和本地的服务器。
  1. 可以扫描内部网络
  2. 可以构造数据攻击内部主机
  • 漏洞挖掘
    

其实只要能对外发起网络请求就有可能存在SSRF漏洞。

  1. 从WEB功能上寻找
    通过URL分享内容
    文件处理、编码处理、转码等服务
    在线翻译
    通过URL地址加载与下载图片
    图片、文章的收藏
    设置邮件接收服务器
  2. 从URL关键字寻找
    share、wap、url、link、src、source、target、u、3g、
    display、sourceURl、imageURL、domain…
  1. 右键在新窗口打开图片,若浏览器上URL地址为http://www.baidu.com/img/bd_logo1.png,
    说明不存在SSRF漏洞。
  2. firebug看网络连接信息,若没有http://www.baidu.com/img/bd_logo1.png
    这个图片请求,则证明图片是豆瓣服务端发起的请求,则可能存在SSRF漏洞。
  • 绕过过滤
    有时漏洞利用时会遇到IP限制,可用如下方法绕过:
  • 使用@:http://A.com@10.10.10.10 = 10.10.10.10
  • IP地址转换成十进制、八进制:127.0.0.1 = 2130706433
  • 使用短地址:http://10.10.116.11 = http://t.cn/RwbLKDx
  • 端口绕过:ip后面加一个端口
  • xip.io:10.0.0.1.xip.io = 10.0.0.1
    www.10.0.0.1.xip.io = 10.0.0.1
    mysite.10.0.0.1.xip.io = 10.0.0.1
    foo.bar.10.0.0.1.xip.io = 10.0.0.1
  • 通过js跳转
  • 通用的SSRF实例
  • weblogin配置不当,天生ssrf漏洞
  • discuz x2.5/x3.0/x3.1/x3.2 ssrf漏洞
  • CVE-2016-1897/8 - FFMpeg
  • CVE-2016-3718 - ImageMagick
  • 如何防御
    通常有以下5个思路:
  • 过滤返回信息,验证远程服务器对请求的响应是比较容易的方法。如果web应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。
  • 统一错误信息,避免用户可以根据错误信息来判断远端服务器的端口状态。
  • 限制请求的端口为http常用的端口,比如,80,443,8080,8090。
  • 黑名单内网ip。避免应用被用来获取获取内网数据,攻击内网。
  • 禁用不需要的协议。仅仅允许http和https请求。可以防止类似于file:///,gopher://,ftp:// 等引起的问题