▼ Challenge 19는 다음과 같습니다.
소스코드에도 특별한 것이 없어,
"test"라고 입력하고 Paros를 이용해 패킷을 살펴 보니
▼ 전송 과정에서 SetCookie를 통해 서버에서 쿠키를 받아와서 인증을 한다는 것을 알 수 있습니다.
"test"라고 입력하고 쿼리를 보냈을 때, Cookie의 userid의 값은
ZTM1OGVmYTQ4OWY1ODA2MmYxMGRkNzMxNmI2NTY0OWVlMTY3MTc5N2M1MmUxNWY3NjMzOD
BiNDVlODQxZWMzMjAzYzdjMGFjZTM5NWQ4MDE4MmRiMDdhZTJjMzBmMDM0ZTM1OGVmYTQ4OW
Y1ODA2MmYxMGRkNzMxNmI2NTY0OWU%3D
입니다.
문제에 어느 정도 익숙해지신 분들이라면 한눈에 보고 Base64로 인코딩 된 값이라는 것을 알수 있겠죠?
Base64로 디코딩을 해보니 끝자리 값이 깨지더군요.
자세히 보니 "%3D"로 URL 인코딩 되어 있었습니다. %3D는 "="입니다.
다시 "%3D"를 "="으로 고치고, Base64 디코딩을 해 보니
e358efa489f58062f10dd7316b65649ee1671797c52e15f763380b45e841ec3203c7c0ace395d
80182db07ae2c30f034e358efa489f58062f10dd7316b65649e
위와 같은 값이 나왔습니다.
▼ 자리 수를 알아볼까요?
128자리라면... 4로 나누었을 때, 4개씩 끊을 수 있습니다.
4개씩 끊으면 32자리....
32자리라면... MD5로 암호화된 값이라는 것을 알아 차릴 수 있습니다.
자리 수에 관해서는 저번 문제에서 다루었으므로 04번 문제를 참고해주시기 바랍니다.
▼ 32자리씩 4개로 끊어서 MD5로 복호화 해보니, 원래 값인 "test"라는 값이 나왔습니다.
e358efa489f58062f10dd7316b65649e |
t |
e1671797c52e15f763380b45e841ec32 |
e |
03c7c0ace395d80182db07ae2c30f034 |
s |
e358efa489f58062f10dd7316b65649e |
t |
즉, 암호화 과정은
1. 32바이트씩 MD5 암호화
2. Base64 인코딩
입니다.
이제 암호화 과정을 알았으니, "admin"이라는 단어를 위 과정 처럼 암호화하여
Cookie에 입력하여 인증하면 문제가 풀릴 것 같습니다.
▼ 우선 a, d, m, i, n을 각각 MD5로 암호화 합니다.
a |
0cc175b9c0f1b6a831c399e269772661 |
d |
8277e0910d750195b448797616e091ad |
m |
6f8f57715090da2632453988d9a1501b |
i |
865c0c0b4ab0e063e5caa3387c1a8741 |
n |
7b8b965ad4bca0e41ab51de7b31363a1 |
▼ 이것을 합쳐서 Base64로 인코딩 합니다.
MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE4Mjc3ZTA5MTBkNzUwMTk1YjQ0ODc5NzYx
NmUwOTFhZDZmOGY1NzcxNTA5MGRhMjYzMjQ1Mzk4OGQ5YTE1MDFiODY1YzBjMGI0YWIwZTA2
M2U1Y2FhMzM4N2MxYTg3NDE3YjhiOTY1YWQ0YmNhMGU0MWFiNTFkZTdiMzEzNjNhMQ==;
이 값을 Cookie의 userid에 입력하면 Success!
( 마지막 == 는 %3D%3D로 바꾸어줘야 하는 것 잊으시면 안됩니다. )
'WarGame > webhacking.kr' 카테고리의 다른 글
[webhacking.kr] Challenge 27 :: SQL Injection (like) (0) | 2015.11.18 |
---|---|
[webhacking.kr] Challenge 25 :: LFI (Local File Inclusion) 취약점 (0) | 2015.11.17 |
[webhacking.kr] Challenge 39 :: SQL (싱글쿼터) (0) | 2015.11.16 |
[webhacking.kr] Challenge 38 :: Log Injection (0) | 2015.11.16 |
[webhacking.kr] Challenge 04 :: Base64, SHA1 (0) | 2015.11.16 |