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会话获取数据 |
漏洞分类:
- 显示对攻击者的响应(basic):在服务器获取攻击者要求的URL后,把响应发送回攻击者。
- 不显示响应(blind):在服务器获取攻击者要求的URL后,不会把响应内容发送给攻击者,需要通过抓包或查看服务器日志判断是否存在服务端请求伪造漏洞。(主要证明漏洞存在:访问攻击机Web服务查看日志、DNSlog记录)
漏洞潜在危害:
- 扫描内网开放服务
- 向内部任意主机的任意端口发送payload来攻击内网服务
- DOS攻击(请求大文件,始终保持连接Keep-Alive Always)
- 攻击内网的web应用,例如直接SQL注入、XSS攻击等
- 利用file、gopher、dict协议读取本地文件、执行命令等
漏洞利用:
- 四个常用协议:http打内网、file、gopher、dict
- 两个扩展协议:sftp获取ssh相关信息、tftp远程获取文件
- 结合redis写shell、结合php-fpm未授权访问漏洞执行命令(fastcgi)
漏洞防御:
- 目标ip和端口加黑:内网加黑名单(加白名单对业务不方便),限制请求的端口,比如80,443,8080,8090
- 方式加白:协议很多不方便枚举,只允许http协议
- 结果加黑:如果web应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。
- 结果统一:统一错误信息,避免用户可以根据错误信息来判断远程服务器的端口状态。
- 针对绕过方式,禁止30x跳转
漏洞绕过:
限制目标ip时:采用短网址或进制转换
限制协议时:利用302跳转
参考
以上是关于Web常规漏洞SSRF服务端请求伪造漏洞的主要内容,如果未能解决你的问题,请参考以下文章