-
SSRF服务端请求伪造
-
定义:服务端请求伪造。是一种攻击者构造请求后,交由服务端发起请求的漏洞;
-
产生原理:该服务器提供了从其他服务器获取数据的功能,但没有对用户提交的数据做严格校验;
-
利用条件:
1). 提供了从 其他服务器 获取数据的功能;
2). 其他服务器 地址可控并且没有经过严格过滤; -
分类:有回显型,无回显型;
-
验证方式:
1). 有回显:访问外部的网址看是否回显;
2). 无回显:使用DNSLOG
外带或HTTP
日志外带 ; -
漏洞函数:
1).file_get_contents()
,读取并展示文件内容;
2).cur_exec()
,读取并展示URL内容;
3).fsockopen()
,使用socket
与服务器建立连接,进行数据传输; -
SSRF 利用协议:
http://
,file://
,dict://
,gopher://
等;
①. 例:http://127.0.0.1/Testing/pikachu-master/vul/ssrf/ssrf_curl.php?url=http://www.baidu.com/路径 加载外部资源;
②. 例:http://127.0.0.1/Testing/pikachu-master/vul/ssrf/ssrf_curl.php?url=file://文件绝对路径名 读取文件内容;
③. 例:http://127.0.0.1/Testing/pikachu-master/vul/ssrf/ssrf_curl.php?url=dict://ip:port | dict://ip:port/命令 获取端口信息(通过响应时间判断端口开放情况);
④. 例:http://127.0.0.1/Testing/pikachu-master/vul/ssrf/ssrf_curl.php?url=gopher://IP:port/_{TCP/IP数据流} 传输文本信息
⑤. PS:在使用Gopher
协议发送POST
请求包时,Host
、Content-Length
和Content-Type
请求头是必不可少的,但在GET
请求中可以没有。 -
危害(攻击方式:对内网攻击,利用协议攻击):
1). 对受害者主机所在的内网进行 主机发现,端口扫描和服务探测;
2). 攻击运行在 内网的应用程序 和 内外网的web应用;
3). 利用file
协议,读取其本地文件;
4). 利用其他协议进行恶意攻击; -
SSRF 可以攻击的内网应用有
redis
,fast-cgi
和thinkphp
; -
SSRF 攻击内网 redis 服务 getshell 的几种方式:
- Windows 系统:
1). 写入 webshell;
2). 计划任务反弹 shell; - Linux 系统:
1). 写入 SSH 公钥;
2). 主从复制;
3). 沙盒命令执行;
- Windows 系统:
-
SSRF 攻击内网 redis 可以利用的协议:
http
和gopher
; -
过滤绕过方式: 回环地址短地址,@替换分隔符,添加端口和后缀,最后编码重定向;
1). 回环地址替换绕过:127.0.0.1 替换为localhost或其他编码;
2). URL短地址绕过:http://127.0.0.1 替换为 http://mtw.so/5zmAOm
3). 利用 @(或 ?)绕过:限制了必须有某个URL(http://www.xxx.com),http://www.xxx.com@(或?)127.0.0.1
4). 分隔符替换绕过:127.0.0.1 替换为 127。0。0。1
5). 添加端口绕过:127.0.0.1:3306
6). 添加后缀绕过:127.0.0.1.xip.io 或127.0.0.1.nip.io
7). URL编码绕过:限制请求不为内网地址,127.0.0.1替换为2130706433
8). 重定向绕过:使用网站生成重定向URL,重定向到需要访问的站点;
①. POC:<?php header("location:http://127.0.0.1:80/flag.php"); exit();?>
②. POC放于目录下,ip访问:例192.168.3.16/2.php 会进行跳转; -
CSRF与SSRF的区别:
- CSRF 是跨站请求伪造,SSRF 是服务端请求伪造; (定义)
- CSRF 针对的是用户的操作,SSRF 针对的是服务端能访问的资源; (针对目标)
- CSRF 需要登录,SSRF 无需登录; (是否登录)
- CSRF 欺骗客户端发起请求,SSRF 欺骗服务端发起请求;(本质)
-
如何挖掘SSRF漏洞:寻找该服务器能访问 其他服务器资源的功能点;如下载,收藏,分享,翻译,加载等;
-
SSRF 防御方案:
1). 禁用协议;
2). 限制内网IP和请求端口;
3). 过滤返回信息;
4). 统一错误信息; -
SSRF 常与什么漏洞一起利用:信息泄露(
http
),文件包含(file
) 和 命令执行(dict,gopher
); -
SSRF 漏洞和 URL 跳转漏洞的区别:
SSRF 漏洞 URL 跳转漏洞 请求方(决定性) 跳板服务器的 IP 地址 本机的 IP 地址 页面是否跳转 不会跳转 会跳转 -
Google语法挖掘SSRF漏洞
inurl:?url= inurl:?share= inurl:?wap= inurl:?src= inurl:?source= inurl:?target= inurl:display= inurl:sourceURL= inurl:imageURL= inurl:domain=
-
免责声明
-
本专栏内容仅供参考,不构成任何投资、学习或专业建议。读者在参考本专栏内容时,应结合自身实际情况,谨慎作出决策。
-
本专栏作者及发布平台尽力确保内容的准确性和可靠性,但无法保证内容的绝对正确。对于因使用本专栏内容而导致的任何损失,作者及发布平台概不负责。
-
本专栏部分内容来源于网络,版权归原作者所有。如有侵权,请及时联系我们,我们将尽快予以处理。
-
读者在阅读本专栏内容时,应遵守相关法律法规,不得将内容用于非法用途。如因读者行为导致不良后果,作者及发布平台不承担任何责任。
-
本免责声明适用于本专栏所有内容,包括文字、图片、音频、视频等。读者在阅读本专栏内容时,视为已接受本免责声明。
-
作者及发布平台保留对本免责声明的解释权和修改权,如有变更,将第一时间在本专栏页面进行公告。读者继续使用本专栏内容,视为已同意变更后的免责声明。
敬请广大读者谅解。如有疑问,请联系我们。谢谢!