小菜鸡又来更新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())
flagSmart? Contract
wocao 又是一道源码题目。。
一道区块链的题目……不做了我太菜了
网友评论