-
[Webhacking.kr] Challenge 6Wargame/Webhacking.kr 2023. 1. 14. 01:12반응형
Challenge 6을 풀어보자.
점수에 맞게 비교적 난이도가 쉬운 문제이다.
문제 화면을 보면 ID와 PW가 있고, view-source의 링크가 있다.
특별히 힌트가 될 부분은 없어 보이니, 소스 코드를 보도록 하자.

<Challenge 6의 문제 화면> 소스 코드를 보면, 쿠키가 없을 때 "guest"의 id와 "123qwe"의 pw를 가지게 된다.
그 후 base64로 인코딩을 20번 반복하고, 1 ~ 8까지의 숫자는 특수 문자로 변환한다.
그리고 그 두 값을 user와 password의 이름으로 쿠키 값으로 갖도록 한다.
아래에 코드가 잘려 있지만, 그 과정을 반대로 거친 후 문제 페이지에 해당 값을 ID와 PW로 보여준다.

<Challenge 6 문제의 소스 코드> 먼저 쿠키 값을 확인하기 위해 크롬의 개발자 도구에서 Application 탭을 봤다.
user와 password라는 이름의 쿠키가 있는데, 그 값이 엄청나게 길다.
아무래도 인코딩을 20번이나 반복해서 그런 것 같다.

<쿠키 값 확인> 문제 자체는 쉬우니, 파이썬 코드로 금방 작성을 해보자.
base64 모듈을 import 하고 해당 모듈의 함수를 이용해 base64로 인코딩을 해준다.
그 후 replace 함수로 숫자를 특수 문자로 치환해주고 결과를 보면, 바이트 형식으로 쿠키 값이 출력된다.
(코드에는 user만 구했지만, "admin"을 "nimda"로 바꿔 password도 구해주면 된다.)

<쿠키 값 구할 파이썬 코드> 이렇게 나온 쿠키 값을 인코딩 해주고, user와 password에 넣어준 뒤 새로 고침을 하면 문제가 해결된다.
old-06 Pwned! 출력 창의 확인을 누르고, 화면을 보면 ID와 PW가 잘 들어간 것을 확인할 수 있다.

<Challenge 6 문제 완료> 
<문제 완료 확인> 반응형'Wargame > Webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] Challenge 8 (0) 2023.02.27 [Webhacking.kr] Challenge 7 (0) 2023.01.14 [Webhacking.kr] Challenge 5 (0) 2023.01.13 [Webhacking.kr] Challenge 4 (0) 2023.01.12 [Webhacking.kr] Challenge 3 (0) 2022.12.11