secret-string-400 攻防世界

终于对JavaScript下手了

工具

谷歌浏览器

思路展开
1.解压出文件,改后缀为zip,再解压

解压后出现一个html文件(Task.html)和一个js文件(Machine.js),打开html文件可知,js文件是与之配套的。
<script type='text/javascript' src='Machine.js'></script>
点开html,提示输入字符,输入错误,则输出NOPE!
在这里插入图片描述

2.调试javascript

js 中搜索 NOPE!,没找到,那就让代码跑起来,先找到check(),接着找到run(),加一句话console.log(),调试javascripts
调试
随便输入字符,看返回
返回
发现返回函数

new 0pcode1,z,alert(1);//êObjectÿ	ÿÿÿ
alert(2);//êxÿvar f=window.machine.registers[1].userinput//
var i = f.length//
var nonce = 'groke';//
var j = 0;//
var out = [];//
var eq = true;//
while(j < i){//
out.push(f.charCodeAt(j) ^ nonce.charCodeAt(j%5))// 异或
j++;//
}//
var ex =  [1, 30, 14, 12, 69, 14, 1, 85, 75, 50, 40, 37, 48, 24, 10, 56, 55, 46, 56, 60];//
if (ex.length == out.length) {//
j = 0;//
while(j < ex.length){//
if(ex[j] != out[j])//
eq = false;//
j += 1;//
}//
if(eq){//
alert('YOU WIN!');//
}else{
alert('NOPE!');
}}else{alert('NOPE!');}//ÿ	ÿÿÿ
alert(3);//êxÿ	ÿÿÿ
alert(4);//
alert(5);//
alert(6);//
alert(7);//

脚本

n='groke'
e=[1,30,14,12,69,14,1,85,75,50,40,37,48,24,10,56,55,46,56,60]
flag=[0 for i in range(20)]
for i in range(20):
	flag[i]=e[i]^ord(n[(i%5)])
print(''.join(map(chr,flag)))

flag is: WOW_so_EASY

发布了42 篇原创文章 · 获赞 17 · 访问量 4990

猜你喜欢

转载自blog.csdn.net/weixin_45055269/article/details/105450528