HTTP协议是一种什么协议_简述HTTP协议的工作原理

HTTP协议是一种什么协议_简述HTTP协议的工作原理Gopher协议是一种早期的互联网协议,用于在网络上获取文本信息

HTTP协议是一种什么协议_简述HTTP协议的工作原理"

什么是gopher协议

Gopher协议是一种早期的互联网协议,用于在网络上获取文本信息。它于1991年提出,旨在提供一种简单、高效的方式来浏览和访问文件。

Gopher协议使用类似于文件系统的层次结构来组织数据,其中每个项目都有一个唯一的标识符。通过Gopher客户端软件,用户可以浏览目录并选择下载或查看文件。Gopher服务器可以提供文本文件、图像文件、二进制文件等。

与HTTP相比,Gopher协议具有更简单的设计和较少的功能。它基于传输控制协议(TCP)进行通信,默认端口号为70。然而,随着万维网的崛起和HTTP的普及,Gopher协议逐渐被取代。


利用

利用gopher协议可以攻击内网的 Redis、Mysql、FastCGI、Ftp 等,也可以发送 GET、POST 请求,这可以拓宽 SSRF 的攻击面。


语法

gopher协议的格式通常为:

gopher://hostname:port/请求方法(get、post等)/path

其中,hostname 表示 Gopher 服务器的主机名或 IP 地址,port 表示 Gopher 服务器监听的端口号(默认为 70),而 path 则是资源的路径。

举个例子

  1. 要请求 Gopher 服务器上的 /example/file.txt 文本文件,可以使用以下 URL 格式:
gopher://example.com:端口/example/file.txt
  1. 在本地主机的80端口上使用Gopher协议的GET方法访问一个资源:
gopher://127.0.0.1:80/_GET /index.php HTTP/1.1

/_GET /index.php HTTP/1.1 表示使用 GET 方法请求位于 /index.php 的资源,并且使用 HTTP 1.1 协议版本

  1. 对于POST请求,可以抓包后使用以下脚本将数据包转换为gopher协议格式:
import urllib.parse

payload = """ POST /被渗透页面.php HTTP/1.1 Host: 127.0.0.1 Content-Type: application/x-www-form-urlencoded Content-Length: 36 key/cookie等等=xxx #用于身份验证或授权 """

# 对payload中的特殊字符进行编码
tmp = urllib.parse.quote(payload)

# 将换行符%0A替换为回车换行符%0D%0A,以利用CRLF漏洞
new = tmp.replace('%0A','%0D%0A')

# 构建Gopher URL
result = 'gopher://127.0.0.1:80/'+'_'+new

# 对新增的部分继续编码
result = urllib.parse.quote(result)

print(result)

实战

实战参考:

[CTF/网络安全] 攻防世界 very_easy_sql 解题详析(gopher协议+ssrf漏洞sql注入+盲注脚本)


总结

以上为gopher协议原理、语法及利用总结,读者可躬身实践。

我是秋说,我们下次见。

今天的文章HTTP协议是一种什么协议_简述HTTP协议的工作原理分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/85027.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注