十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

小白必看!掌握这个网络安全技巧,轻松提升技能并收藏起来慢慢学!

小白必看!掌握这个网络安全技巧,轻松提升技能并收藏起来慢慢学! 小白必看掌握这个网络安全技巧轻松提升技能并收藏起来慢慢学本文详细解析了GraphQL接口中存在的远程代码执行RCE漏洞通过分析攻击链和核心漏洞点揭示了应用程序将用户可控的filter参数直接传递给sift查询引擎且未限制查询操作符的问题。文章深入探讨了 sift 的 $where 实现中存在的动态JavaScript编译漏洞阐述了用户如何构造恶意查询操作符最终导致服务端执行任意代码实现RCE。对于想要学习网络安全的小白来说这是一个不容错过的案例赶紧收藏起来深入理解吧声明请勿利用文章内的相关技术从事非法测试如因此产生的一切不良后果与本公众号无关。讲实话每次看到大佬们各种RCE漫天飞真的是羡慕到抠脚趾主要是羡慕这大把大把的美刀可恨这美刀的收获者不是我。话不多说直接看大佬的挖掘思路先上报告赏金不能就我一个人红了眼。整体过了一下大致的攻击链如下。│ │ GraphQL POST ▼/graphql │ │ filter: { │ $where: JavaScript代码 │ } ▼GraphQL Resolver │ │ 没有验证 / 没有过滤 ▼sift(filter) │ ▼sift $where │ │ new Function(...) ▼Node.js JavaScript执行 │ ▼RCE说实话以这种偷懒的性格估计就会止步GraphQL Resolver毕竟扫描器一把梭哈扫描到GraphQL接口然后提取未授权访问的端点就直接结束也不会咋考虑深入的问题难怪赚不到钱。该先看结果。原因分析问题的根源在于应用程序将用户可控的filter参数直接传递给了sift查询引擎同时没有对可使用的查询操作符进行限制。单纯看应用中的代码其实非常正常import sift fromsift; export default (filter, array) { if (!array) return []; return filter ? array.filter(sift(filter)) : array;};这段代码的作用是使用 sift 对数组进行过滤。例如const filter { name: admin}; array.filter(sift(filter));开发者通常会认为filter只是一个普通的JSON查询条件因此直接将用户提供的filter传入sift。但问题在于sift并不仅仅支持简单的字段匹配它还支持一系列查询操作符其中包括$where。核心漏洞点在 sift 的 $where 实现中存在如下逻辑const $where (params, ownerQuery, options) { let test; if (isFunction(params)) { test params; } else if (!process.env.CSP_ENABLED) { test new Function( obj, return params ); } else { throw new Error(...); } return new EqualsOperation( (b) test.bind(b)(b), ownerQuery, options );};其中最危险的代码是new Function(“obj”, return params)new Function() 本质上是一种动态编译 JavaScript 代码的方式。例如const fn new Function( x, return x * 2); fn(ten); 执行结果20 也就是说字符串return x * 2会在运行时被编译成一个 JavaScript 函数。那如果用户构造如下查询操作符{ $where: ...}那么 $where 的内容就会进入new Function(…)此时数据流就会变成用户可控数据 ↓filter ↓sift 查询操作符 ↓$where ↓new Function() ↓动态 JavaScript 编译如果代码运行在 Node.js 服务端环境中那么动态编译后的 JavaScript 将在服务端进程中执行从而具备进一步造成远程代码执行RCE的风险。差不多就是这样最终还是感叹一下只能看着吃大肉呀。互动话题如果你对网络攻防技术感兴趣想学习更多网安方面的知识和工具可以看看以下题外话题外话黑客/网络安全学习路线今天只要你给我的文章点赞我私藏的网安学习资料一样免费共享给你们来看看有哪些东西。网络安全学习资源分享:下面给大家分享一份2026最新版的网络安全学习路线资料帮助新人小白更系统、更快速的学习黑客技术一、2026最新网络安全学习路线一个明确的学习路线可以帮助新人了解从哪里开始按照什么顺序学习以及需要掌握哪些知识点。对于从来没有接触过网络安全的同学我们帮你准备了详细的学习成长路线图学习规划。可以说是最科学最系统的学习路线大家跟着这个大的方向学习准没问题。**读者福利 |***CSDN大礼包《网络安全入门进阶学习资源包》免费分享 *安全链接放心点击我们把学习路线分成L1到L4四个阶段一步步带你从入门到进阶从理论到实战。L1级别:网络安全的基础入门L1阶段我们会去了解计算机网络的基础知识以及网络安全在行业的应用和分析学习理解安全基础的核心原理关键技术以及PHP编程基础通过证书考试可以获得NISP/CISP。可就业安全运维工程师、等保测评工程师。L2级别网络安全的技术进阶L2阶段我们会去学习渗透测试包括情报收集、弱口令与口令爆破以及各大类型漏洞还有漏洞挖掘和安全检查项目可参加CISP-PTE证书考试。L3级别网络安全的高阶提升L3阶段我们会去学习反序列漏洞、RCE漏洞也会学习到内网渗透实战、靶场实战和技术提取技术系统学习Python编程和实战。参加CISP-PTE考试。L4级别网络安全的项目实战L4阶段我们会更加深入进行实战训练包括代码审计、应急响应、红蓝对抗以及SRC的挖掘技术。并学习CTF夺旗赛的要点和刷题整个网络安全学习路线L1主要是对计算机网络安全的理论基础的一个学习掌握而L3 L4更多的是通过项目实战来掌握核心技术针对以上网安的学习路线我们也整理了对应的学习视频教程和配套的学习资料。二、技术文档和经典PDF书籍书籍和学习文档资料是学习网络安全过程中必不可少的我自己整理技术文档包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点电子书也有200多本书籍含电子版PDF三、网络安全视频教程对于很多自学或者没有基础的同学来说书籍这些纯文字类的学习教材会觉得比较晦涩难以理解因此我们提供了丰富的网安视频教程以动态、形象的方式展示技术概念帮助你更快、更轻松地掌握核心知识。网上虽然也有很多的学习资源但基本上都残缺不全的这是我自己录的网安视频教程上面路线图的每一个知识点我都有配套的视频讲解。四、网络安全护网行动/CTF比赛学以致用当你的理论知识积累到一定程度就需要通过项目实战在实际操作中检验和巩固你所学到的知识同时为你找工作和职业发展打下坚实的基础。五、网络安全工具包、面试题和源码“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等感兴趣的同学不容错过。面试不仅是技术的较量更需要充分的准备。在你已经掌握了技术之后就需要开始准备面试我们将提供精心整理的网安面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。如果你是要找网安方面的工作它们绝对能帮你大忙。这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的如果大家有好的题目或者好的见解欢迎分享。参考解析深信服官网、奇安信官网、Freebuf、csdn等内容特点条理清晰含图像化表示更加易懂。内容概要包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…**读者福利 |***CSDN大礼包《网络安全入门进阶学习资源包》免费分享 *安全链接放心点击
返回列表