티스토리 뷰

SCP 동아리에서 학과 행사로 주최한 CTF로 초보자들을 위한 난이도입니다.

제가 출제했던 WEB 문제들의 출제 의도와 write-up입니다.

 

링크 : http://jbuctf.online/ 

 

JBU CTF

 

jbuctf.online

문제 이름 : Can U f1nd Me?

 

출제 의도

-> 1. URL에 취약점이 존재하는 웹 사이트를 보고 directory listing 취약점을 알 수 있는지 확인

     2. 간단한 javascript 코드를 이해할 수 있는지를 확인

 

문제 풀이 

url = http://34.70.105.124:8082/home.html

 

url = http://34.70.105.124:8082/about.html

 

url = http://34.70.105.124:8082/contact.html

 

상단의 navbar의 기능을 누를 때마다 페이지가 변경되면서

url이 변경되는데 모두 http://34.70.105.124:8080/ 뒤의 부분만

각각 home.html, list.html, contact.html 로 변경된다.

 

그래서 경로에서 바뀌는 부분인 파일명을 지워주자

예상대로 디렉토리 리스팅이 발생한다.

출력된 리스트 중 누가봐도 수상한 flag.php에 들어가면 문제가 나타난다.

 

비밀번호를 입력하라는 창 외에는 다른 정보는 드러나 있지 않다. 

그렇다면 개발자 모드(f12)를 눌러서 코드를 읽어보자.

 

코드를 읽어보면 간단한 javascript 소스가 보인다.

 

  • substring - 문자열의 길이를 기준으로 자른다고 표현하기보다는 일정 문자열을 반환하는 함수
  • substring(시작인덱스, 종료인덱스);
  • ex ) var string = '1997-01-07';
  • ​ var year = string.substring(0,4) //1997
  • ​ var month = string.substring(5,7) //01
  • ​ var month = string.substring(8,10) //07

 

그래서 if(check.substring(0,str) == 'scpC') { } //이게 참이 되려면 0에서 3까지의 문자열이

scpC 가 되어야하는 것이다.

 

마찬가지로 다음 if(check.substring(str4,str5) == 'scpC') { } 가 참이 되려면 16에서 19까지의

문자열이 nNY_가 되어야 한다.

 

모든 코드를 다 읽어보면

0~3 - scpC

16~19 - nNY_

24~17 - hAcK

12~15 - _Fun

20~23 - W3B_

4~7 - TF{s

8~11 - S00o

28~31 – 1n9}

 

이걸 순서대로 정리해보면

 

0~3 – scpC

4~7 - TF{s

8~11 - S00o

12~15 - _Fun

16~19 - nNY_

20~23 - W3B_

24~17 - hAcK

28~31 - 1n9}

 

// scpCTF{sS00o_FunnNY_W3B_hAcK1n9}

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday