前言
第一次做RedpwnCTF出的题目,题目基本都是node的后台感觉还不错。
blueprint的题目描述:
1 | Written by: ginkoid |
题目给出了源码解压后如下:
1 | const crypto = require('crypto'); |
阅读源码发现此处代码易受攻击
1 | parsedBody = _.defaultsDeep({ |
由于defaultsDeep是属于lodash模块的,因此查看package.json,观察到lodash的版本小于4.17.15,易受原型链的污染。
1 | { |
可以用下面的方式进行原型链的污染
1 | const mergeFn = require('lodash').defaultsDeep; |
最终的脚本如下
1 | import requests |