SSRF基础:Gopher协议发送Get和Post请求

1 篇文章 0 订阅

为了调试方便,我在win10下安装curl的工具

下载地址:https://curl.haxx.se/download.html

 

 

但目前提供的版本已经不支持gopher协议了,所以我千辛万苦找到了7.60的win64版本,支持发送gopher,dict协议

 

7.60地址:https://wws.lanzous.com/iaV55ekyfjc 点击即可下载

解压后把bin目录加入windows环境变量

 

一、什么是gopher协议?

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

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

限制:gopher协议在各个编程语言中的使用限制

--wite-curlwrappers:运用curl工具打开url流
curl使用curl --version查看版本以及支持的协议

 

Gopher协议格式

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

 

二、测试网页:

1、get请求的发送,一个简单的php网页:

<?php
$name = $_GET['name'];
echo "Hello  " . $name . "<br>";

用burpsuite抓包复制整体的http请求 

可以删除些信息,然后来用curl来测试一下,首先需要对http请求转码,添加%0d%0a

GET /ssrf/get.php?name=yanshu HTTP/1.1
Host: 192.168.0.111

gopher请求: (gopher的请求体前一定不能漏了_)
curl gopher://192.168.0.111:80/_GET%20/ssrf/get.php%3Fname%3Dyanshu%20HTTP/1.1%0D%0AHost%3A%20192.168.0.111%0D%0A

附上PY脚本,可以直接使用

import urllib
test =\
"""GET /ssrf/get.php HTTP/1.1
Host: 192.168.0.111
"""  
#注意后面一定要有回车,回车结尾表示http请求结束
tmp = urllib.parse.quote(test)
new = tmp.replace('%0A','%0D%0A')
result = '_'+new
print(result)

 请求成功:

 2、post请求

测试页面:

<?php
$name = $_POST['name'];
echo "Hello  " . $name . "<br/>";

但是如果只是简单地把GET包改成POST包发送,会出现大问题:

POST /ssrf/post.php HTTP/1.1
Host: 192.168.0.111

name = yanshu

gopher请求:
curl gopher://192.168.0.111:80/_POST%20/ssrf/post.php%20HTTP/1.1%0D%0AHost%3A%20192.168.0.111%0D%0A%0D%0Aname%20%3D%20yanshu%0D%0A

  浏览器会无法识别你的请求;

 所以想发送一个完整的POST数据包,这四个字段是不可缺少的

POST /ssrf/post.php HTTP/1.1
Host: 192.168.0.111
Content-Type: application/x-www-form-urlencoded
Content-Length: 11

name=yanshu

 注意一点:使用脚本转的时候,每次不同的content-length都是不一样的,需要修改

 

 这样就成功疗,SSRF的学习刚刚开始,开始记录一下

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值