CTF

[*ctf] web writeup

2018-04-22  本文已影响77人  ckj123

小菜鸡又来更新writeup了
这次的web我觉得更像是逆向。。。
果然复旦的大佬都是全栈高手。。。根本就是。。

simpleweb

先贴上给的源码

var net = require('net');

flag='fake_flag';

var server = net.createServer(function(socket) {
   socket.on('data', (data) => { 
       //m = data.toString().replace(/[\n\r]*$/, '');
       ok = true;
       arr = data.toString().split(' ');
       arr = arr.map(Number);
       if (arr.length != 5) 
           ok = false;
       arr1 = arr.slice(0);
       arr1.sort();
       for (var i=0; i<4; i++)
           if (arr1[i+1] == arr1[i] || arr[i] < 0 || arr1[i+1] > 127)
               ok = false;
       arr2 = []
       for (var i=0; i<4; i++)
           arr2.push(arr1[i] + arr1[i+1]);
       val = 0;
       for (var i=0; i<4; i++)
           val = val * 0x100 + arr2[i];
       if (val != 0x23332333)
           ok = false;
       if (ok)
           socket.write(flag+'\n');
       else
           socket.write('nope\n');
   });
   //socket.write('Echo server\r\n');
   //socket.pipe(socket);
});

HOST = '0.0.0.0'
PORT = 23333

server.listen(PORT, HOST);

很简单他的意思就是让我们做一个re把data给逆出来
首先先把arr2给逆出来用取模就可以了
因为我们是倒着逆出来的所以第一个是最后一个=。=




接下来有了arr2就可以逆arr1了
知道他们之和就可以依次爆破=。=其实我觉得我这个太麻烦了。。。
发现根本不是顺序输出很奇怪
上网查了一下JS的sort函数才知道

居然是这样排序的!!!!!
然后就找到了那个数组=。=

连上nc 试了第一个发现就行=。=(骗人的吧那个 sort())

flag

Smart? Contract

wocao 又是一道源码题目。。
一道区块链的题目……不做了我太菜了

上一篇下一篇

猜你喜欢

热点阅读