반응형

javascript 23

[HackTheBox] Canvas - MISC / Javascript Deofuscator

자바스크립트 난독화와 관련된 MISC 카테고리의 문제 MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 문제파일로 Canvas.zip 파일이 주어진다. 압축을 풀면 위에 보이는 네 개의 파일/폴더가 나온다. index.html 파일을 열어보면 이렇게 로그인 창이 하나 뜬다. 정황상 비밀번호를 알아내거나 로그인을 우회해야 할 듯 하다. F12를 눌러 개발자도구에서 HTML코드를 보니 로그인 버튼을 누르면 validate() 함수가 실행된다는 것을 알았다. 위쪽에 script 태그로 js/login.js 에서 스크립트가 실행되도록 해놓았으니 login.js 파일을 살펴본다. login.js 파일을 봤더니 난독화가 되어있었다. 길어서 캡쳐가 짤렸는데, 자바스크립트 길이가..

[HackPack CTF] Login - 웹해킹 / 자바스크립트

중간 난이도의 웹해킹 문제 암호학 문제에서도 느꼈지만 이 대회는 쉬움과 중간은 크게 난이도 차이가 없는거 같다. 이번 문제도 역시나 플래그 포맷이 picoCTF로 되어있다. 문제 설명을 보면 dog-sitter의 brother가 웹사이트를 만들었는데 로그인을 못한다고 도와달라고 한다. 웹소스는 따로 제공되지 않고 문제페이지 주소만 제공된다. 문제페이지에 접속해보면 로그인창만 달랑 나온다. Username과 Password를 입력하게끔 하는데 당연히 아무거나 넣으면 안된다. f12를 눌러 개발자도구를로 소스를 살펴본다. index.js 파일을 열어보면 안에 뭔가 수상한 내용이 보인다. 사용자로부터 input을 받아서 username은 u에 password는 p에다 저장하고 밑에 조건문에서 무언가 확인하는듯..

CTF/웹해킹 2022.04.12

[Space Heroes CTF] Space Traveler - 웹해킹 / 자바스크립트

