Level 54
<html> <head> <title>Challenge 54</title> </head> <body> <h1><b>Password is <font id=aview></font></b></h1> <script> function run(){ if(window.ActiveXObject){ try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch (e) { return null; } } }else if(window.XMLHttpRequest){ return new XMLHttpRequest(); }else{ return null; } } x=run(); function answer(i) { x.open('GET','?m='+i,false); x.send(null); aview.innerHTML=x.responseText; i++; if(x.responseText) setTimeout("answer("+i+")",100); if(x.responseText=="") aview.innerHTML="?"; } setTimeout("answer(0)",10000); </script> </body> </html>
페이지를 열고 시간이 좀 지나니 아래 처럼 계속 문자열이 하나씩 출력 되었다.
크롬으로 살펴보니, 1초마다 m파라미터 값을 0부터 31까지 1씩 증가시키면서 출력하고 있다.
function run(){ if(window.ActiveXObject){ try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch (e) { return null; } } }else if(window.XMLHttpRequest){ return new XMLHttpRequest(); }else{ return null; } } x=run(); function answer(i) { x.open('GET','?m='+i,false); x.send(null); aview.innerHTML=x.responseText; i++; if(x.responseText) setTimeout("answer("+i+")",100); if(x.responseText=="") aview.innerHTML="?"; } setTimeout("answer(0)",10000);
따라서 코드영역에서 필요한 부분만 추출하여 콘솔에서 m값을 0부터 31까지 추출해 내었다.
flag : f105a05dd536eff8a334c453748fc46e<