[WEB安全] SSRF 利用 Gopher 协议拓展攻击面【转载】
0x01 概述
Gopher 协议可以做很多事情,特别是在 SSRF 中可以发挥很多重要的作用。利用此协议可以攻击内网的 FTP、Telnet、Redis、Memcache,也可以进行 GET、POST 请求。这无疑极大拓宽了 SSRF 的攻击面。
gopher协议支持发出 GET、POST 请求:可以先截获 get 请求包和 post 请求包,再构造成符合 gopher 协议的请求。 gopher 协议是 ssrf 利用中一个最强大的协议(俗称万能协议)
Gopher 协议是 HTTP 协议出现之前,在 Internet 上常见且常用的一个协议。在 ssrf 时常常会用到 gopher 协议构造 post 包来攻击内网应用。其实构造方法很简单,与 http 协议很类似。不同的点在于 gopher 协议没有默认端口,所以需要指定 web 端口,而且需要指定 post 方法。回车换行使用 %0d%0a
。注意 post 参数之间的 &
分隔符也要进行 url 编码
基本协议格式:
URL:gopher://<host>:<port>/<gopher-path>_TCP数据流
简单举例:
$nc -lvvp 2222
$curl gopher://127.0.0.1:2222/_hello%0agopher
#注意如果在地址栏利用payload时要再进行一次url编码
http://127.0.0.1/ssrf.php?url=gopher://127.0.0.1:2222/_hello%250agopher
0x02 拓展攻击面
BerL1n 师傅总结的很好:https://blog.csdn.net/qq_41107295/article/details/103026470
----------------------------------------------------------------------------
作者:肖洋肖恩、
----------------------------------------------------------------------------
文中可能会存在纰漏,若发现请联系与我。
本文所有代码仅可用于站长自我检测与学习,如用于非法攻击一切后果自负。