티스토리 뷰

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

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

 

링크 : http://jbuctf.online/

 

JBU CTF

 

jbuctf.online

 

문제 이름 : Cookie Monster

 

출제 의도

  1. 쿠키 값을 조작함으로 로그인을 할 수 있다는 사실을 알고 있는지 확인

  2. 인코딩 된 상태를 보면 디코딩을 떠올릴 수 있는지 확인

  3. Fiddler를 사용해서 값을 조작할 수 있는지 확인

 

문제 풀이 

문제에 들어가면 보이는 로그인 창에 임의의 id, password를 넣어주고

버튼을 눌러보지만, 버튼이 동작하지 않는다.

 

 

코드를 확인해보면, php언어로 짜여진 코드가 힌트로 제공되고 있다.

cookie에 id와 password에 값이 존재하지 않는다면,

로그인 해달라는 요청이 뜨도록 되어있다.

 

그렇다면 쿠키에 id, password 값이 존재한다면

로그인을 해달라는 요청이 뜨지 않겠구나!

 

editthiscookie 툴을 사용해서 확인해보니,

쿠키값이 어느 것도 존재하지 않는다는 것을 알 수 있다.

 

쿠키에 id, password를 만들어주고 값은 임의의 값을 넣어주고 실행시켜보자.

 

로그인이 성공했다는 문구가 뜬다.

 

로그인 후 나타난 메인페이지는 이런 모습으로 있다.

 

마찬가지로 쿠키값을 확인해보면 로그인 전에는 없던 flag라는 쿠키가 생겨있다.

그런데 저 flag는 암호화가 되어있는 상태이다.

 

메인페이지에 쓰여있는 '난 뭐든지 2번 할꺼야' 라는 말처럼

2번 디코딩을 해줘야 한다.

 

한번

 

2번 base64 디코딩을 해주면 저런 문구가 나온다.

 

얻은 값을 넣고 확인을 누르면,

'빈 값이 넘어왔습니다. Fiddler로 확인해보세요' 라는 문구가 뜬다.

 

분명 값을 넣어줬는데 왜 빈 값이지? 라는 의문을 갖고 Fiddler를 사용해보자.

 

passoword 값이 정말 빈 값으로 넘어가고 있다.

 

그렇다면 Fiddler에서 password 값을 빈 값이 아닌

아까 얻은 Flag_is_not_yours라는 값으로 변경해주자.

 

 

플래그가 나온다.

 

사실 저 방법 외에도 풀이 방법이 한가지가 더 있다.

 

똑같이 flag를 구하고 답을 입력하는 부분에서 

코드를 보면 input type="hidden" 부분이 있다.

이 input 박스를 hidden 태그를 삭제하고 flag를 입력해서 값을

넘기는 방법으로도 이번 문제는 풀 수가 있다!

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