漏洞挖掘 SSRF 一次很菜的SSRF低危小通杀

news2024/11/29 4:05:57

前言

一转眼貌似很长时间都没更新博客了,甚至连标题的大小和格式都有点忘了,今后应该尽量保持每周更新一次,主要是平常上课太忙了,在学校还总是不定时会刷新一些烂事,就耽误了很多时间。这篇文章用于记载我最近的一次由目标到供应链,拿到供应链弱口令,进而到后台测试未授权,最后通杀的过程,虽然最终只是一个貌似没法利用的SSRF,只能完成一个简单的带外,但起码算是体会到了一次通杀的乐趣,哈哈。

这次的通杀是一个CMS的前台漏洞,这套CMS貌似是某信创系统,因此许多国内的edu和gov都在用,一句话总结漏洞成因就是由于上传接口未作鉴权,导致“远程抓取图片”功能可以被普通游客使用,前台默认是不允许添加不带域名的url,但是通过抓包可以绕过这个小限制,进而把服务端的请求带到我们自己的主机上。下面我将再次模拟回到最初的渗透测试情境,与大家一起复盘这次测试过程。

测试过程

本次测试过程写的比较详细,包括了从最初发现特征,提取指纹,查找供应链,到最终供应链渗透,进而通杀,希望通过这次的过程为大家和我自己增长经验,提供思路。

CMS特征提取,指纹发现

  1. 与往常一样,从fofa中找一些资产,想测试一波, 我本人测试的习惯一般都会根据ip地址来避开站群系统,寻找其他ip的边缘资产,因为这种资产一般相较于站群系统,资产较为脆弱。

  2. 今天打开某个系统的前台网站,看起来就像普通的CMS站点一样,平平无奇

    image-20240325115942779

  3. 一如既往打开F12看一下js中有没有泄露的接口

    image-20240325120039801

  4. 可以看到这个前端的js很有东西,里面的config.js和util.js里面看起来都是很有用的东西,写了许多许多的接口地址,比如config.js

    image-20240325120309620

  5. 但是经过测试发现有的接口要么访问了就是没权限,要么就是访问了之后被拦截了,估计是做了ip白名单,只能在内网访问,接下来把视角放到util.js中去,一开始看很乱,但是往下翻找找一些像url路径写法的东西看一看,于是在下面发现了ueditor的常用路径。

    image-20240325121157940

  6. 发现ueditor后一开始想着通过拼接路径,看看能不能找到ueditor的路径,然后试一试能不能摸到ueditor的controller.php,进而测试功能,但是找了半天也没找到它这个网站把ueditor具体安到哪里了,只能放弃这条攻击链

  7. 迷茫之中想到了github泄露,于是尝试一波,比如这个js的变量名(P8CONFIG.RESOURCE)貌似很奇怪,直接把它当特征搜索一下吧:到github直接搜索,左边点击code选项,选择“在代码内容中查找”,结果如下。

    image-20240325122053036

  8. 果然还是有收获的,开头第一个直接就发现了在github中有用户上传了源码,,也发现了其他用户曾经在github中归档备份的前端页面的js代码也包含这个内容,可见这套系统的普遍与通用性。

    image-20240325122249098

  9. 能看出这个用户上传源码是在六年前了,正常思路有了源码之后可以直接展开代码审计,直接由黑盒转向白盒,但是毕竟这是一套站群的cms系统,体量十分庞大,再加上github搜索到的这个源码也有年头了,或许跟网上现有的版本不符,先下载下来,继续看一下,下一个目标:找出什么系统,直接供应链打击。在github中直接浏览一下,在项目中搜索一下版权文字,例如:powerby,发现了程序供应商:

    image-20240325122907444

供应链漏洞挖掘

  1. 找到软件供应商后瞬间好说了,直接浏览官网,找一下有没有演示系统,许多cms供应商都会搭建演示系统,方便买方实际体验,进而取得好的销售效果,但是这些演示系统由于不是正式使用的系统,因此里面没有敏感或重要的内容,进而导致供应商通常会把演示系统设置为弱口令

    image-20240325123108369

  2. 发现了演示系统,和大多数系统差不多,光看前台页面已经有那味了,哈哈

    image-20240325123332012

  3. 这种演示系统一般一切设置均为默认,因此系统的后台路径什么的都是不变的,从github中看到后台页面就单纯地是/admin.php,直接访问一下,发现确实跳转到了登录界面

    image-20240325123726439

  4. OK,弱口令直接进到后台了, 可以看到功能点非常的多,接下来也就是进入了漫长的测试过程,我的步骤基本就是开着Burp的XiaYue插件,各种点点点,不过最终也没测出来哪里由未授权。。。

    image-20240325123946568

  5. 之后又想了一下,一般这种CMS系统的文件上传模块都是用网上开源的,自己二次开发,拿来直接用,就比如开头发现的ueditor和github上发现的ckeditor,于是进而到后台里看了看发布文章的上传模块,抓包,打开url发现看着貌似也像通用的

    image-20240325124155060

  6. 直接burp抓包,去掉Cookie,发现竟然还真的能用,直接越权了,但是还存在一个问题:光上传没有用,有后缀名白名单,无法造成危害。于是将目标对准“网路抓取”功能:

    image-20240325125535387

SSRF漏洞利用

  1. 一般这种都存在ssrf,我直接输入自己的OOB服务器ip试了试,发现弹窗了:

    image-20240325125705117

  2. 可见应该是做了检查,没关系,直接抓包,改包后发现正常回显,我们直接修改参数,改为自己服务器的地址,发现仍然正常回显:

    image-20240325130233890

  3. 直接打开我们的服务器,”nc -lvvp 521”开启监听521端口,若存在ssrf,那么我们的主机会收到来自对方服务器的请求

    image-20240325130330467

  4. 再次发送Payload,OK,可以看到已经收到了请求,因此ssrf证实存在,通杀GET!

    image-20240325130435214

后续

后续我尝试利用其他ssrf的扩大危害方法,但是都失败了,例如伪协议,端口探测等等,但总感觉这还有可利用的点,欢迎各位师傅们留言,互相讨论,最终也是提交了edu,小小刷了一波,哈哈哈,但是全是低危,很菜,吼吼~

image-20240325131036934

image-20240325131036934

image-20240325131055323

image-20240325131055323

总结复盘

这次的漏洞很简单,利用难度也较低,但整个由发现到通杀的过程非常有趣,这次渗透测试反映出其实挺多站群系统其实也有漏洞的,在日常的测试中多多关注前端的js,同时遇到一些可能是特征的js代码段或前端代码段,可以考虑去github中搜索,也许可以发现源码,在不断的信息收集中想办法找到程序的供应商,想办法从供应商的演示站找到漏洞,进而进行供应链打击,这是一条很不错的渗透测试思路。最后,很高兴可以与各位师傅分享,欢迎大家对我的文章和思路进行批评和指导,感谢阅读~

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

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

相关文章

深入理解MD5算法:原理、应用与安全

title: 深入理解MD5算法:原理、应用与安全 date: 2024/4/11 20:55:57 updated: 2024/4/11 20:55:57 tags: MD5算法数据安全哈希函数摘要算法安全漏洞SHA算法密码学 第一章:引言 导言 在当今数字化时代,数据安全和完整性变得至关重要。消息…

gradio简单搭建——关键词简单筛选【2024-4-11优化】

gradio简单搭建——关键词简单筛选[2024-4-11 优化] 新的思路:标签自动标注界面搭建优化数据处理与生成过程交互界面展示 新的思路:标签自动标注 针对通过关键词,在文本数据中体现出主体的工作类型这一任务,这里使用展示工具grad…

Claude使用教程

claude 3 opus面世后,网上盛传吊打了GPT-4。网上这几天也已经有了许多应用,但竟然还有很多小伙伴不知道国内怎么用gpt,也不知道怎么去用这个据说已经吊打了gpt-4的claude3。 今天我们想要进行的一项尝试就是—— 用claude3和gpt4&#xff0c…

猝不及防 CCF-B ICPP 2024投稿延期至4月22日提交摘要 机会来了别错过

会议之眼 快讯 第53届ICPP(International Conference on Parallel Processing)即国际并行处理会议将于 2024年 8月12日-15日在瑞典哥特兰岛举行!ICPP是世界上最古老的连续举办的并行计算计算机科学会议之一。它是学术界、工业界和政府的研究…

Vue项目页面中快速使用JSON数据格式化模块插件

页面中快速使用JSON数据格式化模块插件 JSON数据格式化模块插件,可以用来展示JSON数据,也可以验证某数据是否为JSON格式 1、可以使用 b-code-editor插件 来实现效果,方便快捷, 安装命令:npm install bin-code-editor…

suno有了新对手udio炸裂音乐圈;又一个开源AI Devin 程序员;完全开源轻量级的文本到语音可生成特定说话者的风格

✨ 1: udio 由音乐和科技界重量级人物支持的强大 AI 音乐生成器,被称为音乐界的另一个 ChatGPT。 Udio 由前 Google DeepMind的研究院和工程师创立,得到了a16z的支持,总部在伦敦和纽约。 目前是一个免费的V1测试版产品,每个人每…

docker完美安装分布式任务调度平台XXL-JOB

