Linux内核权限提升漏洞

news2024/11/28 11:45:16

SSRF检测的一些思考

DNS平台没有立刻收到请求,是在之后的某个时间段收到了不同的请求信息,这至少表明了一点,此处存在有无回显的SSRF,虽然想要证明有更大的危害比较困难,但是至少说明了存在有SSRF的风险,所以接下来就探究下其原理。

Cracking the lens

项目首页也有介绍,其是根据Cracking the lens’s Research写出来的。以笔者不到四级的英语,勉强可以理解作者是通过构造畸形的HTTP请求、佐以特殊的请求头,使的服务器处理时出现问题,从而请求到自定义的服务器上。听起来似乎很简单,实际利用时也确实如此工具collaborator-everywhere,比起英文,代码要好理解一些。其定义了注入点以及payload的形式

其会对请求进行处理,在每次请求中添加上述payload

可以注意到无论注入点是什么,都会加入一个请求头Cache-Control: no-transform,该字段主要作用是控制缓存,而no-transform的意思为无论什么情况,都不对请求响应做任何处理。加入这个字段是为了防止在传输中请求被处理,从而导致无法正常进行检测。经过处理后的请求头看起来是这样的

【一>所有资源获取<一】 1、网络安全学习路线 2、电子书籍(白帽子) 3、安全大厂内部视频 4、100份src文档 5、常见安全面试题 6、ctf大赛经典题目解析 7、全套工具包 8、应急响应笔记

到目前为止其实已经可以发现SSRF了,不过只有访问记录还不够,还需要将触发请求-访问记录关联起来,贴一张作者检测出的结果

它会循环的去检测collaborator是否有收到请求,然后将请求及其产生原因展示出来

至此,该工具实现原理算是明白了,不过很显然比起文章中所介绍的,它的注入点只涵盖了header字段,而Blind-SSRF可以看作是它的补充

Blind-SSRF

可以把它的模板分为三种类型的:

1.增加特定请求头
2.修改Host字段
3.对URL进行处理

增加请求头这一点其实不用多说什么,与上文一样,不同之处在于其采用了一个请求增加一个字段的方式,它的一个请求包看起来是这样的

WL-Proxy-Client-IPX-Forwarded-For类同,一般情况下是用来获取客户端IP的。

针对后两种的处理则是要复杂不少,其一般都是逻辑处理失误所导致的问题,例如原文中提到的例子

Url backendURL = "http://public-backend/";
String uri = ctx.getRequest().getRawUri();

URI proxyUri;
try {
proxyUri = new URIBuilder(uri).setHost(backendURL.getHost()).setPort(backendURL.getPort()).setScheme(backendURL.getScheme()).build();
} catch (URISyntaxException e) {Util.sendError(ctx, 400, INVALID_REQUEST_URL);return;
} 

Apache HttpComponents 4.5.1版本时它并不会检测uri是否是/开头的,这意味着我们可以通过构造畸形的HTTP请求,从而访问到指定backendURL外的地址,例如:

经过拼接后获取到的proxyUri其实就是http://public-backend@host这样的形式了,@前的public-backend会被当作用户名,而真正请求的地址则是uri中指定的host

Burp4SSRF

前文中的两个工具已经可以检测出SSRF了,但是还存在些许缺陷:

  • collaborator-everywhere 情况覆盖不全面、此外其把请求中的referer等直接修改后有时会导致请求出错* blind-ssrf 不能直观的展示出漏洞情况针对这些问题,笔者决定对collaborator-everywhere做一个简单的修改,让它覆盖面更广,同时采用被动扫描的方式,防止对正常请求造成影响。

首先是请求方式的修改,这个就很简单了,只需要将原先的继承自IProxyListener改为IScannerCheck即可,前者表明在请求进行时对请求做处理,而后者则是交给主动或被动扫描器进行处理,更改之后的扫描逻辑就在InjectordoPassiveScan函数当中了

injectPayloadsheaderparam注入到request中后,使用makeHttpRequest函数发送请求。

除此之外就是对Host以及uri作为注入点时的处理,这里新加入了一个injectAnyWhere函数

在处理完常规注入点后,剩下的raw以及host单独进行处理,这里的raw是从请求包的第一行开始进行替换,因为这两种类型都会对请求体造成不可逆的影响,所以此处对每一个payload都发送一次请求,而不是像前一种情况,所有payload整合之后一次发送。至此已经解决了最开始的几个问题,实际使用后的结果:

