[webhacking.kr] 34번 문제 풀이[Javascript]
💡 Webhacking.kr challenge(old) 34번 문제에 대한 풀이입니다.
문제
디버깅을 하는 문제입니다.
문제 풀이
개발자 모드로 들어가서 자바스크립트 코드를 분석합니다.
해당 스크립트 부분이 난독화 되어 있어서 일단 복사한 다음, 콘솔에 다시 입력해 봅니다.
난독화가 되어 있기 때문에 모든 코드를 읽는 것은 불가능 합니다. 해당 코드를 실행하면 debug me 라는 alert 창이 나오기 때문에 ‘debug me’나 ‘alert’ 부분부터 찾아 봅니다.
alert로 검색했을 때, 하나가 검색됩니다. 저부분이 지금 출력되는 부분인지 확인하기 위해서 alert(b('0x1e','14cN'));
중에 b('0x1e','14cN')
부분을 확인해 봅니다.
맞습니다. 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 부분을 실행시켜 봅니다.
실행하면 ‘./?Passw0RRdd=1’의 경로로 이동하면서 문제가 풀립니다.
댓글남기기