分布式任务调度平台XXL-JOB 1、官方文档 自己看 https://www.xuxueli.com/xxl-job/#1.1%20%E6%A6%82%E8%BF%B0 2、使用docker部署 本人使用的腾讯云,安装docker暴露一下端口,就很舒服的安装这个服务了。 docker pull xuxueli/xxl-job-admin:2.4.03…

飞书api增加权限

1,进入飞书开发者后台:飞书开放平台 给应用增加权限 2,进入飞书管理后台 https://fw5slkpbyb3.feishu.cn/admin/appCenter/audit 审核最新发布的版本 如果还是不行,则需要修改数据权限,修改为全部成员可修改。 改完…

KVM+GFS分布式存储

本章内容: 学会KVMGFS分布式存储高可用 1.0 案例环境 1.案例环境 大规模使用 KVM 虚拟机来运行业务,为了保证公司虚拟机能够安全稳定运行, 决定采用 KVMGlusterFS 模式,来保证虚拟机存储的分布部署,以及分布冗余。避…

2024.4.11

1.思维导图 2.指针形式验证大小端存储 #include<myhead.h>int main(int argc, const char *argv[]) {int num 0x12345678;char* ptr (char *)&num;if(*ptr 0x12){printf("big endian\n");}else if(*ptr 0x78){printf("little endian\n");}r…

正则表达式与JSON序列化:去除JavaScript对象中的下划线键名

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

vue源码解析——v-if和v-for哪个优先级高,如何避免两者同时使用

首先&#xff0c;官方不推荐v-if和v-for在同一个元素上使用。其次&#xff0c;如果两者同时使用&#xff0c;v-if和v-for的优先级怎么确定&#xff1f;在vue2和vue3中这两者的优先级顺序不一样。vue2是v-for优先&#xff0c;条件不存在时也会渲染多个注释节点。在vue3中进行了改…

关于01背包和完全背包问题的细节思考

01背包问题 #include<iostream> #include<stdlib.h> #include<vector> #include<cmath> int main() {int M0; //材料数int N0; //背包容量std::cin>>M>>N;std::vector<int>space(M,0);for(int i0;i<M;i) std::cin>>…

Nodejs 第六十二章(短链接)

短链接介绍 短链接是一种缩短长网址的方法&#xff0c;将原始的长网址转换为更短的形式。它通常由一系列的字母、数字和特殊字符组成&#xff0c;比起原始的长网址&#xff0c;短链接更加简洁、易于记忆和分享。 短链接的主要用途之一是在社交媒体平台进行链接分享。由于这些…

Offline RL : Efficient Planning in a Compact Latent Action Space

ICLR 2023 paper Intro 采用Transformer架构的Planning方法对马尔可夫序列重构,(et. TT)在面对高维状态动作空间&#xff0c;容易面对计算复杂度高的问题。本文提出TAP算法&#xff0c;基于Transformer的VQ-VAE&#xff0c;利用提取的状态动作在隐空间的低微特征进行Planning…

表单,表格小练习

表格练习&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document&…

创新指南|战略衡量的增长组织:用人工智能增强关键绩效指标(KPI)

传统的关键绩效指标 (KPI)越来越无法提供领导者取得成功所需的信息和见解。他们在跟踪进展、协调人员和流程、确定资源优先级以及推进问责制方面存在不足。本文是 2024 年第一份麻省理工学院 SMR - BCG 人工智能和商业战略全球高管学习和研究项目的调查结果——人工智能和业务战…

成为 Jira 大师:效率达人的必备秘诀

&#x1f525; 效率达人喜欢使用 Jira 的快捷键和命令面板&#xff0c;因为他们能够在不移动鼠标的情况下&#xff0c;快速执行各种命令和导航操作&#xff0c;从而更有效地完成 Jira 中的常见任务。 &#x1f3d6;️ 通过熟练掌握这些快捷键和命令&#xff0c;效率达人能够更…

Python+Selenium+Unittest 之Unittest5(常用装饰器-跳过用例执行)

目录 1、unittest.skip()&#xff08;跳过该装饰器下的用例&#xff09; 2、unittest.skipIf()&#xff08;跳过该装饰器下判断条件为True的用例&#xff09; 3、unittest.skipUnless()&#xff08;跳过该装饰器下判断条件为False的用例&#xff09; 4、unittest.expectedF…

qt进阶2:windows下可执行程序崩溃生成dmp,定位崩溃问题。

系列文章目录 文章目录 系列文章目录前言一、dmp文件生成二、使用步骤1.代码案例2.运行截图 前言 qt编译的可执行程序在windows下崩溃可生成dmp文件&#xff0c;用于调试定位崩溃原因。 一、dmp文件生成 略 二、使用步骤 1.代码案例 代码如下&#xff08;示例&#xff09;&…