SSRF笔记整理

  • 服务器请求伪造

    • 原理简述
      • A通过指使B对C进行攻击
      • A无法直接访问C;B可以直接访问C;B又很听A的话
    • 漏洞成因
      • 服务器可以获取另一台服务器应用的数据;并且对访问的地址没有过滤和限制
      • 简单来说就是一台服务器拥有访问其他任意IP资源的权利
    • 判断点
      • 一个网站通过url就可以访问或者下载其他网站的资源
      • url获取网页文本;加载url获取图片下载;识别url获取资源等
      • 分享、图片加载、翻译网站、
  • PHP中可能存在ssrf漏洞的函数

    • file_get_content()
      • 把文件读到一个字符串中
    • fsockopen()
    • fopen()
    • readfile()
    • curl()
    • curl_exec()
      • 执行一个curl会话
      • curl支持很多协议,有FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE以及LDAP
  • 伪协议

    • file:// 获取文件内容
      • /etc/passwd 用户信息
      • /etc/hosts IP地址
      • /proc/net/arp 显示arp缓存表(探查主机)
      • /proc/net/fib_trie 路由表信息
    • dict:// 字典扫描端口信息
      • dict://192.168.1.5:80/info
    • ftp:// 扫描端口;很慢
      • ftp://192.168.1.5:80
    • http:// 目录扫描
      • http://192.168.1.5:8080/index.php
      • 通过bp抓包,字典爆破文件名
    • gopher://
      • 默认访问70端口
      • web访问时需要改成80端口
      • 第一个字符默认不识别;需要填充位_(随便设一个填充字符就行,主要用于区别)
      • 该协议可以指定url通过GET请求或POST请求访问数据
      • GET数据请求
        • gopher://192.168.232.125:80/_GET%20name.php%3fname=dabai%20HTTP/1.1%0d%0AHost:%20192.168.232.125%0d%0A
          • 以上示例是直接在浏览器中访问的poc
          • 如果通过抓包进行修改的话需要对后面的数据进行两次url编码
            • 因为要经过ssrf服务器和目标对象两层url解码
          • %20 空格
          • %3f 问号
          • %0d%0A 换行符
          • 发送GET请求需要保留头部信息
            • 路径:GET /name.php?name=dabai HTTP/1.1
            • 主机地址:Host: 192.168.232.125
            • 最后记得加上换行符%0d%0A;因为数据内容和头部之间有空白行
      • POST数据请求
        • gopher://192.168.232.125:80/_+下面url编码后的内容
        • 具体操作和GET请求一样;只是保留数据不同
        • 需要保留的字段
          • POST /name.php HTTP/1.1
          • Host: 192.168.232.125
          • Content-Type: application/json; charset=utf-8
            • 类型具体需要从bp抓包中看一下;这个不固定
          • Content-Length: 123
            • 这个数据长度需要和下面内容匹配
          • 空白行:%0d%0A
          • name=dabai
  • ssrf绕过的方法

    • (2)添加端口号      http://127.0.0.1:8080
    • (3)短地址        https://0x9.me/cuGfD
    • (4)可以指向任意ip的域名  xip.io
    • (5)ip地址转换成进制来访问 192.168.0.1=3232235521(十进制)
    • (6)非HTTP协议
    • (7)DNS Rebinding

你可能感兴趣的:(笔记)