Web常规漏洞SSRF服务端请求伪造漏洞

Posted 南瓜__pumpkin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web常规漏洞SSRF服务端请求伪造漏洞相关的知识,希望对你有一定的参考价值。

文章目录

概念 —— 产生原因 ——可能存在漏洞的代码 ——漏洞分类 —— 潜在危害
漏洞利用 —— 漏洞防御 —— 漏洞绕过

概念:SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种利用漏洞伪造服务器端发起请求。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。

漏洞产生原因:服务端提供从其他服务器应用获取数据的功能,但没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容、加载指定地址的图片、下载等。

可能存在SSRF漏洞的php代码:

函数-
file_get_content()把整个文件读入一个字符串中
fsockopen()使用socket建立tcp连接传输数据
curl_exec()建立curl会话获取数据

漏洞分类:

  1. 显示对攻击者的响应(basic):在服务器获取攻击者要求的URL后,把响应发送回攻击者。
  2. 不显示响应(blind):在服务器获取攻击者要求的URL后,不会把响应内容发送给攻击者,需要通过抓包或查看服务器日志判断是否存在服务端请求伪造漏洞。(主要证明漏洞存在:访问攻击机Web服务查看日志、DNSlog记录)

漏洞潜在危害:

  1. 扫描内网开放服务
  2. 向内部任意主机的任意端口发送payload来攻击内网服务
  3. DOS攻击(请求大文件,始终保持连接Keep-Alive Always)
  4. 攻击内网的web应用,例如直接SQL注入、XSS攻击等
  5. 利用file、gopher、dict协议读取本地文件、执行命令等

漏洞利用:

  1. 四个常用协议:http打内网、file、gopher、dict
  2. 两个扩展协议:sftp获取ssh相关信息、tftp远程获取文件
  3. 结合redis写shell、结合php-fpm未授权访问漏洞执行命令(fastcgi)

漏洞防御:

  1. 目标ip和端口加黑:内网加黑名单(加白名单对业务不方便),限制请求的端口,比如80,443,8080,8090
  2. 方式加白:协议很多不方便枚举,只允许http协议
  3. 结果加黑:如果web应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。
  4. 结果统一:统一错误信息,避免用户可以根据错误信息来判断远程服务器的端口状态。
  5. 针对绕过方式,禁止30x跳转

漏洞绕过:
限制目标ip时:采用短网址或进制转换
限制协议时:利用302跳转

参考

产生SSRF漏洞的代码

ssrf原理与实践

SSRF详细利用方式及getshell

SSRF漏洞攻击原理及防御方案

[红日安全]Web安全Day4 - SSRF实战攻防

以上是关于Web常规漏洞SSRF服务端请求伪造漏洞的主要内容,如果未能解决你的问题,请参考以下文章

-SSRF服务端请求伪造

Web漏洞-SSRF漏洞(详细)

SSRF漏洞简单分析

Web安全——服务器端请求伪造(SSRF)

Web安全——服务器端请求伪造(SSRF)

Web安全——服务器端请求伪造(SSRF)