SSRF利用研究及总结

以前只是简单的了解SSRF,并没有进行深入的学习,经过两天的研究与实现,将收获总结博客中。

什么是SSRF漏洞?

利用存在缺陷的Web应用做为代理攻击远程或本地的服务器,这种形式的攻击被称为SSRF。

SSRF产生原理

通常存在于需要请求外部内容的逻辑中,比如本地化网络图片、XML解析时的外部实体注入、软件的离线下载,链接分享或者title,在线网页翻译,在线代理浏览器等。当攻击者传入一个未经验证的URL,后端代码直接请求这个URL,将会造成SSRF漏洞。

SSRF的危害

  • 内网端口扫描
  • 内网Web应用指纹识别
    • 通过访问内网Web应用robots.txt等方式辨别cms的类型及版本然后根据公开的漏洞去攻击内网服务器
  • 读取本地文件
  • 读取远程文件
  • 攻击内网其他应用

    SSRF挖掘

  • 社交分享功能
  • 转码服务
  • 在线翻译
  • 在线代理浏览器
  • 图片加载/下载
  • 图片/文章收藏功能
  • API或调用外部URL的功能

    URL的构成

    要谈SSRF的绕过首先就要对URL的构成有一定的了解。

    http://admin:123456@wkh.dropsec.xyz:80/xx/test.php?id=1
  • 第一部分 协议
  • admin:123456访问所带的用户信息
  • 第三部分 域名
  • 第四部分 端口号
  • 第五部分 目录及文件
  • 第六部分 参数

    SSRF绕过技巧

  • IP地址转换绕过
    • 数字地址(十进制):127.0.0.1->2130706433
    • 十六进制:127.0.0.1->0x7F000001或0x7F.00.00.01或0x7F.0x00.0x00.0x01
    • 八进制: 127.0.0.1->0177.0.0.1或0177.00.00.01
    • 省略写法:127.0.0.1->127.1
  • URL跳转绕过
    • 在自己的网站上放一个重定向到127.0.0.1等内网地址的文件,然后访问
  • 短网址绕过
    • 随便找一个短网址转换网站即可转换成短网址,
      如www.baidu.com.index.php->http://0x9.me/H27bC
  • xip.io绕过
    • 127.0.0.1.xip.io
    • www.127.0.0.1.xip.io
    • xxx.127.0.0.1.xip.io
    • fuzz.xxx.127.0.0.1.xip.io
  • 使用@绕过
    • admin:123456@127.0.0.1
    • admin:123456@127.0.0.1.xip.io
    • … …

      实例演示

      为了实践绕过技巧,在互联网上找了存在SSRF的网站,找了一些在线代理网站。

      127.0.0.1、127.0.0.1.xip.io都不行:
      1

      尝试www.127.0.0.1.xip.io、十六进制、八进制都可以绕过:
      2
      3
      4

      利用以上绕过方法还挖掘到了微软的一个SSRF,具体细节不方便公布。

SSRF防御

以PHP为例

  • 1、禁止跳转(请求时设置redirect=false)
  • 2、使用gethostname()判断是否为内网IP
    gethostnane获取到的是各种形式IP转换后的真实IP。
文章目录
  1. 1. 什么是SSRF漏洞?
  2. 2. SSRF产生原理
  3. 3. SSRF的危害
  4. 4. SSRF挖掘
  5. 5. URL的构成
  6. 6. SSRF绕过技巧
  7. 7. 实例演示
  8. 8. SSRF防御
|