解压附件得到web100文件
用记事本打开是部分内容乱码的script代码
修改文件名为web100.html,用浏览器打开是一个输入框和按钮,但是点击没有反应
再回来看代码,发现结尾有个eval()函数,eval是执行函数;这里eval(_)执行了_变量中的内容,猜测乱码可能与这个函数有关
把eval修改为alert,浏览器访问,弹窗显示正常
代码审计,把弹窗的代码稍微整理一下
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 _
要满足4个if正则匹配,则e包含 be0f23、233ac、e98aa、c7be9
又be0f23为开头,e98aa为结尾,组合后e=be0f233ac7be98aa
把alert修改回eval,浏览器打开在输入框输入be0f233ac7be98aa
得到flag
flag{it's_a_h0le_in_0ne}