Burp Suite 활용해서 간단한 문제 풀어보기

gyub·2025년 4월 25일
0

모의해킹 스터디

목록 보기
9/31

1️⃣ 버프 스위트로 헤더 값 변경해보기

첫번째 문제는 사이트에 접속했을 때 아무 데이터도 보이지 않습니다

그렇다면 버프스위트로 이 페이지의 request와 response 데이터를 살펴보겠습니다

response에 주석으로 <!-- header User-Agent에 segfaultDevice 라고 넣어서 보내보세요! --> 라고 되어있네요

그렇다면 request를 intercept 해서 User-Agent 값을 변경한 뒤 서버에 보내주어야 합니다

이렇게 intercept를 해 User-Agent 값을 segfaultDevice로 바꿔 보냈더니,

response에 플래그가 적힌 데이터가 왔습니다

2️⃣ 버프 스위트로 데이터 비교해보기

두번째 문제는 Look Inside라는 메세지가 있는 페이지가 주어졌습니다

마찬가지로 request와 response를 살펴봅니다

<!-- a.html과 b.html 두 데이터를 잘 확인해보세요. --> 라는 메세지를 발견할 수 있었습니다ㅣ

그렇다면 request를 버프 스위트의 repeater로 보내 a.htmlb.html 을 요청해보겠습니다

먼저 a.html 을 확인해보겠습니다

어떤 긴 글을 응답데이터로 주고 있네요

그렇다면 이제 b.html 을 확인해보겠습니다

a.html 과 굉장히 비슷한 데이터가 돌아왔습니다

<!-- a.html과 b.html 두 데이터를 잘 확인해보세요. --> 라고 하였으니, 두 데이터를 comparer로 옮겨 내용을 비교해보겠습니다

b.html 에 추가로 플래그가 숨어있었는 것을 쉽게 확인할 수 있었습니다

3️⃣ 버프 스위트로 반복해서 요청 보내기

세번째 문제는 No Flag, Press F5라는 메세지가 있는 페이지가 주어졌습니다

이번 문제는 1~20 이라는 힌트가 주어졌습니다

이번에도 request와 response를 살펴보겠습니다

response를 잘 확인해보니 Set-Cookie: answer=1 이라는 헤더가 있네요

그럼 앞으로 쿠키에 answer = 1 이라는 값이 설정되겠군요

직접 확인해보겠습니다

정말로 Set-Cookie: answer=1 이 설정된 것을 확인할 수 있습니다

그럼 이 값을 1~20까지 바꿔보면 플래그를 얻을 수 있지 않을까요?

값을 하나 바꿀때마다 request를 intercept해서 수정한 뒤 전송할 수도 있지만,

이 과정은 매우 귀찮을 것 같네요

버프 스위트의 repeater로 request를 빠르게 반복해서 보내보도록 하겠습니다

위와 같이 answer를 1부터 20까지 하나씩 바꿔가면서 전송했더니 플래그를 얻을 수 있었습니다

4️⃣ 버프 스위트로 데이터 디코딩하기

네번째 문제는 You are Not Admin이라는 메세지가 있는 페이지가 주어졌습니다

메세지로 대충 권한에 대한 부분을 수정해야 플래그를 얻을 수 있겠다는 추측을 할 수 있습니다

그럼 request와 response를 확인해볼까요?

request에서 권한 설정과 관련 있을 가능성이 높은 cookie 값을 살펴보았습니다

cookie 값 중 level=dXNlcg%3D%3D 이 권한과 관련있을 가능성이 높아보입니다

그런데 dXNlcg%3D%3D 는 인코딩이 되어있는 것 같네요

버프 스위트의 decoder를 활용해 디코딩을 해보겠습니다

%3D%3D 부분은 URL로 인코딩 되었을 가능성이 있어보이니, URL 디코딩을 해보겠습니다

디코딩을 했더니 dXNlcg== 라는 값이 나왔네요

== 이 붙어있는 것을 보니 base64 로 한 번 더 디코딩을 해주어야 할 것 같습니다

user 라는 결과가 나왔습니다

역시 이 부분을 admin으로 수정해야 하는 것이 맞았네요

그럼 admin을 인코딩해서 보내주어야 합니다

디코딩을 URL -> base64 순서로 하였으니, 인코딩은 base64 -> URL 순서로 진행합니다

결과로 나온 %59%57%52%74%61%57%34%3d 값을 level로 설정합니다

response에 플래그와 관련된 값이 등장했네요

그런데 이 값도 인코딩이 되어있습니다

끝에 = 가 있는 것을 보니 base64로 인코딩 되어 있을 가능성이 커 보입니다

한번 디코딩을 해보니 또 base64 인코딩 형태의 문자열이 나왔습니다

base64 형태가 나오지 않을 때까지 반복해서 디코딩을 진행했더니 플래그가 나왔습니다


지금까지 Burp suite를 활용해서 간단한 문제를 몇가지 풀어보았습니다

감사합니다

0개의 댓글