gopher 协议初探
1|0Gopher 协议初探
- 最近两天看到了字节脉搏实验室公众号上有一篇《Gopher协议与redis未授权访问》的文章,其中对gopher协议进行了比较详细的介绍,所以打算跟着后面复现学习一下,顺便记录一些身为菜鸡的我所遇到的比较蠢得坑
1|1Gopher协议
gopher
协议是一种信息查找系统,他将Internet
上的文件组织成某种索引,方便用户从Internet
的一处带到另一处。在WWW
出现之前,Gopher
是Internet
上最主要的信息检索工具,Gopher站点也是最主要的站点,使用tcp70
端口。但在WWW
出现后,Gopher
失去了昔日的辉煌。现在它基本过时,人们很少再使用它。- 它只支持文本,不支持图像
1|2协议访问学习
- 我们现在最多看到使用这个协议的时候都是在去
ssrf
打redis shell
、读mysql
数据的时候,由于之前对这个协议了解不是很熟,所以这次看到这篇文章后打算借此学习一下他的通信方式 - 首先最基础的看一下它如何发送
get
请求
复现环境
win10 + kali 2018 +
- 在
win10
主机使用nc
监听端口,nc -lvp 192.168.109.1:6666
- 然后用
kali
使用curl gopher://192.168.109.1:6666/_abcd
发送gopher get
请求,可以发现_
不会被显示 gopher
协议格式:gopher://IP:port/_{TCP/IP数据流}
发送http get请求
- 在gopher协议中发送HTTP的数据,需要以下三步
- 构造
HTTP
数据包 URL
编码、替换回车换行为%0d%0a
,HTTP
包最后加%0d%0a`代表消息结束- 发送
gopher
协议, 协议后的IP
一定要接端口 curl gopher://192.168.109.166:80/_GET%20/get.php%3fparam=Konmu%20HTTP/1.1%0d%0aHost:192.168.109.166%0d%0a
get.php
中写入<?php echo "Hello"." ".$_GET['param']."\n"?>
- 此外自己本地测试时要注意将防火墙关掉
发送http post请求
POST
与GET
传参的区别:它有4
个参数为必要参数- 需要传递
Content-Type
,Content-Length
,host
,post
的参数 post.php
中写入<?php echo "Hello".$_POST['name']."\n";?>
- 我这里复现的时候不知道什么原因一直无法将
post
的参数传入,最终只有这种效果
1|3小结
- 本次对于文章的学习基本对
gopher
协议有了一定的了解,对于文中后续的使用gopher
实现redis
未授权访问和ssrf
还未进一步实现,这将是后续将要完成的任务,此外还有就是复现过程中出现post
参数不能被接受的情况要想办法找一下问题原因和解决办法。 - 有师傅知道原因的也希望能指点一下
1|4参考链接
__EOF__

本文作者:Konmu
本文链接:https://www.cnblogs.com/Konmu/p/12984891.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/Konmu/p/12984891.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)