Burp Suite를 이용한 간단한 문제 풀이

이정민·2023년 11월 15일
0

웹 해킹 공부 정리

목록 보기
2/18

노말틱님이 제공해주신 사이트를 통해 Burp Suite를 이용해서 플래그를 얻는 간단한 연습을 해보겠습니다.

Burp Suite Prac1

첫 번째 문제에 들어가면

이렇게 나오는데 히스토리에서 패킷을 확인해보니

HTTP/1.1 200 OK
Date: Wed, 15 Nov 2023 15:32:55 GMT
Server: Apache/2.4.18 (Ubuntu)
Vary: Accept-Encoding
Content-Length: 89
Connection: close
Content-Type: text/html; charset=UTF-8

NO DATA

<!-- header User-Agent에 segfaultDevice 라고 넣어서 보내보세요! -->

request의 header에서 User-Agent에 segfaultDevice를 넣어서 보내보라고 나옵니다.
요청 패킷을 인터셉트로 가로채고 User-Agent에 segfaultDevice를 넣으면

Congrat!!! 문구와 함께 나온 플래그 획득에 성공했습니다.

Burp Suite Prac2


두 번째 문제에서는 이렇게 나옵니다. 히스토리로 살펴보니

HTTP/1.1 200 OK
Date: Wed, 15 Nov 2023 15:46:51 GMT
Server: Apache/2.4.18 (Ubuntu)
Last-Modified: Wed, 15 Nov 2023 08:46:17 GMT
ETag: "50-60a2cefbbadea-gzip"
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Length: 80
Connection: close
Content-Type: text/html

LOOK INSIDE

<!-- a.html과 b.html 두 데이터를 잘 확인해보세요. -->

a.html과 b.html 데이터를 잘 살펴보라는 것을 보니 컴페어러를 이용할 것 같습니다.
인터셉트로 요청 패킷을 가로채고

GET /2_burp/ HTTP/1.1
Host: ctf.segfaulthub.com:1019
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.6045.123 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://ctf.segfaulthub.com/
Accept-Encoding: gzip, deflate, br
Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
Cookie: session=782392ad-f512-4bd3-ad54-ec0d6ceea3e8.jP-3XOb8y9fcQQak-Byw84e1BSA
If-None-Match: "50-60a2cefbbadea-gzip"
If-Modified-Since: Wed, 15 Nov 2023 08:46:17 GMT
Connection: close

요청 라인 부분에 /2_burp/[여기] 부분에 a.html과 b.html을 각각 전송하면

이런식으로 글자가 산더미처럼 적힌 페이지가 나옵니다.
각각 컴페어러에 붙여넣고 비교해보니 플래그를 획득했습니다.

Burp Suite Prac3

GET /3_burp/getFlag.php HTTP/1.1
Host: ctf.segfaulthub.com:1019
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.6045.123 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://ctf.segfaulthub.com/
Accept-Encoding: gzip, deflate, br
Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
Cookie: answer=1; session=782392ad-f512-4bd3-ad54-ec0d6ceea3e8.jP-3XOb8y9fcQQak-Byw84e1BSA
Connection: close

3번 문제는 요청 패킷을 살펴보니 쿠키에 수상한 answer=1 부분이 있습니다.
리피터로 보내고 숫자를 바꿔가며 보내다보니 플래그 획득 성공했습니다.

Burp Suite Prac4


4번 문제에 들어가보니 Admin 자격을 얻어야 플래그를 얻을 수 있을 것 같습니다.
히스토리로 들어가서 살펴봤는데

같은 페이지가 2개 있는 것이 수상해서 살펴봤더니 하나는 상태코드 302번 리다이렉션을 한 것을 볼 수 있었습니다. 리다이렉션 페이지의 응답 부분을 살펴봤습니다.

HTTP/1.1 302 Found
Date: Wed, 15 Nov 2023 15:58:17 GMT
Server: Apache/2.4.18 (Ubuntu)
Set-Cookie: level=dXNlcg%3D%3D
Location: ./flag.php
Content-Length: 17
Connection: close
Content-Type: text/html; charset=UTF-8

You are Not Admin

Set-Cookie 부분을 보니 수상한 level 부분이 있었고 그 뒤에 문자가 어색하게 생겼고 %3d로 끝나는 것을 보니 URL 인코딩된 것처럼 보입니다. 해당 부분을 디코더를 사용해서 URL방식으로 디코딩해보니 끝이 ==으로 끝나는 문자가 되었습니다. 이번에는 base64로 디코딩했더니 user라는 글자가 나왔습니다.
리다이렉션 이후 페이지 요청을 보니 이번에는 요청에 해당 문구가 들어가있는 것을 보니 해당 문구를 요청하면 그것을 웹서버에서 디코딩해서 결과를 주는 것으로 보여집니다. 그래서 두 번째 요청을 가로채고 해당 부분에 admin을 base64로 인코딩한 글자를 집어넣어 보냈더니

누가 봐도 인코딩되어있는 글자들이 적혀있습니다.
해당 글자를 base64로 3번 디코딩해보니 플래그를 얻는 것에 성공!
성공적으로 4개의 플래그를 모두 획득 가능했습니다.

profile
공부중

0개의 댓글