Web hacking.kr 6번

Sirius·2023년 3월 15일

소스코드를 살펴보자

1. user쿠기 value가 없는 경우


쿠키의 초기값을 세팅하는 코드인것으로 보인다. 우리는 쿠키값을 의도적으로 바꿀것이므로 관계가 없어보인다.

2. 쿠키값 decode

1. replace

만약 의도적으로 쿠키를 조작했다고 가정하자, 그러면 우리의 쿠키 value는 가장먼저 소스코드 형식대로 replace를 당한다.

2. base64디코딩 20번

replace당한 value는 base 64로 20번 디코딩당한다.

3. admin, nimda와 일치여부

만약 id value를 디코딩한 값이 "admin"이고 pw를 디코딩한 값이 "nimda"면 문제가 풀리게 된다.

따라서 결론은 admin, nimda를 20번 연속해서 디코딩하고 replace를 반대로 주면 값이 나온다. 이 값을 쿠키 value에다가 넣어주면 끝난다.

파이썬 코드

고민하다가 결국 코드를 짰다.

https://github.com/S-SIRIUS/WEB_SECURITY/blob/main/base64.py

0개의 댓글