[webhacking.kr] 34번 문제 풀이[Javascript]

최대 1 분 소요

💡 Webhacking.kr challenge(old) 34번 문제에 대한 풀이입니다.

문제

image

디버깅을 하는 문제입니다.

문제 풀이

개발자 모드로 들어가서 자바스크립트 코드를 분석합니다.

image

해당 스크립트 부분이 난독화 되어 있어서 일단 복사한 다음, 콘솔에 다시 입력해 봅니다.

image

난독화가 되어 있기 때문에 모든 코드를 읽는 것은 불가능 합니다. 해당 코드를 실행하면 debug me 라는 alert 창이 나오기 때문에 ‘debug me’나 ‘alert’ 부분부터 찾아 봅니다.

image

alert로 검색했을 때, 하나가 검색됩니다. 저부분이 지금 출력되는 부분인지 확인하기 위해서 alert(b('0x1e','14cN'));중에 b('0x1e','14cN')부분을 확인해 봅니다.

image

맞습니다. alert 부분 앞 뒤문을 전부 보면 다음과 같습니다.

  if(location[b('0x19','iUmC')][b('0x1a','6]r1')](0x1)==b('0x1b','RLUb'))
    location[b('0x1c','4c%d')]=b('0x1d','llaF');
  else 
    alert(b('0x1e','14cN'));

if 문을 기준으로 특정 조건을 만족하면 location[b('0x1c','4c%d')]=b('0x1d','llaF');를 실행하고, 아니면 alert를 실행하는 구조입니다. 현재는 alert가 수행되므로 location 부분을 실행시켜 봅니다.

image

실행하면 ‘./?Passw0RRdd=1’의 경로로 이동하면서 문제가 풀립니다.

image

댓글남기기