攻防世界-web:NaNNaNNaNNaN-Batman

题目描述

暂无

题目截图

image
下载后是个无后缀文件,用notepad++打开。
image
乱码的HTML JavaScript 代码,但是中间有许多乱码。

解题思路

直接修改文件后缀为.html,打开页面。
image
打开显示一个输入框,输入字符串,无反应。
打开源码,发现还是存在乱码不可见字符。
image
但是发现代码是直接eval执行字符串代码,而字符串是赋值给 _ 变量的,所以我们把 _ 变量打印到控制台看看到底执行了什么。
直接在eval( _ )前添加console.log( _ )。
image
访问修改后的网页,并查看控制台。
image
控制台输出了真实的代码,到在线js格式化网站进行格式化。
image
代码:

function $() {
	var e = document.getElementById("c").value;
	if (e.length == 16) if (e.match(/^be0f23/) != null) if (e.match(/233ac/) != null) if (e.match(/e98aa$/) != null) if (e.match(/c7be9/) != null) {
		var t = ["fl", "s_a", "i", "e}"];
		var n = ["a", "_h0l", "n"];
		var r = ["g{", "e", "_0"];
		var i = ["it'", "_", "n"];
		var s = [t, n, r, i];
		for (var o = 0; o < 13; ++o) {
			document.write(s[o % 4][0]);
			s[o % 4].splice(0, 1)
		}
	}
}
document.write('<input id="c"><button onclick=$()>Ok</button>');
delete _

分析代码,代码逻辑为输入字符串长度为16,字段里必须匹配几个字符字段,然后执行操作,打印flag,所以只用直接在控制台执行逻辑代码即可获取flag。
image

提交得分

posted @ 2021-10-16 23:59  顺时针--+  阅读(32)  评论(0编辑  收藏  举报