ssrf之gopher协议的使用和配置,以及需要注意的细节

gopher协议

目录

gopher协议

(1)安装一个cn

(2)使用Gopher协议发送一个请求,环境为:nc起一个监听,curl发送gopher请求

(3)使用curl发送http请求,命令为

(4)使用gopher输出

(5)get请求

(6)post请求

需要注意的几个细节:


URL:gopher://<host>:<port>/<gopher-path>_ 后接TCP数据流

gopher的默认端口是70

如果发起post请求,回车换行需要使用%0d%0a,如果多个参数,参数之间的&也需要进行URL编码

(1)安装一个cn

yum install -y nc

(2)使用Gopher协议发送一个请求,环境为:nc起一个监听,curl发送gopher请求

nc启动监听,监听9527端口:

nc -lp 9527

(3)使用curl发送http请求,命令为

curl gopher://127.0.0.1:9527/abcd

输出结果为bcd

当修改为curl gopher://127.0.0.1:9527/_abcd时

输出结果为abcd

所以在执行时第一个字符会被抵消掉

(4)使用gopher输出

创建一个123.txt并输入代码为123123

在另一个终端使用gopher进行shuchu

curl http://127.0.0.1/123.txt

这里需要注意当出现403报错时需要输入 setenforce 0可以暂时得到root权限

如果说要长期得到则需要在vim /etc/selinux/config 里面将enforcing改为disabled

(5)get请求

创建一个get请求的php代码如下

<?php

echo "hello ".$_GET['name'];

?>

将如下代码进行url编码

GET /ssrf/get.php?name=HSJ HTTP/1.1

Host: 127.0.0.1

编码后的结果为

GET%20%2Fget.php%3Fname%3Droot%20HTTP%2F1.1%0d%0aHost%3A%20127.0.0.1%0d%0a%0d%0a

用gopher去执行

curl gopher://127.0.0.1:80/_GET%20%2Fget.php%3Fname%3Droot%20HTTP%2F1.1%0d%0a

Host%3A%20127.0.0.1%0d%0a%0d%0a

结果为

(6)post请求

创建一个post请求的php代码如下

<?php

echo "hello ".$_POST['name'];

?>

将如下代码进行url编码

POST /post.php HTTP/1.1

host:127.0.0.1

Content-Type:application/x-www-form-urlencoded

Content-Length:8

name=HSJ

编码后的结果为

POST%20%2Fpost.php%20HTTP%2F1.1%0d%0ahost%3A127.0.0.1%0d%0aContent-Type%3Aapplication%2Fx-www-form-urlencoded%0d%0aContent-Length%3A8%0d%0a%0d%0aname%3DHSJ

用gopher去执行

curl gopher://127.0.0.1:80/_POST%20%2Fpost.php%20HTTP%2F1.1%0d%0ahost%3A127.0.0.1%0d%0aContent-Type%3Aapplication%2Fx-www-form-urlencoded%0d%0aContent-Length%3A8%0d%0a%0d%0aname%3DHSJ

结果为

需要注意的几个细节:

1、问号(?)需要转码为URL编码,也就是%3f

2、回车换行要变为%0d%0a,但如果直接用工具转,可能只会有%0a 3、在HTTP包的最后要

加%0d%0a,代表消息结束(具体可研究HTTP包结束)

相关推荐
漠月瑾-西安17 小时前
软件忘了“擦黑板”:一次内核信息泄露事件(CVE-2024-49997)的深度剖析
网络安全·linux内核·内核安全·信息泄露·内存安全·cve漏洞分析
枷锁—sha1 天前
【CTFshow-pwn系列】03_栈溢出【pwn 073】详解:静态编译下的自动化 ROP 链构建
网络·汇编·笔记·安全·网络安全·自动化
treesforest1 天前
IP查询接口调用完全指南:从入门到企业级实战
大数据·网络·安全·网络安全·ip
网络安全许木1 天前
自学渗透测试第28天(协议补漏与FTP抓包)
运维·服务器·网络安全·渗透测试·php
其实防守也摸鱼1 天前
《SQL注入进阶实验:基于sqli-Labs的报错注入(Error-Based Injection)实战解析》
网络·数据库·sql·安全·网络安全·sql注入·报错注入
大方子1 天前
【好靶场】垂直越权任意添加用户
网络安全·好靶场
сокол1 天前
【网安-Web渗透测试-内网渗透】内网信息收集(工具)
服务器·windows·网络安全·系统安全
忡黑梨1 天前
eNSP_DHCP配置
c语言·网络·c++·python·算法·网络安全·智能路由器
X7x51 天前
ACL访问控制列表:网络安全的守护神
网络协议·网络安全·信息与通信·acl
其实防守也摸鱼1 天前
软件安全与漏洞--实验 软件安全需求分析
网络·安全·网络安全·需求分析·法律·实验·软件安全与漏洞