세번째 Obfuscation 문제이다.
Obfuscation 이란 난독화를 의미한다.
공격자가 자신의 악성코드가 들키기 않기위해,
또는 개발자가 자신의 프로그램을 분석하는것을 방지하기위해 주로 사용되는 기법이다.
Obfuscation 1번 문제 : https://hackingstudypad.tistory.com/26
Obfuscation 2번 문제 : https://hackingstudypad.tistory.com/30
세번째 Obfuscation 문제 역시 페이지에 접속하면 비밀번호를 요구한다.
역시나 f12를 눌러 개발자도구를 이용해 웹 소스를 확인해본다.
뭔가 복잡한 자바스크립트 코드가 작성되어 있다.
가장먼저 dechiffre 라는 함수가 선언되어있고,
아래쪽에서 함수를 호출하고 있는 모습이 보인다.
String["fromCharCode"](dechiffre("\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"));
내가 주목한 부분은 함수 선언이 끝나고 아래쪽에 호출하는 이부분이다.
String["fromCharCode"] 함수는 아스키코드로부터 문자열을 출력해주는 함수이다.
콘솔창에서 이런식으로 테스트 가능하다.
그럼이제 dechiffre 안에 있는 hex 값이 어떤 내용인지 알아보자
cyberchef(https://gchq.github.io/CyberChef/) 라는 사이트를 이용해서 hex 값을 쉽게 디코딩할 수 있다.
디코딩 해보니 55 56 54 79 115 같은 숫자들이 나오는데
이것들은 아스키 코드인듯 하다.
이 표를 이용해서 하나씩 대입해서 풀거나,
개발자도구의 콘솔창에서 아까 이용했던 String["fromCharCode"] 함수를 이용해서
이렇게 풀어도 된다.
디코딩된 문자열이 비밀번호이다.
'워게임 > Root Me' 카테고리의 다른 글
[Root Me] CSRF - 0 protection - 웹해킹 / 크로스사이트요청위조 (84) | 2022.03.25 |
---|---|
[Root Me] XSS - Stored 1 - 웹해킹 / 크로스사이트스크립트 (56) | 2022.03.23 |
[Root Me] Javascript - Webpack - 웹해킹 / 자바스크립트 (28) | 2022.03.18 |
[Root Me] Javascript - Native code - 웹해킹 / 자바스크립트 (36) | 2022.03.16 |
[Root Me] Javascript - Obfuscation 2 - 웹해킹 / 자바스크립트 (44) | 2022.03.13 |