gopher 初探

简介: gopher 初探

gopher协议

简介

Gopher是Internet上一个非常有名的信息查找系统,它将Internet上的文件组织成某种索引,很方便地将用户从Internet的一处带到另一处。在WWW出现之前,Gopher是Internet上最主要的信息检索工具,Gopher站点也是最主要的站点,使用tcp70端口。但在WWW出现后,Gopher失去了昔日的辉煌。

gopher协议支持发出GET、POST请求:可以先截获get请求包和post请求包,在构成符合gopher协议的请求。gopher协议是ssrf利用中最强大的协议

Gopher协议格式

URL:gopher://<host>:<port>/<gopher-path>_后接TCP数据流
  • gopher的默认端口是70
  • 如果发起post请求,回车换行需要使用%0d%0a,如果多个参数,参数之间的&也需要进行URL编码

发送GET请求

curl

curl www.baidu.com
-A参数指定客户端的用户代理标头,即User-Agent
-b参数用来向服务器发送 Cookie。
-d参数用于发送 POST 请求的数据体

gopher

curl gopher://192.168.10.128:70/_coleak

a.php

<?php
    echo "Hello ".$_GET["name"]."\n"
?>

发起get请求的格式

GET /a.php?name=a HTTP/1.1

Host: 192.168.10.128

URL编码

%5f%47%45%54%20%2f%61%2e%70%68%70%3f%6e%61%6d%65%3d%61%20%48%54%54%50%2f%31%2e%31%0d%0a%48%6f%73%74%3a%20%31%39%32%2e%31%36%38%2e%31%30%2e%31%32%38%0d%0a

最终格式为:

curl gopher://192.168.10.128:80/_%5f%47%45%54%20%2f%61%2e%70%68%70%3f%6e%61%6d%65%3d%61%20%48%54%54%50%2f%31%2e%31%0d%0a%48%6f%73%74%3a%20%31%39%32%2e%31%36%38%2e%31%30%2e%31%32%38%0d%0a

注意事项

1、问号(?)需要转码为URL编码,也就是%3f

2、回车换行要变为%0d%0a,但如果直接用工具转,可能只会有%0a

3、在HTTP包的最后要加%0d%0a,代表消息结束

gopher发POST请求

POST /a.php HTTP/1.1
Host: 192.168.10.128
Content-Length: 11
Content-Type: application/x-www-form-urlencoded
name=coleak

URL编码

curl gopher://192.168.10.128:80/_%50%4f%53%54%20%2f%61%2e%70%68%70%20%48%54%54%50%2f%31%2e%31%0d%0A%48%6f%73%74%3a%20%31%39%32%2e%31%36%38%2e%31%30%2e%31%32%38%0d%0A%43%6f%6e%74%65%6e%74%2d%4c%65%6e%67%74%68%3a%20%31%31%0d%0A%43%6f%6e%74%65%6e%74%2d%54%79%70%65%3a%20%61%70%70%6c%69%63%61%74%69%6f%6e%2f%78%2d%77%77%77%2d%66%6f%72%6d%2d%75%72%6c%65%6e%63%6f%64%65%64%0d%0A%0d%0A%6e%61%6d%65%3d%63%6f%6c%65%61%6b%0d%0A

目录
相关文章
|
安全 前端开发
Refused to load the image 'http://localhost:9527/favicon.ico'
Refused to load the image 'http://localhost:9527/favicon.ico'
151 0
|
10月前
Gopher协议
Gopher协议
|
应用服务中间件 网络安全 nginx
unknown directive "listen 443 ssl"
重启nginx时报错“unknown directive "listen 443 ssl"”,发生什么事了?
804 0
从telnet www.baidu.com 80 来玩一下http
从telnet www.baidu.com 80来玩一下 http 用更简单的telnet命令来玩http, 爽一下, 步骤如下: 步骤1:用win + r 打开cmd 步骤2:在cmd中执行telnet www.
58272 0
|
Apache
javax.net.ssl.SSLException:hostname in certificate didn&#39;t match
终于建了一个自己个人小站:https://huangtianyu.gitee.io,以后优先更新小站博客,欢迎进站,O(∩_∩)O~~ 现在网站用https的服务器越来越多了,在编写程序的时候往往会遇到证书验证错误。
2635 0
|
开发工具
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等