id를 제출하는 칸이 보이네요
일단 admin으로 제출해 봅시다.
'you ae not admin'이라고 뜨네요.
가장 만만한 guest로 로그인 해봅시다.
'hello guest'가 뜹니다.
그리고 다른 걸 시도하려고 logout을 눌러봐도..
로그아웃이 안되네요 ㅎ하하
그래서 일단 소스코드를 보았지만 건질 게 없었고,
(?logout=1이 입력되면 로그아웃이라는 걸 알았다.)
쿠키에서 건질 게 있었다.
바로
userid 라는 쿠키이다.
userid쿠키를 0으로 설정하면 로그아웃을 할 수 있다.
그리고 여기서 Base64 라는 인코딩 방식에 대해 알아야 한다.
암호화된 문자를 보고 Base64라고 알아 차리기 위해선 Base64의 암호화 방식을 알아야 한다.
Base 64 간단 정리하기
Base 64 개념을 간단히 정리해보고자 한다.
pks2974.medium.com
즉, 암호화된 문장의 끝에 %3D가 붙어 있는 것 같으며 base64로 암호화 한건 아닌지 시도해 보아야 한다.
이전의 쿠키를 보면 %3D%3D로 마지막에 채워진 것을 알 수 있다.
따라서 쿠키는 무언가의 값을 base64로 암호화 한것이다.
확인을 위해 id를 1로 제출해보자.
이 쿠키값으로 base64 디코딩을 해봅시다.
마지막 %3D는 '='로 바꾼 후 디코딩합니다.
디코딩 사이트 --> http://www.hipenpal.com/tool/base64-encode-and-decode-in-korean.php
바로 알아볼 수 있는 값이 나올 거라고 생각했는데 또 암호문이 나온다.
이런 암호문을 낼 수 있는 암호 알고리즘을 생각하다가 md5가 떠올랐다.
md5 설명 --> https://smilek1225.tistory.com/2
1-(2) [암호] MD5 암호화 소개 및 코드정리(JAVA 코드)
안녕하세요! 암호화 두번째 'MD5'암호화를 정리해볼까 합니다. 이전 AES암호화를 설명하면서 돌아가는 원리를 설명해보면 어떨까 생각을 해봤는데 원리보다 조금 더 실무에 맞는 포스트로 정리하
smilek1225.tistory.com
base 64디코딩 결과를 가지고 md5로 복호화하자
md5는 복호화가 어렵지만 자주쓰는 테이블을 이용해 복호화 하기도 한다.
md5 복호화 사이트 --> https://md5.web-max.ca/index.php#enter
md5 복호화 결과는 1이였다.
즉 쿠키 값은
입력값 --> md5암호화 --> base64암호화 --> userid쿠키에 저장
로 이루어지는 것이다.
그러면 입력값:admin 에 해당하는 userid 쿠키 값을 알게 되면 이 문제를 해결할 수 있다.
그래서 admin을 그대로 해 보았는데 error 가 발생한다.
id=11로 시도한 결과
11은 1, 1따로따로 md5암호화를 해서 이어붙인 것을 base64로 암호화한 것이다.
따라서 a, d, m, i, n을 각각 md5암호화 한 후 이어붙인 것을 base64로 인코딩 해야 한다.
<md5 암호화>
a: 0cc175b9c0f1b6a831c399e269772661
d: 8277e0910d750195b448797616e091ad
m: 6f8f57715090da2632453988d9a1501b
i: 865c0c0b4ab0e063e5caa3387c1a8741
n: 7b8b965ad4bca0e41ab51de7b31363a1
(base64는 대소문자 구분을 하기 때문에 이전의 예시에 따라 md5암호화를 할 때 소문자로 인코딩하자. )
<이어 붙인 것>
0cc175b9c0f1b6a831c399e2697726618277e0910d750195b448797616e091ad6f8f57715090da2632453988d9a1501b865c0c0b4ab0e063e5caa3387c1a87417b8b965ad4bca0e41ab51de7b31363a1
<base64 암호화>
MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE4Mjc3ZTA5MTBkNzUwMTk1YjQ0ODc5NzYxNmUwOTFhZDZmOGY1NzcxNTA5MGRhMjYzMjQ1Mzk4OGQ5YTE1MDFiODY1YzBjMGI0YWIwZTA2M2U1Y2FhMzM4N2MxYTg3NDE3YjhiOTY1YWQ0YmNhMGU0MWFiNTFkZTdiMzEzNjNhMQ==
'보안 공부 > webhacking.kr' 카테고리의 다른 글
webhacking.kr 42번 풀이 (0) | 2021.12.14 |
---|---|
webhacking.kr 20번 풀이 (0) | 2021.12.13 |
webhacking.kr 58번 풀이 (0) | 2021.12.13 |
webhacking.kr 23번 풀이 (0) | 2021.12.07 |
webhacking.kr 54번 풀이 (0) | 2021.12.07 |