14. [4주차]-3 버프스위트 활용 CTF 풀이

* 과제
1. 오늘 수업 복습
 - BurpSuite: CTF 문제
2. Javascript
 - 1. 키로거 만들어보기
 - 2. 쿠키 탈취
3. 게시판 구현
- 게시판 글 작성
- 게시판 글 리스트 보기
- 게시판 글 내용 읽기
- 게시판 글 수정
- 게시판 글 삭제


1. 오늘 수업 복습

1.4 CTF 문제

유튜버 노말틱님이 만든 버프스위트 활용 CTF 사이트의 문제를 풀어보았다.

 

1.4.1 Prac 1

들어가면 아무것도 없다.

그래서 버프스위트의 Intercept와 Repeater를 이용해보았다.

이런 응답을 확인할 수 있었다.

Repeater의 요청 패킷의 User-Agent에 segfaultDevice를 넣어 보내면 요청 패킷에 플래그를 얻을 수 있었다.

 

1.4.2 Prac 2

두 번째 역시 아무것도 없어서 버프스위트로 확인해보았다.

여기서 이게 무슨 의미인지 많이 고민했다.

처음에는 history를 보았지만 a.html이나 b.html이 없었다. 생각하다가 URL에 a.html을 넣어보자는 생각이 들었고 확인 결과....

텍스트를 확인할 수 있었다.

b.html 역시 텍스트가 있었고 두 개의 텍스트를 비교하였다.

텍스트 비교는 온라인에도 있지만 버프스위트의 Comparer를 사용해보았다.

 

텍스트를 복사 후 Comparer의 오른쪽에 Paster를 통해 붙여넣기가 가능했다.

먼저 Word로 비교해보니

위 처럼 한줄로 나와서 알아볼 수 없었다.

 

그래서 Bytes로 비교하고 Sync views를 체크해 마우스 휠을 동기화 시켰다.

그 후 차이나는 부분을 플래그에 넣으니 해결할 수 있었다.

 

1.4.3 Prac 3

역시 아무것도 없기에 버프스위트로 확인하였다.

여기서 많은 시간을 쓴거 같다.

Press F5가 신경쓰여서 Referer를 해당 문제풀이 URL로 바꾸면서 보내기도 해보고 하였다.

(여기서는 URL 이 노출이 걱정되서 제거 후 캡쳐 하였다.)

 

그러다가 처음 Prac 3 실행 시 보았던 "Hint : 1 ~ 20" 이 생각나서 다시보니 쿠키에 answer값이 보였다.

(이 힌트 역시 URL 과 같이 있었는데 노출이 걱정되서 캡쳐하지 않았다.)

 

그래서 Request 패킷의 Cookie의 answer값을 하나씩 올려가면서 Send하니 플래그를 얻을 수 있었다.

 

1.4.4 Prac 4

바로 버프스위트로 확인하였다.

여기서 Cookie의 level이 바로 거슬렸다.

이 값을 Decoder에서 디코딩을 하였다.

 

먼저 뒤의 %3D가 거슬려서 URL 디코딩을 하였다. 보통 %가 붙은 값은 URL 인코딩 값인 것 같아서였다.

그 후 나온 값은 =으로 끝나는 것이 base64가 같아 base64 디코딩을 수행하니 user 라는 값이 나왔다.

그러면 Admin을 반대로 base64로 인코딩하고 URL 인코딩을 하였다.

 

하지만 처음에는 안되길래 admin으로 소문자로 하니 공격에 성공하였다.

 

여기서 URL 인코딩 값을 그대로 보내도 되고

base64결과에 =만 %3D로 변경해서 보내도 된다.

 

응답값 역시 =으로 끝나서 base64로 디코딩을 수행하였다.

디코딩 한번으로 플래그가 나오지 않았지만 디코딩 값이 =으로 끝나는 것이 의심스러워 계속 base64디코딩을 수행하니 플래그 값이 나와서 문제를 풀 수 있었다.

반응형

댓글()