SSRF中伪协议学习

SSRF常用的伪协议


file:// 从文件系统中获取文件内容,如file:///etc/passwd
dict:// 字典服务协议,访问字典资源,如 dict:///ip:6739/info:
ftp:// 可用于网络端口扫描
sftp:// SSH文件传输协议或安全文件传输协议
ldap://轻量级目录访问协议
tftp:// 简单文件传输协议
gopher://分布式文档传递服务

1.file伪协议

file:// 从文件系统中获取文件内容,格式为file://[文件路径]

file:///etc/passwd   #读取文件passwd

file:///etc/hosts    #显示当前操作系统网卡的IP

file:///proc/net/arp   #显示arp缓存表(寻找内网其他主机)

file:///proc/net/fib_trie   #显示当前网段路由信息

在初始时候:SSRF其实就是A利用一个跳板B进行对C的攻击,我们在B上面执行命令:file:///proc/net/arp

通过ARP扫描出来的网段就只有几个,但是通过bp爆破端口之后,两者进行了通讯,尽管对面主机的防火墙可能会拒绝,但是在这之前,我们两台主机就已经进行了ARP请求,所以必然就能够扫描出很多的网段,这个是比较重要的点。

爆破之后,对c发送了请求,接下来就发现相比之前出来很多网段

ps:ARP(Address Resolution Protocol)是一种网络协议,用于将IP地址(Internet Protocol address)映射到MAC地址(Media Access Control address),以便在局域网中正确地发送数据帧。在计算机网络中,每个设备都有一个唯一的MAC地址和一个IP地址。MAC地址是网络接口的硬件地址,而IP地址则是逻辑地址,用于在网络上唯一标识设备。

一句话:file伪协议最主要使用在查找内网存活主机IP。

2.dict伪协议

  • dict 协议最初是为 UNIX 和类 UNIX 系统设计的,用于从远程服务器上查询词典或字典内容。
  • 在互联网上存在一些公共的 dict 服务器,允许用户通过 dict 协议查询广泛的词典资源。

直接使用dict协议扫描端口,会发现速度很快。

一句话:dict伪协议最主要查找内网主机开放端口。

3.Http伪协议

将名字进行爆破,可以查询目录

4.gopher伪协议 

Gopher 协议是早期互联网上的一种文档检索协议,与 HTTP 类似,但它更加简单和结构化。

gopher伪协议POC构造GET提交

gopher伪协议POC构造POST提交:

这样就直接返回了相应的name

希望文章能够帮助大家了解常用的SSRF的伪协议应用,谢谢!

参考资料:重启橙子科技陈腾老师----<<SSRF信息搜集>>

<think>嗯,用户现在明确要查找检测应用程序中SSRF漏洞的方法,这正好对应我之前回答末尾提出的延伸问题之一。用户还特意提供了三篇站内引用材料,看来是希望我基于这些资料给出专业解答。 从引用内容看,[1]提到了两款检测工具SSRFmap和NucleiFuzzer,[2]强调输入验证和白名单机制,[3]则详细介绍了攻击原理和伪协议利用方式。用户的需求很聚焦——不是要防护方案,而是明确要检测方法。 需要特别注意用户上次提问的背景:当时我完整解释了SSRF防御手段,现在用户沿着逻辑链深入到了漏洞检测环节。这种连续性提问说明用户可能是安全工程师或开发人员,正在系统学习Web安全防护。 梳理核心检测方法时,应该涵盖手动和自动化两类技术路线。手动测试要强调参数篡改、伪协议注入和内网探测的技巧;自动化部分则需突出引用[1]提到的工具特性对比。特别要注意的是,[3]里提到的Gopher协议利用是检测关键点,必须包含在“高级检测技术”里。 用户提供的材料中,[2]关于输入过滤的防护方案虽然不直接解决检测需求,但其中“合法URL白名单”的逆向思考可以转化为检测思路——故意触发白名单机制失效正是检测漏洞的手段之一。 最后考虑设计结构化输出:先基础后进阶,从人工测试到工具扫描,最后补充云环境特殊检测项。这样既覆盖引用材料要点,又符合用户从浅入深的学习逻辑。相关延伸问题可以设置工具实操和漏洞修复验证的题目,帮助用户建立完整知识闭环。 </think>检测应用程序中的 SSRF 漏洞需要结合手动测试与自动化工具,以下是系统化的方法体系: --- ### **一、基础检测方法** 1. **参数篡改测试** - 对接收 URL 参数的接口(如文件上传、数据导入、Webhook 回调)尝试注入以下内容: - 内网 IP(如 `http://192.168.1.1`) - 保留地址(如 `http://127.0.0.1:8080`) - 伪协议(如 `file:///etc/passwd`, `gopher://attacker.com`) - **观察响应**:若返回内网资源内容(如数据库错误、本地文件)、延迟响应或 DNS 查询,表明存在漏洞。[^3] 2. **绕过防护测试** - **DNS 重绑定**:使用短 TTL 域名(如 `http://7f000001.rbndr.us` 指向 `127.0.0.1`) - **进制转换**:将 IP 转为八进制/十六进制(如 `http://0177.0.0.1` = `127.0.0.1`) - **URL 编码**:双重编码关键字符(如 `%252f` 代替 `/`)[^3] --- ### **二、自动化工具检测** 1. **主动扫描工具** - **SSRFmap**:自动化探测漏洞并利用,支持多种协议(HTTP/S, FTP, GOPHER)和内网扫描,适用于深度测试[^1]。 - **NucleiFuzzer**:基于模板批量检测,可快速扫描大型站点,集成在漏洞管理平台(如 ProjectDiscovery)[^1]。 ```bash # Nuclei 示例命令 nuclei -t ssrf-detection.yaml -target example.com ``` - **Burp Suite Collaborator**:监听外连请求,确认盲 SSRF(无回显场景)。 2. **被动流量监控** 部署 WAF 或日志分析系统(如 ELK Stack),监控异常请求: - 目标为内网 IP 或敏感域名 - 使用非常规协议(如 `dict://`, `ldap://`) - 高频访问非常见端口(如 `3306`, `6379`)[^2] --- ### **三、高级检测技术** 1. **云环境元数据探测** 针对云服务器(AWS/Azure/GCP)测试: ```http GET http://169.254.169.254/latest/meta-data/ ``` - 若返回实例元数据(如 IAM 角色密钥),表明漏洞存在且高危。[^2] 2. **利用伪协议验证** - **Gopher 协议**:构造请求攻击内网 Redis 或 Memcached ```url gopher://127.0.0.1:6379/_*2%0d%0a$4%0d%0aINFO%0d%0a ``` - **Dict 协议**:探测端口服务 ```url dict://127.0.0.1:22/info ``` --- ### **四、修复验证方法** 完成防护措施后需验证有效性: 1. 重放漏洞 PoC 请求,确认返回 **403/400 错误**或仅限白名单域名访问[^2]。 2. 测试伪协议(如 `file://`)应被拦截或丢弃。 3. 云元数据接口请求必须返回 **空响应或拒绝访问**。 > ✅ 关键点:**检测需覆盖所有用户可控输入点**,包括 Headers(如 `X-Forwarded-For`)、JSON/XML 参数及重定向逻辑。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值