아주 쉬운 웹해킹 문제이다. 따로 소스코드 없이 문제페이지 주소만 주어진다. 문제 페이지에 접속하면 텍스트가 쭉 나오고 마지막에 Guess The Flag 라는 버튼이 보이게 된다. 해당 버튼을 클릭하면 이렇게 알림창이 하나 뜬다. 입력창에 정확한 플래그를 입력해야 문제가 풀리는 듯 하다. 놀랍게도 이전에 블로그에서 거의 똑같이 풀 수 있는 문제를 다룬적이 있었다. (https://hackingstudypad.tistory.com/44) 다시한번 느낀거지만 워게임 사이트를 많이 풀다보면 머릿속에 빅데이터가 쌓여서 실제 대회에서도 많은 도움이 되는것 같다. 문제페이지에서 f12를 눌러서 개발자도구를 이용해 웹 소스를 확인해본다. 맨 밑에쪽에 보면 태그 사이에 뭔가 알수없는 복잡한 값들이 있는걸 확인할 수 ..

CTF/웹해킹 2022.04.06

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

세번째 Obfuscation 문제이다. Obfuscation 이란 난독화를 의미한다. 공격자가 자신의 악성코드가 들키기 않기위해, 또는 개발자가 자신의 프로그램을 분석하는것을 방지하기위해 주로 사용되는 기법이다. Obfuscation 1번 문제 : https://hackingstudypad.tistory.com/26 Obfuscation 2번 문제 : https://hackingstudypad.tistory.com/30 세번째 Obfuscation 문제 역시 페이지에 접속하면 비밀번호를 요구한다. 역시나 f12를 눌러 개발자도구를 이용해 웹 소스를 확인해본다. 뭔가 복잡한 자바스크립트 코드가 작성되어 있다. 가장먼저 dechiffre 라는 함수가 선언되어있고, 아래쪽에서 함수를 호출하고 있는 모습이 보인..

워게임/Root Me 2022.03.20

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

15점짜리 Javascript - Webpack 문제 Validations 를 보면 문제 풀이 횟수가 1% 밖에 안된다고 나온다. 엄청 어려운 문제인줄 알고 긴장했는데, 어이없을정도로 쉬운 문제였다. 그냥 사람들이 많이 안풀어서 그런가보다.. 참고로 webpack 은 자바스크립트 모듈화 도구 이름이다. 웹 개발할때 사용하는 도구정도로 생각하면 된다. 문제 페이지에 들어가보면 아무런 기능도 없고, 버튼만 있는데 그냥 오리와 원앙의 차이에 대해서만 알려준다. 이럴때는 역시 또 f12를 눌러서 개발자도구를 확인해준다. 개발자 도구의 '소스' 탭을 보면 웹페이지 자체에는 특이한 내용이 없는걸 볼 수 있다. 메인 페이지에서 f12를 눌렀기 때문에 위에서 봤던 This is a normal duck! 같은 글자가 ..

워게임/Root Me 2022.03.18

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

웹 해킹 문제이다. 보통 CTF 문제들은 제목이나 문제 설명 부분이 큰 힌트가 되는 경우가 많다. 이 문제같은경우 살짝 꼬아놨는데 문제 이름인 Consolation 은 '위로' 라는 뜻이다. 문제 설명도 보면 I've been feeling down lately.. Cheer me up! 이라면서 뭔가 위로를 바라는것 같다. 조금뒤에 보면 알겠지만 이 문제의 의도는 'Consol' ation 이다. 다시말해 '콘솔' 창을 활용해서 풀라는 것이다. Consolation 이라는 단어로 위장한것 뿐이다. '콘솔'창을 이용해서 문제를 푸는것은 Root Me 문제풀이에서 한번 다룬적이 있다. * 링크 : https://hackingstudypad.tistory.com/36 [Root Me] Javascript -..

CTF/웹해킹 2022.03.17

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

Javascript - Native code 문제 15점짜리 문제이다. 문제 이름이 조금 바꼈는데 사실상 Obfuscation3 라고 봐도 무방할것 같다. 비슷한 유형의 난독화 문제이다. 문제페이지에 접속하면 또 이렇게 비밀번호를 요구한다. 역시나 f12를 눌러서 개발자도구로 웹 소스를 확인해본다. 확인해봤더니 중간에 태그 사이에 알수 없는 외계어들이 써있는걸 볼 수 있다. 그래도 Obfuscation 1, 2 문제는 사람이 읽을 수 있는 글자였는데... 적어도 알파벳이었는데 이 문제는 알파벳도 아닌 이상한 기호들로 도배되어있다. 이런 괴상하게 난독화된 코드가 있을때 아주 쉽게 풀 수 있는 방법이 있다. 개발자 도구를 보면 '콘솔'이라는 탭이 있다. 여기서 테스트용으로 javascript 코드를 실행시켜..

워게임/Root Me 2022.03.16

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

두번째 Obfuscation 문제 Obfuscation이란 난독화를 의미한다. 보통 공격자가 악성코드의 분석을 방해하기 위해 사용하거나 개발자가 코드의 동작을 숨기기 위해 사용한다. 이전문제처럼 비밀번호를 알아내면 된다. 가장먼저 f12를 눌러서 개발자도구를 이용해 웹 소스를 확인해본다. pass 라는 변수에 무언가를 unescape한 값을 넣고있다. escape 함수는 인코딩, unescape 함수는 디코딩을 시켜주는 함수이다. 자세히보면 unescape가 두번 들어가 있다. 따라서 두번 디코딩을 해주면 된다. 구글에 url 디코딩 이라고 검색하면 온라인으로 디코딩 할 수 있는 사이트들이 많이 나온다. 아무곳이나 들어가서 두번 디코딩을 해준다. 첫번째 디코딩을 하면 쪼금 알아 볼 수 있는 것들이 생긴다..

워게임/Root Me 2022.03.13

[angstromCTF] The Magic Word - 웹해킹 / 자바스크립트

212팀이 푼 쉬운 웹 해킹 문제 magic word 를 이용해서 정답을 획득하라고 한다. 문제페이지에 들어가면 아무것도 없는 흰 바탕 한 가운데에 give flag 라는 글자만 덩그러니 있다. 위 사진은 그림파일을 보여주는게 아니라 웹 페이지를 캡쳐한 것이다. 웹 해킹 문제를 풀때는 가장 먼저 f12를 눌러서 개발자 도구를 보는게 좋다. 웹 소스를 천천히 보다보면 흥미로운 javascript 코드가 보인다. give flag 라는 글자를 보여주는 부분의 id가 magic 인가 보다. document.getElementById 를 이용해서 해당 부분의 텍스트를 가져와 msg 변수에 담고, magic.innerText 가 "please give flag" 인지 물어본다. 만약 맞다면, /flag?msg= ..

CTF/웹해킹 2022.03.11

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

10점짜리 Javascript - Obfuscation 1 문제 Obfuscation 은 혼미, 난처함 등의 의미를 가지는 영단어인데, 정보보안에서는 주로 코드 난독화를 의미한다. 보통 공격자들이 악성코드의 동작을 숨기거나, 보안장비를 우회할때 쓰기도 하고, 개발자들도 공격자들에게 코드가 노출되는것을 방지하기 위해서 사용하는 방법이다. 문제페이지에 접속하면 알림창이 뜨면서 비밀번호를 입력하라고 한다. 마치 이전에 풀어봤던 Javascript - source 문제와 유사하다. f12를 눌러서 개발자도구를 통해 해당 페이지의 웹 소스를 살펴보면 pass = 으로 pass라는 변수를 선언하고 그 안에는 알수없는 이상한 값들이 들어가 있는것을 볼 수 있다. 이것처럼 %숫자 로 이루어진 문자열들은 url 인코딩이..

워게임/Root Me 2022.03.10
반응형