SSRF简介
SSRF(Server-Side Request Forgery:服务器端请求伪造)是攻击者利用服务端为外部提供服务的机器的漏洞,访问服务器端的内网服务。
前置知识
RESP协议
Redis
服务器与客户端通过RESP
(REdis Serialization Protocol)协议通信。
RESP协议是在Redis 1.2中引入的,但它成为了与Redis 2.0中的Redis服务器通信的标准方式。这是您应该在Redis客户端中实现的协议。
RESP实际上是一个支持以下数据类型的序列化协议:简单字符串,错误,整数,批量字符串和数组。
RESP在Redis中用作请求 - 响应协议的方式如下:
- 客户端将命令作为
Bulk Strings
的RESP数组发送到Redis服务器。 - 服务器根据命令实现回复一种RESP类型。
在RESP中,某些 RESP
的类型取决于第一个字节:
- 对于
Simple Strings
,回复的第一个字节是+
- 对于
error
,回复的第一个字节是-
- 对于
Integer
,回复的第一个字节是:
- 对于
Bulk Strings
,回复的第一个字节是$
- 对于
array
,回复的第一个字节是*
- 此外,
RESP
能够使用稍后指定的Bulk Strings
或Array
的特殊变体来表示Null
值。 - 在RESP中,协议的不同部分始终以"\r\n"(CRLF)结束。