总结

这并不是一项新的技术,但是在实际渗透中往往会有意想不到的收获 目前只是简单的改进了下原有的工具,下一步要做的事还有很多,比如Burp自带的DNSLog有时会抽风,再比如通过burp日志查看请求时会发现某些畸形请求无法查看……不过方法总比困难多。

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

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

相关文章

Maven 命令之将本地 Jar 包安装到 Maven 本地仓库

1、前言 Maven 是 Java 平台下的一款项目构建和依赖管理的自动化管理工具。 通过 Maven 远程仓库地址我们可以方便的管理 Jar 依赖包&#xff0c;但是在实际项目中有时候存在远程仓库中没有的 Jar 包&#xff0c;我们在项目中又必须要使用它&#xff0c;那就需要把本地 Jar 添…

HC-SR04超声波传感器使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、关于HC-SR04二、使用步骤1.确保驱动已经安装2.安装GPIO工具3.安装GPIO的Python支持4.Python3代码总结前言 最近在做一个项目&#xff0c;需要用到超声波传感…

誉辰智能拟科创板上市:欲募资4亿元,毛利率、研发费用率均下滑

近日&#xff0c;深圳市誉辰智能装备股份有限公司&#xff08;下称“誉辰智能”&#xff09;在上海证券交易所更新招股书&#xff08;申报稿&#xff09;&#xff0c;披露时间为2023年1月7日&#xff0c;准备在科创板上市。据贝多财经了解&#xff0c;誉辰智能曾于2022年6月29日…

解决SpringBoot项目整合Sharding-JDBC后启动慢的问题

一、问题描述线上某一项目以jar包的方式发布&#xff0c;需要健康检查&#xff0c;若15次健康检查页面状态均为非200则健康检查失败&#xff0c;就会导致tomcat服务加载失败。前几天版本迭代&#xff0c;发布该项目时&#xff0c;因最后一次健康检查的时间比启动完成时早&#…

练习时长两年半的tcp三次握手

1、TCP是什么&#xff1f;TCP是面向连接的协议&#xff0c;它基于运输连接来传送TCP报文段&#xff0c;TCP运输连接的建立和释放&#xff0c;是每一次面向连接的通信中必不可少的过程。TCP运输连接有以下三个阶段&#xff1a;建立TCP连接&#xff0c;也就是通过三报文握手来建立…

Oracle打补丁

oralce打补丁 打补丁前提&#xff1a; 一、备份数据库 二、将oracle服务全部停掉 1、查看opatch的版本号 1.1、环境变量配置ORACLE_HOME 1.2、运行opatch version命令&#xff0c;查看opatch的版本号 备注&#xff1a;网上查看opatch的版本号对应的oracle是否匹配&#xff0c;…

【分治策略】查询中位数最接近点对

查询中位数给定线性序集中n个元素和一个整数k 【k(n1)/2】&#xff0c;要求找出这n个元素中第k小的元素&#xff0c;即找中位数。线性序列没有排序,没有重复值。已知快速排序划分时一个划分基准数的位置在确定后&#xff0c;在之后排序中是不会变的。利用此特性&#xff0c;以下…

dataphin如何使用zip文件,离线安装python第三方包?

好久没写文章啦&#xff0c;快过年了啦&#xff0c;打工人要回家啦 背景介绍&#xff1a; 每次在dataphin里使用pandas的时候&#xff0c;都要pip install pandas。dataphin需要下载pandas安装包&#xff0c;比较费时。总而言之&#xff0c;这种方式慢。 所以我要在dataphin的…

【手写 Vue2.x 源码】第十四篇 - 生成 ast 语法树 - 模板解析

一&#xff0c;前言 上篇&#xff0c;主要介绍了生成 ast 语法树-正则说明部分&#xff0c;涉及以下几个点&#xff1a; 简要说明了 HTML模板的解析方式对模板解析相关正则说明和测试 本篇&#xff0c;生成 ast 语法树-代码实现 二&#xff0c;模板解析 模板解析的方式&…

22. 听说你想要用爬虫采集我的手机号?哎 ~ 我展示用的是图片

