반응형
풀이
페이지를 열면 9 부분자리에 Flag 값이 한자리씩 노출된다. 그런데 금방 없어져서 놓치게 된다.
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+")",20);
if(x.responseText=="") aview.innerHTML="?";
}
setTimeout("answer(0)",1000);
코드를 보면 자바스크립트로 Flag 값을 하나씩 출력시킨다.
스크립트를 조작해서 사라지지 않고 계속 값이 더해지게 만들면 될 것같다.
수정 후
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+")",20);
if(x.responseText=="") aview.innerHTML+=""; // 수정 부분
}
setTimeout("answer(0)",1000);
=
을 +=
으로 바꿔서 사라지지 않고 계속 값이 더해서 출력되게 만들었다.
FLAG{a7981201c48d0ece288afd01ca43c55b}
반응형