(ssrf)服务器端请求伪造漏洞总结

发布时间 2023-07-12 09:22:10作者: 小吕不忧伤

服务器端请求伪造

原理:

服务端代理用户对用户输入的URL无条件发起请求,并将response返回给用户。用户可以填写内网的任意IP以及端口,用来进行内网嗅探;

一般情况下,SSRF攻击的目标是从外网无法访问的内部系统

危害大,比较常用,杀伤力非常大,和log4j2差不多

是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般-情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统,由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制)

常见位置及挖掘思路

从WEB功能上寻找

  1. 分享:通过URL地址分享网页内容

2)转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览

  1. 在线翻译:通过URL地址翻译对应文本的内容。提供此功能的国内公司有百度、有道等

4)图片加载与下载:通过URL地址加载或下载图片

5)图片、文章收藏功能

6)未公开的api实现以及其他调用URL的功能

从URL关键字中寻找

share

wap

url

link

src

source

target

display

sourceURI

imageURL

domain

利用方法

  • 漏洞攻击:端口扫描,指纹识别,漏洞利用,内网探针等
  • 可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息;
    • //通过http等协议(端口)访问回环地址/内网地址,得到本机的信息或者内网信息
  • 攻击运行在内网或本地的应用程序(比如溢出);
  • 对内网web应用进行指纹识别,通过访问默认文件实现;
  • 攻击内外网的web应用,主要是使用get参数就可以实现的攻击(比如struts2,sqli等);
  • 利用file协议读取本地文件等。
  • 各个协议调用探针: http,file,dict,ftp,gopher协议
  • 各协议对语言的支持情况

测试方法:

burpsuite抓包 上传网络图片的功能

打开f12以便发现漏洞

在某测试服务器上搭建对应测试HTTP服务器;

在相关业务接口中填写测试服务器地址提交,查看测试HTTP服务器是否会有访问记录,若有则说明有漏洞;

防御:

禁止跳转

过滤返回信息:验证远程服务器对请求的响应。如果web应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。

禁用不需要的协议:仅允许http和https请求。可以防止类似于file://, gopher://, ftp:// 等引起的问题

设置URL白名单或者限制内网IP:使用gethostbyname()判断是否为内网IP

限制请求的端口:限制为http常用的端口,比如 80、443、8080、8090

统一错误信息:避免用户可以根据错误信息来判断远端服务器的端口状态。

绕过技巧

@

添加端口号

短网址绕过

指向任意IP的域名 xip.io

10.0.0.1.xip.io 解析为 10.0.0.1 www.10.0.0.1.xip.io 解析为 10.0.0.1

mysite.10.0.0.1.xip.io 解析为10.0.0.1

foo.bar.10.0.0.1.xip.io 解析为 10.0.0.1

IP限制绕过

十进制转换 八进制转换 十六进制转换 不同进制组合转换 协议限制绕过

实例演示: SSRF漏洞(原理&绕过姿势) - T00ls.Com