CTF/웹해킹

[angstromCTF] Consolation - 웹해킹 / 자바스크립트

SecurityMan 2022. 3. 17. 16:16

 

웹 해킹 문제이다.

 

보통 CTF 문제들은 제목이나 문제 설명 부분이 큰 힌트가 되는 경우가 많다.

 

이 문제같은경우 살짝 꼬아놨는데 문제 이름인 Consolation 은 '위로' 라는 뜻이다.

 

문제 설명도 보면

 

I've been feeling down lately.. Cheer me up! 이라면서 뭔가 위로를 바라는것 같다.

 

조금뒤에 보면 알겠지만 이 문제의 의도는 'Consol' ation 이다.

 

다시말해 '콘솔' 창을 활용해서 풀라는 것이다. Consolation 이라는 단어로 위장한것 뿐이다.

 

'콘솔'창을 이용해서 문제를 푸는것은 Root Me 문제풀이에서 한번 다룬적이 있다.

* 링크 : https://hackingstudypad.tistory.com/36

 

[Root Me] Javascript - Native code - 웹해킹 / 자바스크립트

Javascript - Native code 문제 15점짜리 문제이다. 문제 이름이 조금 바꼈는데 사실상 Obfuscation3 라고 봐도 무방할것 같다. 비슷한 유형의 난독화 문제이다. 문제페이지에 접속하면 또 이렇게 비밀번호

hackingstudypad.tistory.com

이 문제랑 거의 비슷하다고 보면 된다.

 

문제페이지에 들어가면 맨위에 $0 라고 달러 표시가 되어있고

 

밑에는 큼지막한 버튼이 하나 있다.

 

pay me some money 라고 적혀있는데, 이 버튼을 한번 누를때마다

 

$25씩 위에있는 돈이 늘어나게 된다.

 

돈을 줘서 위로해달라는것 같다..

 

반응형

 

f12를 눌러 개발자도구를 통해 웹 소스를 본다.

 

<button onclick="nofret()" ~~>

이라는 부분이 맨 앞쪽에 본인다.

 

해석하자면 "버튼이 클릭될때마다 nofret() 이라는 함수를 실행해라" 정도가 된다.

 

밑에는 

<scritp src="iftenmillionfireflies.js"></script>

라고 이 웹페이지에서 동작할 자바스크립트 코드를 불러오고 있다.

 

참고로 if ten million fireflies 는 Owl city 라는 밴드의 Fireflies 노래의 가사 일부이다.

 

크게 의미는 없는것 같다.

 

iftenmillionfireflies.js 파일을 개발자도구로 열어보면 

이렇게 nofret() 함수가 보이는데 

 

안쪽의 내용이 완전 난독화되어서 도대체 어떤 일을 수행하는지 알 수가 없다.

 

실제로 콘솔창에 위의 코드 전체를 복사 붙여넣기 후 실행시켜도 아무런 일도 일어나지 않는다.

 

이유는 간단하다.

 

난독화된 코드 맨 뒤를 보면

console['clear']();

라는 부분이 보인다.

 

console['clear'] 해버리면 콘솔창에 있는 내용이 모두 지워지게 된다.

 

그래서 실행을 시켜도 아무것도 보이지 않았던 것이다.

 

그럼 저부분만 지워보면..?

 

플래그를 획득할 수 있다.

반응형