![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
原型链污染
文章平均质量分 82
主要收集原型链污染题目
_rev1ve
这个作者很懒,什么都没留下…
展开
-
ejs默认配置 原型链污染
我们已经知道当编译模板时,它会使用多个配置元素来处理模板中的代码片段,并将其转换为可执行的 JavaScript 函数。不过其中大多数都使用。因此,对于用户提供的对象来说情况并非如此,从 EJS 维护者的角度来看,用户向库提供的输入不是 EJS 的责任。所有这些都发生在最终被调用的 Template 类的编译函数中,在这种情况下,当创建模板对象时,将使用受感染的选项。路由下,接收GET参数并赋值给data变量,然后黑名单检测,调用ejs模板进行渲染其中解析data的json数据,说明ejs配置可控。原创 2024-01-06 18:06:54 · 1163 阅读 · 3 评论 -
[NSSRound#8 Basic]ez_node
如果找到了package.json文件,函数将返回一个包含data和path属性的对象。总结来说,在require非原生库的过程中,最终会去调用PkgPath和pkg.exports拼接起来的字符串所指定的文件。回到题目,我们可以尝试污染模块err.js中的getRandomErr()函数,然后再调用的时候即可实现rce。路由下,首先进行merge函数污染,然后require导入err.js模块的getRandomErr()函数。题目是express框架,首先给了merge函数可以用来原型链污染;原创 2023-12-17 13:49:49 · 508 阅读 · 0 评论 -
Undefsafe 模块原型链污染(CVE-2019-10795)
Undefsafe 是 Nodejs 的一个第三方模块,其核心为一个简单的函数,用来处理访问对象属性不存在时的报错问题。也就是说当undefsafe()函数的第 2,3 个参数可控时,我们便可以污染 object 对象中的值。在编程时,代码量较大时,我们可能经常会遇到类似情况,导致程序无法正常运行,发送我们最讨厌的报错。可以知道引入undefsafe模块,由前文可以知道是存在原型链污染漏洞(CVE-2019-10795),那么我们来分析如何利用漏洞来实现rce的。那么如果访问不存在的属性呢,修改部分代码。原创 2023-12-19 11:41:52 · 393 阅读 · 0 评论 -
[GKCTF 2021]easynode
要想得到token就必须登陆成功,我们注意到遍历黑名单进行匹配是弱等于,那么我们可以用数组绕过,但是后面调用substr会报错。username和password参数都需要验证,限制截取长度为20,然后进行sql语句查询返回结果。接收POST传参用户和密码,但是会经过safeQuery()函数处理,如果result[0]不为空则登陆成功返回token。符号,用foreach遍历黑名单去进行匹配,如果匹配到则替换成。本题是ejs模板注入,而addDIV是这样定义的。,然后key又是由data决定,也就是。原创 2023-12-28 12:10:06 · 651 阅读 · 0 评论 -
[西湖论剑 2022]real_ez_node
存在 Unicode 字符损坏导致的 HTTP 拆分攻击,(Node.js10中被修复),当 Node.js 使用 http.get (关键函数)向特定路径发出HTTP 请求时,发出的请求实际上被定向到了不一样的路径,这是因为NodeJS 中 Unicode 字符损坏导致的 HTTP 拆分攻击。补充说明:CRLF指的是回车符(CR,ASCII 13,\r,%0d) 和换行符(LF,ASCII 10,\n,%0a)时,path被分成两部分,props数组如下。原创 2023-11-11 21:41:03 · 519 阅读 · 0 评论