본문 바로가기

SWUFORCE 워게임👊🏻

[Webhacking] web ; old-16

<워게임_Webhacking_web_old-16>

 

https://webhacking.kr/challenge/js-3/

 

1. 사이트에 들어갔더니 큰 별 1개와 작은 별 2개가 있었다.

 

 

 

2. 가장 먼저 소스코드를 봤다. 지피티의 도움을 받아 코드의 뜻을 알아보았다.

 

 

function mv(cd){ kk(star.style.left-50,star.style.top-50);
if(cd==100) star.style.left=parseInt(star.style.left+0,10)+50+"px";
if(cd==97) star.style.left=parseInt(star.style.left+0,10)-50+"px";
if(cd==119) star.style.top=parseInt(star.style.top+0,10)-50+"px";
if(cd==115) star.style.top=parseInt(star.style.top+0,10)+50+"px";
if(cd==124) location.href=String.fromCharCode(cd)+".php"; // do it! }
 
  • function mv(cd): mv라는 이름의 함수를 정의한다. 이 함수는 cd라는 매개변수를 받는다.
  • kk(star.style.left-50,star.style.top-50);:
    • star 요소의 현재 위치에서 50픽셀씩 줄인 위치로 kk 함수를 호출한다. 이 kk 함수는 랜덤 색상의 별을 화면에 추가한다.
  • if(cd==100) star.style.left=parseInt(star.style.left+0,10)+50+"px";:
    • cd가 100일 경우 (d 키), 별의 왼쪽 위치를 50픽셀 증가시킨다.
  • if(cd==97) star.style.left=parseInt(star.style.left+0,10)-50+"px";:
    • cd가 97일 경우 (a 키), 별의 왼쪽 위치를 50픽셀 감소시킨다.
  • if(cd==119) star.style.top=parseInt(star.style.top+0,10)-50+"px";:
    • cd가 119일 경우 (w 키), 별의 위쪽 위치를 50픽셀 증가시킨다.
  • if(cd==115) star.style.top=parseInt(star.style.top+0,10)+50+"px";:
    • cd가 115일 경우 (s 키), 별의 위쪽 위치를 50픽셀 감소시킨다.
  • if(cd==124) location.href=String.fromCharCode(cd)+".php"; // do it!:
    • cd가 124일 경우 (| 키), 브라우저를 |.php라는 URL로 리다이렉트한다. (| 키의 코드 124는 윈도우에서는 다른 코드일 수 있어 실제로 동작하지 않을 수 있다.)

=> 사용자가 파이프 기호 |를 입력하면, mv 함수의 cd 값이 124로 설정되고, 이 결과로 location.href가 "124.php"로 변경된다. 브라우저는 이 URL로 리다이렉트하여 페이지를 "124.php"로 이동시킨다.
<결과>
리다이렉트: 파이프 기호 |를 입력함으로써 페이지는 "124.php"로 리다이렉트 된다.
변화: 페이지의 URL이 변경되며, 브라우저는 새 URL로 이동하여 "124.php" 페이지를 로드한다. 이 페이지에서 추가적인 정보를 찾을 수 있다..

 

 

 

3. 위의 분석 결과대로 \(ㅣ)키를 눌러보았는데, 위쪽에 수많은 *들이 생성되었다. 색깔은 랜덤으로 생성되는 듯 했다.

 

 

4. w, s, a, d 키로 큰 별을 상하좌우로 이동시킬 수 있었다. 한 칸 이동시킬 때마다 오른쪽에 별이 생성되었다. 

 

- 아무래도, 파이프 기호 |를 입력함으로써 페이지는 "124.php"로 리다이렉트 해야할 것 같았는데, 3번에서 봤다시피 눌러봐도 별만 생성되고 다른 점은 없었다.

즉, 키 코드 124를 다른 방식으로 입력해야 한다는 말인데 키 코드 124는 실제로 웹 페이지에서 직접 입력하기 어렵거나 보통 키보드에서 찾을 수 없는 특수한 코드라고 한다. 키 코드 124는 대부분의 키보드에서 입력되지 않는 코드라고...

 

키 코드 124는 일반적으로 | 문자와 관련이 있지만, 키보드에서 이 문자를 입력하는 방법은 :

  • Windows: Shift + \ (백슬래시) 키를 눌러 | 문자를 입력
  • Mac: Shift + \ (백슬래시) 키를 눌러 | 문자를 입력

하지만 이 방법으로는 키 코드 124를 직접 생성할 수는 없다고 한다..

 

그러나! 자바스크립트 콘솔에서 키 코드 124를 수동으로 테스트해 볼 수 있다.

예를 들어, mv 함수에 키 코드 124를 전달하여 페이지가 어떤 동작을 하는지 확인할 수 있다.

// 콘솔에서 mv 함수 호출
mv(124);  // 124는 '|' 문자와 관련된 키 코드
 
 

 

 

5. 콘솔창에 mv(124);을 입력하고 엔터를 눌렀더니 풀렸다!!

 

 

해결 완~!!👊🏻 키 코드를 콘솔창으로 입력할 수 있구나!

'SWUFORCE 워게임👊🏻' 카테고리의 다른 글

[Webhacking] old - 03 ; web  (0) 2024.10.01
[Webhacking] old - 26 ; web  (0) 2024.10.01
[Dreamhack] LEVEL 1 ; web ; simple_sqli_chatgpt  (0) 2024.09.24
[Webhacking] web ; old-14  (0) 2024.08.10
[Webhacking] web ; old-01  (0) 2024.08.10