<머릿말>
*글 쓰기에 앞서 수업과정에 이런 문제풀이 요소들을 추가하여 해킹에 흥미가 떨어지지 않게 잘 준비해주시는
노말틱님에게 감사드립니다.
이번 글의 목적은 노말틱 취업반 과정에서 Burp suite 사용의 적응을 위해 만든 워게임 문제풀이 입니다.
총 4개의 문제를 풀어볼것이며 각 문제마다 챙겨가야 할 요소들을 알아보겠습니다.
<목차>
- Burp Suite 에서 헤더란?
- Comparer 기능 활용
- Intruder 기능 활용
- Decoder 기능 활용
<1. Burp Suite 에서 헤더란?>
워게임 사이트는 이런식으로 이루어져 있으며 앞서 말했듯이 총 4개의 문제가 있습니다.
이중 Burp Suite Prac1 을 클릭해 보겠습니다.
다른 워게임 사이트들도 이와 유사한 방식입니다.
이런식으로 Flag 라는 숨겨진 코드를 찾아서 submit 을 해야 다음스테이지로 넘어갈 수 있는 구조입니다.
자 이제 저 링크를 타고 문제사이트로 들어가봅시다.
사이트엔 그저 NO DATA 라고만 적혀져 있습니다.
당연히 Burp Suite 로 살펴보아야 하겟죠?
보시면 응답에 <!-- header User-Agent에 segfaultDevice 라고 넣어서 보내보세요! -->
라는 문구가 적혀져 있습니다.
저 Request 중에 GET/1_burp/HTTP/1.1 이라는 부분을 제외한 밑에 부분은 헤더로써 저희가 임의로 바꿔서 보낼수 있는 데이터들 입니다. 즉 문제에서는 User-Agent header 부분을 바꾸라는 뜻입니다.
요구대로 바꿔서 다시 Repeater 기능을 통해 보내주게 되면...
이런식으로 응답에 Flag 를 찾아낼수 있게됩니다!
이 문제에선 얻어갈 것은 두가지 인것 같습니다.
1. 응답의 헤더를 클라이언트가 임의로 바꿀수 있다.
2. 페이지에 뜨지않는 숨겨진 문구를 Burp Suite 으로 볼수있다.
<2. Comparer 기능 활용 >
자 두번째 문제입니다. 다음 문제사이트에 접속을 해보겠습니다.
안을 보라고 합니다. 그러면 내부를 한번 Burp Suite 로 보겠습니다.
응답부분에 적혀있는 문구를 확인해보면
<!-- a.html과 b.html 두 데이터를 잘 확인해보세요. -->
그러면 이 서버의 a.html 과 b.html 파일을 url 에 적어서 확인해봅시다.
a.html | b.html |
들어가보니 의미없는 글자들이 나열되어 있었습니다.
이것을 Burp Suite 의 Comparer 기능을 활용하여 비교해보면?
이런식으로 숨겨진 Flag 를 발견할수 있었습니다.
이 문제에서 배워갈 것은 하나입니다.
1. Comparer 기능의 활용
<3.Intruder 의 활용>
페이지에 접속하려니 Hint :1~20 이라고 적혀있었습니다..
뭔가 1부터 20까지 적어보는 사이트일것 같습니다.
보면 Cookie header 란에 answer=1 이라는 변수가 있습니다.
아마도 이 변수를 1~20 사이에 넣다보면 flag 가 나올것 같습니다.
근데 물론 여기서 Repeater 를 사용하여 무작정 넣어도 문제는 없지만..
만약 hint : 1~ 60000 이였다면?...
그러면 넣어야할 숫자가 너무 많아집니다.
그래서 이를 위해 존재하는 기능! Intruder 입니다!
Intruder 는 이러한 작업을 자동화 시켜주는 기능이라고 생각하시면 됩니다.
이렇게 바꿔줄 부분 사이에 저 체인표시의 글꼴을 삽입하여 줍니다.
그리고 위에 Payloads 메뉴로 들어가시게 되면
저희는 숫자를 넣어줄꺼니깐 Payload type : number 로 바꿔줍니다.
이후 Payload settings 에서 From:1 ~ To : 20 , Step=1 로 설정해주게 되면
"1부터 20까지 넣을꺼고 1씩 증가시켜라"
라는 뜻이 됩니다.
이제 start attack 버튼으로 동작을 시켜주겠습니다.
이렇게 응답을 살펴보면 Flag 를 찾을수 있게됩니다!
이 문제에서 배워가야 할 부분은 두가지 였습니다.
1. Reapeter 의 사용
2. Intruder 의 사용
<4. Decoder 기능 활용>
바로 페이지의 소스코드 부터 보겠습니다.
You are Not Admin 이라네요..
쿠키를 보시면 level 이라는 변수에 이상한 값이 있습니다.
참고로 %3D 는 URL 코드로 = 이라는 뜻입니다.
즉 저 문자는 level = "dxNIcg==" 이라는 뜻입니다.
보통 base64 로 암호화될경우 마지막이 = 으로 끝나니깐 저 문자가 base 64로 암호화 됐구나를 추측해볼수 있습니다.
아하! Decoder 기능에서 base64로 복호화를 진행하여 보니 저문자는 user 라는 뜻이였군요.
그러면 저희는 Admin 이라는 문자를 base64로 암호화하여 넣어주면 admin으로 인식될 것 같습니다!.
암호화 한 admin 이라는 글자를 넣어주니 이상한 난수 암호가 나왔네요.
근데 저 암호를 잘보니 또 마지막이 = 으로 끝나는것으로 봐서 base64로 암호화 된것같습니다.
다시 Decoder로 가서 저 암호를 복호화 해주게 되면?
여러번 복호화 하니 Flag 가 나오게 되었습니다!
이번 문제에서 배울 요소는 하나 입니다!
1. Decoder 기능의 활용
긴글 읽어주셔서 감사합니다!
'워게임 문제풀이 > Segfault' 카테고리의 다른 글
<Segfault> 워게임 문제풀이[6편] - SQL Injection3 (1) | 2024.05.31 |
---|---|
<Segfault> 워게임 문제풀이 [5편] - Secret Login (0) | 2024.05.22 |
<Segfault> 워게임 문제풀이 [4편] - Login Bypass 3 (0) | 2024.05.21 |
<SegFault> 워게임 문제풀이 [3편] - Admin is Mine (0) | 2024.05.21 |
<Segfault> 워게임 문제풀이 [2편] - PIN CODE Bypass (0) | 2024.05.20 |