背景

最近做的安全测评主要是SSRF,发现自己在这一块有挺大知识盲点,抓紧补一下。

1.介绍

  • SSRF(Server-Side Request Forgery:服务器端请求伪造),是一种攻击者利用服务端发起请求的安全漏洞。攻击者能够诱使服务端应用程序向攻击者选择的域发出HTTP请求。

  • SSRF针对的目标通常是从外部无法访问的内网系统。正因为它是由服务端发起的,所以它能请求到与它相通而与外部隔离的内网系统,可被用于作为代理来实施内网(或者远程服务器)的攻击。

2.成因

  • 大都是由于服务端提供了从其他服务器应用获取数据的功能,而没有对目标地址进行严格过滤与限制,一旦被发现,攻击者可以构造恶意请求实施攻击。

3.危害与防范

3.1 危害

  • 成功的SSRF攻击常用会导致黑客在易受攻击的应用程序本身或应用程序与之通信的其他后端系统执行未授权(恶意)操作,和对组织内数据的访问。特殊情况下,SSRF漏洞可能允许攻击者执行任意命令。
  • SSRF可能的攻击方式和危害如下:
    1. 让服务端去访问内网的一些WEB应用指纹文件来判断是否存在相应的CMS,从而收集内网CMS信息
    2. 可以使用file、dict、gopher、ftp协议进行请求访问相应的文件,可能造成文件任意读取,导致敏感信息泄漏
    3. 攻击内网web应用,可以向内部任意主机的任意端口发送精心构造的数据包,如果应用本身存在漏洞,可能造成远程命令执行
    4. 攻击内网应用程序(利用跨协议通信技术)
    5. 内网端口扫描,通过访问看是否有端口开放,从而获取内网端口开放信息
    6. 拒绝服务攻击,请求大文件,始终保持链接keep-alive alway,导致拒绝服务

3.2 防范

  • 禁止服务端跳转,防止以跳转方式绕过HTTP协议限制
  • 对于SSRF,回显是能够成功利用的重要条件,所以过滤返回信息,验证远程服务器对请求的响应是比较容易的方法。如果WEB应用是去获取某一种类型的文件,那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。
  • 禁用不需要的协议,仅仅允许HTTP和HTTPS请求。可以防止类似于file://gopher://ftp://等引起的问题
  • 设置URL白名单或者限制内网IP,避免应用被用来获取内网数据,攻击内网
  • 限制请求的端口为HTTP常用的端口,例如80、443、8080、8090
  • 统一错误信息,避免用户可以根据错误信息来判断远端服务器的端口状态

最新文章

  1. Go 语言开发的基于 Linux 虚拟服务器的负载平衡平台 Seesaw
  2. ionicModal中的监听事件
  3. 创立Est•Design华服高级成衣定制工作室 - 北京服装学院-莱佛士国际学院
  4. wincvs的“License for this product has expired”问题解决
  5. [Swift]LeetCode188. 买卖股票的最佳时机 IV | Best Time to Buy and Sell Stock IV
  6. 工具篇-Spark-Streaming获取kafka数据的两种方式(转载)
  7. 剑指Offer(9)
  8. GridView固定行宽,自动换行,鼠标放在Table的Tr上变色
  9. Virtualbox安装Ubuntu
  10. web前端导出csv文件
  11. requests爬取百度音乐
  12. Nginx配置PATHINFO隐藏index.php
  13. Cookie是什么?从哪来?存在哪?往哪去?
  14. 【DUBBO】dubbo架构详解(转载)
  15. Cookie 的运用
  16. ZSTU 4241 圣杯战争(线段树+经典)
  17. 从零开始学android -- 简易的socket通信
  18. vim中设置tab的长度的方法
  19. python 使用cx-freeze打包程序
  20. [WIP]C语言 realloc的坑

热门文章

  1. RSA加密——前端JSEncrypt
  2. 详解DNS域名解析系统(域名、域名服务器[根、顶级、授权/权限、本地]、域名解析过程[递归与迭代])
  3. 架构师之路-redis集群解析
  4. 设计模式学习-使用go实现建造者模式
  5. 为什么Hashtab的大小通常取远离2^n 的素数
  6. "简单"的优化--希尔排序也没你想象中那么难
  7. git push超过100M文件处理方法
  8. Linux NameSpace (目录)
  9. Springboot 启动分析
  10. ubuntu图标