1 下载打开附件
附件是一个js乱码文件
用火狐浏览器打开,得到以下界面
2 解决方法
将乱码中的eval()改成alert(),然后以html文件的格式打开,
乱码正常:
将这段js代码对齐:
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 _
拿到flag可通过两种方法:
①满足正则,长度16,内容从^到$,得到e的值:be0f23233ace98aa,输入到原始链接里面的方框中,点击ok获得flag
②在控制器运行这段代码:
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)
3 知识点
①html乱码的处理
②eval()函数
eval函数,这是执行函数;这里执行了_变量中的内容。eval()
函数并不会执行函数而只会执行标签中的内容,如果我们想要看到function函数中的内容,我们就要将eval
修改为alert
,让整个_
中的内容不被执行而仅返回代码。
https://www.w3school.com.cn/js/jsref_eval.asp
③alert()函数
alert函数可以弹出消息对话框,并且alert消息对话框通常用于一些对用户的提示信息。
另,由于alert()函数所使用的弹出框是浏览器系统对象而不是网页文档对象,因此无法通过在alert()函数中使用HTML标签来定义弹出框的样式 — HTML标签将会被原封不动的进行显示。