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

目录
相关文章
|
网络协议
关于mDNS
在局域网内,你要通过一台主机和其他主机进行通信,你需要知道对方的 ip 地址,但是有些时候,你并不知道对方的 ip 地址,因为一般使用 DHCP 动态分配 ip 地址的局域网内,各个主机的 IP 地址是由 DHCP 服务器来帮你分配 IP 地址的。
2444 0
|
Web App开发 监控 索引
|
开发工具
|
监控 Ubuntu Shell
|
开发工具
|
Ubuntu Shell
|
Web App开发 关系型数据库 PHP
|
Web App开发 监控 关系型数据库