본문 바로가기
[웹해킹]/[Webhacking.kr]

[Webhacking.kr] 19번

by Hevton 2020. 9. 28.
반응형

1을 넣어본다

어쩌라고

로그아웃 안된다. 사이트 에러인듯 싶다ㅜ.

 

그냥 url값으로 바꿔주며 뭔갈 얻어내야 했다.

일단 이상태로 오면 기존에 없던 쿠키값이 생긴다.

YzRjYTQyMzhhMGI5MjM4MjBkY2M1MDlhNmY3NTg0OWI%3D

%3D가 있는걸로 보아 현재 문자가 UrlEncoding 되어있는 상태를 미루어 짐작해볼 수 있다.

UrlDecoding 해주면 나머지 문자들은 그대로고 %3D만 '='로 바뀌게 된다.

YzRjYTQyMzhhMGI5MjM4MjBkY2M1MDlhNmY3NTg0OWI= //UrlDecoding 이후.

대소문자가 구분되어있고, 숫자도 있으며 = 문자도 있는 것을 미루어 Base64 인코딩 방식을 사용했다는 것을 알 수 있다.

 

%3D는 '='  문자로 base64에서 인코딩 시 공백을 표현하는 방식이다.

ps. 디코딩 해줄 때에는 '='를 제거해주고 디코딩 해주는 것이 깔끔하다.

 

따라서

YzRjYTQyMzhhMGI5MjM4MjBkY2M1MDlhNmY3NTg0OWI=

또는

YzRjYTQyMzhhMGI5MjM4MjBkY2M1MDlhNmY3NTg0OWI

이걸 base64로 디코딩시켜보면

 

c4ca4238a0b923820dcc509a6f75849b 라는 문자가 나온다.

구글 개발자 콘솔에 "c4ca4238a0b923820dcc509a6f75849b".length 확인결고 길이가 32다.

 

16진수로 길이가 32라면 빼박 md5다.

 

▶︎ 참고

md5 -> 128비트 -> 2의 4승이 16진수이므로, 4로 나누면 32. 16진수 32자리.

sha-1 -> 160비트 -> 마찬가지로 계산하면 16진수 40자리.

sha-256 -> 256비트  -> 마찬가지로 계산하면 16진수 64자리.

 

세 해싱 함수는 정말 자주 등장하는 함수이므로

16진수 32자리면 md5, 40자리면 sha-1, 64자리면 sha-256 이라는 것을 외워두면 좋다.

 

어쨌든, 내가 1을 입력했을 때 c4ca4238a0b923820dcc509a6f75849b 가 나온거기 때문에,

1의 md5값이 저것인지를 확인해보면 맞다는 것을 알 수 있다.

 

 

즉 내가 입력한 값에 대해 md5해싱한 뒤 base64인코딩 한 뒤 url인코딩 하여 쿠키값 안에 넣는 형식이다.

 

그래서 admin을 md5해싱한 뒤 base64 해싱하고 url 인코딩하여 쿠키값으로 넣어줬더니

에러가 뜬다.

뭘까. 일단 암호화가 어떤 형식으로 진행되는진 알았으므로, 다른 값을 입력해보면서 뭐가 잘못된건지 알아봐야했다.

 

아까 1을 입력했으니 11을 입력해봤다.

YzRjYTQyMzhhMGI5MjM4MjBkY2M1MDlhNmY3NTg0OWJjNGNhNDIzOGEwYjkyMzgyMGRjYzUwOWE2Zjc1ODQ5Yg%3D%3D

//UrlDecoding
YzRjYTQyMzhhMGI5MjM4MjBkY2M1MDlhNmY3NTg0OWJjNGNhNDIzOGEwYjkyMzgyMGRjYzUwOWE2Zjc1ODQ5Yg==

//Base64Decoding
c4ca4238a0b923820dcc509a6f75849bc4ca4238a0b923820dcc509a6f75849b

 

그랬더니 md5해시 해시 함수값으로 1의 해싱값이 연속으로 붙여서 나온 것을 알았다.

 

아 한자리씩 md5해싱 한 뒤에 묶어서 Base64Encoding해주고 UrlEncoding해주면 되겠다는 것을 알 수 있다.

 

'a', 'd', 'm', 'i', 'n' 5자리를 차례로 md5 해싱해준다.

a = 0cc175b9c0f1b6a831c399e269772661
d = 8277e0910d750195b448797616e091ad
m = 6f8f57715090da2632453988d9a1501b
i = 865c0c0b4ab0e063e5caa3387c1a8741
n = 7b8b965ad4bca0e41ab51de7b31363a1

이걸 묶어서

0cc175b9c0f1b6a831c399e2697726618277e0910d750195b448797616e091ad6f8f57715090da2632453988d9a1501b865c0c0b4ab0e063e5caa3387c1a87417b8b965ad4bca0e41ab51de7b31363a1 값을 base64 인코딩해준다.

->

MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE4Mjc3ZTA5MTBkNzUwMTk1YjQ0ODc5NzYxNmUwOTFhZDZmOGY1NzcxNTA5MGRhMjYzMjQ1Mzk4OGQ5YTE1MDFiODY1YzBjMGI0YWIwZTA2M2U1Y2FhMzM4N2MxYTg3NDE3YjhiOTY1YWQ0YmNhMGU0MWFiNTFkZTdiMzEzNjNhMQ==

이걸 UrlEncoding해준다

->

MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE4Mjc3ZTA5MTBkNzUwMTk1YjQ0ODc5NzYxNmUwOTFhZDZmOGY1NzcxNTA5MGRhMjYzMjQ1Mzk4OGQ5YTE1MDFiODY1YzBjMGI0YWIwZTA2M2U1Y2FhMzM4N2MxYTg3NDE3YjhiOTY1YWQ0YmNhMGU0MWFiNTFkZTdiMzEzNjNhMQ%3D%3D

 

이 값을 쿠키값에 넣어주고 새로고침

반응형

'[웹해킹] > [Webhacking.kr]' 카테고리의 다른 글

[Webhacking.kr] 21번  (0) 2020.10.02
[Webhacking.kr] 20번  (0) 2020.09.30
[Webhacking.kr] 18번  (0) 2020.09.28
[Webhacking.kr] 17번  (0) 2020.09.28
[Webhacking.kr] 16번  (0) 2020.09.28