Webhacking Writeup old-19번 문제입니다.
처음 사이트에 접속하면 admin이 입력되어 있으며 제출을 누를시
아래와 같이 어드민이 아니라며 로그인되지 않고 몇초가량 이후
원래 페이지로 돌아갑니다.
예상하기로는 admin으로 로그인 하는 것이 목표인것 같습니다.
admin으로 로그인이라면 가장 있을 법한 guest를 시도 해보았습니다.
guest에 성공을 했으나 어떠한 소스코드를 주는 것이 없어 여러가지를 살펴보다
쿠키값이 생성되어 있는 것을 확인 할 수 있었습니다.
여기서 눈에 띈것이 맨 뒤에 있는 == 부분입니다.
이러한 방식을 사용하는 암호는 base64가 가장 유력하기에 복호화를 시도해봤습니다.
예상대로 깨진 부분없이 복호화가 되었으나 복호화된 문장도 암호화되어 있는 것으로 확인되어
base64로 재복호화 해봤습니다.
시도는 좋았으나 복호화된 문장이 깨져있는 것으로 보아 base64로 암호화된 문장이 아닌것으로 판단됩니다.
도저히 모르겠어서 이번에는 user 로 로그인을 시도해보았습니다.
user 도 마찬가지로 맨뒤에 = 가 붙어있는 것을 보아 base64 암호화의 사용을 판단
복호화를 시도하니
복호화가 되었습니다. 그러나 이전 guest보다 문장이 짧아진것을 확인할 수 있었습니다.
user과 guest의 차이라고는 4글자와 5글자 즉 1글자의 차이가 32글자의 차이로 나타납니다.
여기서 32글자라는 것을 보고 md5암호라는 것을 생각 할 수 있었습니다.
해서 user을 base64복호화 한값을 32글자로 나눠보니 딱 4등분이 나옵니다.
즉 u s e r 을 각각 md5암호화 했다는 것을 유추 할 수 있었습니다.
이를 확인하기 위해 md5암호화를 시도해봤습니다.
u를 암호화 한 값이 첫번째 32개의 문장과 일치하고
두번째 s도 일치하는 것을 보고 예상이 맞았다는 것을 알 수 있었습니다.
그럼 우리가 로그인해야 하는 값은 admin이므로 a d m i n을 각각 md5로 암호화후
암호문 전체를 base64로 암호화후 userid 쿠키값에 삽입하면 해결 될 것입니다.
위 값이 a d m i n을 md5암호화 한 값이고
위 값을 base64로 암호화 한 값이 아래 사진입니다
암호화를 끝낸 값을 userid 쿠키값에 삽입해보니
문제가 해결되었습니다!
'Wargame(Web) > Webhacking.kr Writeup' 카테고리의 다른 글
Webhacking Writeup 38번 문제 (0) | 2022.07.28 |
---|---|
Webhacking Writeup 23번 문제 (0) | 2022.07.28 |
Webhacking Writeup 32번 문제 (0) | 2022.07.20 |
Webhacking Writeup 26번 문제 (0) | 2022.07.20 |
Webhacking Writeup g00gle1 문제 (0) | 2022.07.07 |