[webhacking.kr] old-54 문제

2026. 1. 21. 23:43·워게임/webhacking.kr

1. 문제 정보

  • 문제 번호 : old -54
  • 문제 점수 : 10점

2. 문제 분석

54번 문제에 들어가면 password is 뒤에 문자가 바뀌고 마지막에 ?로 바뀐다. 

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);

XMLHttpRequest 객체를 생성하여 변수 x에 저장하고 setTimeout("answer(0)",1000);를 통해 answer를 호출한다.

aview.innerHTML = x.responseText; 부분에서 등호(=)를 사용하고 있기 때문에, 이전 글자가 누적되지 않고 새로운 글자로 계속 덮어쓰기 된다. 그래서 우리 눈에는 글자가 하나씩 지나가는 것처럼 보인다.

 


3. 풀이

  aview.innerHTML=x.responseText; <- 이걸 +=로 바꾸고 
  if(x.responseText=="") aview.innerHTML="?";를 지우고 콘솔창에 입력하면 password가 나오고 auth로 입력하면 풀린다.

GET /challenge/bonus-4/ HTTP/1.1
Host: webhacking.kr
Cookie: PHPSESSID=h5jhp4l7gatm2eda96tjphvan7; REMOTE_ADDR=112277.12.0012.12.00.12.1
Cache-Control: max-age=0
Sec-Ch-Ua: "Not(A:Brand";v="8", "Chromium";v="144"
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: "Windows"
Accept-Language: ko-KR,ko;q=0.9
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate, br
Priority: u=0, i
Connection: keep-alive
X-Forwarded-For: 1.1.1.1

 


4. 요약

 

  • 기존 자바스크립트가 innerHTML = 을 사용하여 글자를 덮어씌우는 바람에 전체 문자열을 볼 수 없었다.
  • 브라우저 콘솔에서 연산자를 +=로 수정하여 글자가 누적되도록 함수를 재정의했다.
  • 마지막에 ?로 초기화하는 부분까지 제거하여 온전한 Password 문자열을 획득했다.

 

 

'워게임 > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] old-18문제  (0) 2026.01.22
[webhacking.kr] old-26문제  (0) 2026.01.22
[webhacking.kr] old-24 문제  (0) 2026.01.20
[webhacking.kr] old-32 문제  (0) 2026.01.20
[webhacking.kr] old-14 문제  (0) 2026.01.20
'워게임/webhacking.kr' 카테고리의 다른 글
  • [webhacking.kr] old-18문제
  • [webhacking.kr] old-26문제
  • [webhacking.kr] old-24 문제
  • [webhacking.kr] old-32 문제
yt_5246
yt_5246
yt5246 님의 블로그 입니다.
  • yt_5246
    yt의 공부 블로그
    yt_5246
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 분류 전체보기 (61)
      • IT (1)
      • Security (11)
        • 시스템해킹 (3)
        • 리버싱 (6)
        • 암호학 (0)
        • tools (2)
      • Book (0)
      • 자격증 (3)
      • 워게임 (46)
        • DVWA (7)
        • WebGoat (4)
        • webhacking.kr (35)
      • 버그바운티 (0)
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
yt_5246
[webhacking.kr] old-54 문제
상단으로

티스토리툴바