[nodejs原型链污染及绕过]校赛第四次纳新赛 bypass WP

前言

赛后自学了nodejs原型链污染后来尝试做这个题,难度不算太大,但是绕过姿势非常奇怪没见过,写一篇总结记录一下做法

wp

首先打开环境发现是一个登录框,题目有附件我们下载查看附件

最关键的就是controller.js和main.js两个文件,index.html是前端代码用处不大

代码审计

controller.js

 const fs = require("fs");//引入js模块,为flag1和flag2提供读文件操作
 const SECRET_COOKIE = process.env.SECRET_COOKIE || "this_is_testing_cookie"
 //设置SECRET_COOKIE的值,如果环境变量process.env中存在SECRET.COOKIE就把这个常量赋值为环境变量中的值,如果环境变量中没有则设置为"this_is_testing_cookie"
 const flag1 = fs.readFileSync("/flag1")//读flag1中的值
 const flag2 = fs.readFileSync("/flag2")//读flag2中的值
 ​
 //merge函数,nodejs原型链污染的关键函数,文章后面会放我对这个函数在nodejs原型链污染作用上的理解
 function merge(target, source) {
     for (let key in source) {
         if (key == "__proto__") {
             continue;//过滤了__proto__键,本题不能用__proto__来进行原型链污染,但prototype仍然可以使用
         }
         if (key in target && key in source) {
             merge(target[key], source[key])
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值