本篇博客我们实现图片渲染手机号码案例&#xff0c;用于防止爬虫直接采集文字信息。 爬虫训练场 本案例实现的效果如下所示 文章目录bootstrap5 实现名片样式卡片补充数据生成逻辑生成用户 5 个汉字的昵称调用头像 API&#xff0c;生成图片将手机号码生成图片bootstrap5 实现名…

菜鸡二次封装element中table表单

实现效果如下封装的table表单<template><el-table:span-method"arraySpanMethod":header-cell-style"rowClass":cell-style"cellStyle":data"tableData"style"width: 100%; height: 100%">//暂无数据展示<te…

汤姆斯的天堂梦(C++,Dijkstra)

题目描述 汤姆斯生活在一个等级为 000 的星球上。那里的环境极其恶劣&#xff0c;每天 121212 小时的工作和成堆的垃圾让人忍无可忍。他向往着等级为 NNN 的星球上天堂般的生活。 有一些航班将人从低等级的星球送上高一级的星球&#xff0c;有时需要向驾驶员支付一定金额的费…

【跟月影学可视化】学习笔记 41 篇(完结)

说明 【跟月影学可视化】专栏学习笔记。 个人学习笔记源码&#xff1a;https://github.com/kaimo313/visual-learning-demo 一共做了 162 个学习示例以及 41 篇博客学习笔记&#xff0c;要深入学习该课程请支持正版&#xff0c;个人笔记仅供参考。 笔记目录 【图形基础篇…

什么是无源相干定位系统?

无源定位&#xff08;Passive Localization&#xff09;不通过发射信号来探测目标的位置&#xff0c;而是接收目标的有意、无意辐射或反射信号来实现对侦察目标的探测、定位与追踪。接收的信号可以是目标直接辐射的信号&#xff0c;也可以是外辐射源照射到目标后反射或散射的信…

网站关键词怎么优化排名(网站关键词通常可以选择哪些词)

网站核心关键词的选取需要具备哪些条件 在对网站优化的过程中&#xff0c;肯定少不了对网站关键词的选取&#xff0c;关键词的选择又是网站优化中十分重要的一步&#xff0c;那么网站在选择关键词的过程中需要遵循哪些原则呢&#xff1f;关于这个问题老张带你了解一下。 1、首…

wav文件格式分析与详解

wav文件格式分析与详解WAV文件是在PC机平台上很常见的、最经典的多媒体音频文件,最早于1991年8月出现在Windows 3.1操作系统上,文件扩展名为WAV,是WaveFom的简写,也称为波形文件,可直接存储声音波形,还原的波形曲线十分逼真。WAV文件格式简称WAV格式是一种存储声音波形的数字音…

Wijmo 2022 v2 JavaScript UI Crack

Wijmo 2022 v2 采集 by Ω578867473 添加对 Angular 14 和 React 18 的支持以及对 FlexGrid 和 FlexChart 的改进。特征 Angular 14 支持——您今天就可以开始将 Angular 14 应用程序与 Wijmo 结合使用。Wijmo 提供了大量快速、灵活的 Angular 组件&#xff0c;每个组件都有丰富…

【学Vue就跟玩一样】组件-非单文件组件的使用

一&#xff0c;什么是组件实现应用中局部功能代和资源的集合&#xff08;简单来说就是将html&#xff0c;js&#xff0c;css&#xff0c;资源整合起来的一个小盒子&#xff09;理解&#xff1a;用来实现局部(特定)功能效果的代码集合为什么&#xff1a;一个界面的功能很复杂作用…

SD卡损坏了怎么办?sd卡恢复,80%的用户都试过这些方法

SD卡作为一种外部存储设备&#xff0c;多用在数据相机、监控、手机、无人机等设备中&#xff0c;可以帮我们保存很多数据。 但是SD卡也跟其他设备一样&#xff0c;容易发生数据丢失的情况。如果SD卡损坏了&#xff0c;或者我们把里面的数据误删或者格式化&#xff0c;sd卡恢复…

MySQL--什么情况下不建议使用join查询

关于join 当需要查询两个表的交集、并集等数据时&#xff0c;除了嵌套子查询的方式外&#xff0c;还可以使用join的方式提升性能。对于MySQL的join语句&#xff0c;需要两个最基础的“角色”&#xff1a;主表即驱动表&#xff0c;关联表即驱动表。join描述的就是驱动表与被驱动…