WebGoat 환경 세팅
※ 안 되면 위의 방법으로 따라해볼 것
1. PowerShell 관리자모드로 실행
1.1 실행 중인 컨테이너 목록 확인
docker ps
1.2 실행 중인 컨테이너 진입
docker exec -it webgoat /bin/bash
1.3
pwd
cd
pwd
cd ./WebGoat
./mvnw spring-boot:run
1.4 Burp Suite (버프 스위트) - settings에서 8080 포트 -> 8888로 수정
1.5 인터셉트 off -> 사이트 접속 -> 인터셉트 on -> sign in
( -> 버프스위트에서 로그인 정보 확인 -> 인터셉트 off -> sign in -> 인터셉트 on)
http://127.0.0.1:8080/WebGoat
** 인터셉트 on인 상태로 [sign in] 누르면 계속 로딩되는데, 버프스위트에서 username과 passwd 확인 후 인터셉트 off 해주면 다시 로그인된다.
** 계속 버프스위트를 사용할 것이므로 인터셉트 off가 아닌 on 상태로 실습 진행
1.6 Hijack a session 페이지 접속
실습
Hijack a session
사용자의 인증 여부를 파악할 때 사용하는 Hijack cookie 값을 예측해 인증된 사용자의 Hijack cookie 값을 찾아내는 문제
- 로그인 계정에 대해 알고 있는 정보가 없으니 임의의 값을 입력한 후 [Access] 버튼을 클릭해 액세스 요청 전송
1. 로그인 정보가 없으므로 임의의 id와 passwd를 입력한 후 Access 버튼을 눌러 액세스 요청을 보내나.
* 인터셉트 on인 상태에서 진행
1.1 버프스위트 [http history] 에서
요청 내용 중 URI path가 /WebGoat/HijackSession/login 인 http 통신을 찾는다.
위에서 임의로 입력한 username과 passwd를 확인할 수 있다.
1.2 위의 창에서 request 화면에 우클릭 -> send to intruder
1.3 Intruder - Positions 창으로 이동
- payload positoins 화면을 볼 수 있음
* Intruder
자동화 공격 도구로 동일한 http요청을 여러 번 반복적으로 보내는 무차별 공격을 지원하는데, 필요 시 설정된 위치의 값을 변경 가능
1.4 우측 [clear] 버튼 클릭
1.5 password 값만 드래그 후, 우측 [Add] 버튼 클릭
인트루더 사용하려면 무조건 변경할 값의 위치를 지정해야 하므로임의로 Password 파라미터를 변경하여 공격 수행
- 드래그한 부분에 기호가 추가되면서 위치가 지정됨
1.6 페이로드 설정 후 Start Attack
[payloads] 탭 : 앞에서 지정한 위치에 대입할 페이로드의 종류와 기타 사항을 설정하는 부분
[payload sets]
- 지정된 위치에 페이로드의 종류와 페이로드 개수 설정
[payload settings]
- 위에서 숫자를 하나씩 더해가며 대입하기 위해 [Number range]를 [Sequential]로 변경
- 0부터 9까지 하나씩 공격할 수 있도록 설정
[Number format]
- 대입할 숫자의 형태는 [Decimal(10진수)] 선택
- 숫자 자릿수의 최소와 최대를 설정하는 부분 모두 1로 설정
1.7
'-' 앞에 있는 수가 2 커진 경우 찾기
: 누군가 요청을 보냈고, 그 요청에 대한 Hijack cookie 값을 할당받았을 거란 걸 의미
다른 누군가가 할당받았을 것으로 예측되는 hijack cookie 값 찾기
1. '-'를 기준으로 2씩 건너뛴 사잇값인 91로 유추
2. 가장 마지막 4자리 범위는 465에서 728 사잇값으로 유추
4453454224392396291-1726486402465
1.8 [payload positions] 에서 hijack_cookie 값 직접 작성 -> clear -> 뒤에 숫자 범위 드래그 후 Add
1.9 다시 payload 설정 -> Start Attack
* Number format에서 Min/Max integer digits는 몇 자리 정수인지 범위 지정해주면 된다.
fraction digits는 소숫점 범위를 지정하는 것인데 나는 소숫점 고려하지 않기 때문에 0으로 해주었다.
2.0 response에 Congratulations~~~ 나오면 성공!
문제가 있는데 이대로 끝은 아닐 것 같아서 더 찾아보니까,
찾은 hijack_cookie 값을 intercept에 추가로 작성해준 후, forward를 해주면 된다!
오예! 아래와 같은 화면이 나오면 성공이다 ㅎㅎ
참고
'SWLUG > CTF' 카테고리의 다른 글
[CTF/ Dreamhack] CProxy: Inject (0) | 2024.09.25 |
---|---|
[WebHack][Webhacking.kr] old-52 (1) | 2024.09.23 |
[CTF/ Dreamhack] Type c-j (0) | 2024.05.23 |
[CTF/ 써니나타스] Web -1 (0) | 2024.05.23 |
[CTF/Dreamhack] easy-login (0) | 2024.05.21 |