前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Surf:一款针对现代云环境的SSRF漏洞检测和利用工具

Surf:一款针对现代云环境的SSRF漏洞检测和利用工具

作者头像
FB客服
发布2023-11-20 16:17:20
2700
发布2023-11-20 16:17:20
举报
文章被收录于专栏:FreeBufFreeBuf
关于Surf

Surf允许我们输入一个目标主机列表,工具会自动过滤主机列表,并返回可能存在SSRF漏洞的主机信息(列表)。该工具可以使用本地主机向输入列表中的每一台目标主机发送一个HTTP请求,并收集所有未响应的主机信息,然后将它们分别转储到面向外部和面向内部的主机列表,以此来实现SSRF漏洞识别。

接下来,我们就可以对这些潜在的目标主机执行进一步分析,以确认SSRF漏洞存在的准确位置。由于大多数SSRD过滤器只关注内部网络或受限的IP地址范围,但是当你无法使用本地设备并通过HTTP(S)从外部IP访问并利用SSRF时,那就会打开新世界的大门。一般来说,拥有云环境的大型组织都会为内部网络应用程序提供一个外部IP,传统的SSRF过滤器并不会关注这一点,这也就是Surf的强大之处。

工具要求

Go v1.19 httpx

工具安装

由于该工具基于Go v1.19开发,因此我们首先需要在本地设备上安装并配置好Go v1.19环境。该工具还会使用httpx来进行HTTP探测,因此我们也需要安装好httpx。

接下来,广大研究人员就可以直接使用下列命令将该项目源码克隆至本地了:

代码语言:javascript
复制


git clone https://github.com/assetnote/surf.git

或者也可以使用go命令直接安装Surf:

代码语言:javascript
复制


go install github.com/assetnote/surf/cmd/surf@latest

工具使用

假设,一个名为bigcorp.txt的文件中已经包含了bigcorp.com的子域名列表,此时你需要扫描子域名列表中可能存在SSRF漏洞的目标域名,那么我们就可以直接通过下列方法来实现扫描:

代码语言:javascript
复制
# 搜索所有可能包含SSRF漏洞的目标域名
surf -l bigcorp.txt
# 搜索所有可能包含SSRF漏洞的目标域名,并设置超时时间和并发线程数
surf -l bigcorp.txt -t 10 -c 200
# 搜索所有可能包含SSRF漏洞的目标域名,并打印所有主机信息
surf -l bigcorp.txt -d
# 搜索指向一个内部/私有IP地址的全部主机信息
surf -l bigcorp.txt -x

工具可使用的参数选项信息如下:

代码语言:javascript
复制


❯ surf -h

 

███████╗██╗   ██╗██████╗ ███████╗

██╔════╝██║   ██║██╔══██╗██╔════╝

███████╗██║   ██║██████╔╝█████╗  

╚════██║██║   ██║██╔══██╗██╔══╝  

███████║╚██████╔╝██║  ██║██║     

╚══════╝ ╚═════╝ ╚═╝  ╚═╝╚═╝         

                                 

by shubs @ assetnote                                 

 

Usage: surf [--hosts FILE] [--concurrency CONCURRENCY] [--timeout SECONDS] [--retries RETRIES] [--disablehttpx] [--disableanalysis]

 

Options:

  --hosts FILE, -l FILE  目标列表(主机地址或子域名)

  --concurrency CONCURRENCY, -c CONCURRENCY  并发线程数 [默认: 100]

  --timeout SECONDS, -t SECONDS 任务超时时间秒数 [默认: 3]

  --retries RETRIES, -r RETRIES 失败重新尝试次数 [默认: 2]

  --disablehttpx, -x     禁用httpx,仅输出地址解析为内部IP的所有主机信息 [默认: false]

  --disableanalysis, -d  禁用分析功能,仅输出主界列表 [默认: false]

  --help, -h             显示工具帮助信息和退出

工具输出

在运行Surf时,工具会将所有可能存在SSRF漏洞的目标信息打印到STDOUT,同时将结果存储在以下两个文件中:

external-{timestamp}.txt internal-{timestamp}.txt

这两个文件都会包含可能存在SSRF漏洞的目标信息列表,但外部目标列表中目标存在SSRF漏洞的可能性要高得多。

项目地址

Surf:https://github.com/assetnote/surf

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 工具要求
  • 工具安装
  • 工具使用
  • 工具输出
  • 项目地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档