ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • <Webhacking.kr> old-19
    Wargame/Webhacking.kr 2021. 12. 1. 13:47

    old-19

    id 입력 창이 있고 기본 값으로 admin이 들어있다.

    제출을 누르면

    admin이 아니라고 한다.

     

    1을 제출하면

    0을 제출하면 URL에 ?id=0이 붙어있지만 입력 창은 변하지 않는다.

     

    로그아웃 버튼을 눌려도 로그아웃이 되지 않는다. 

    'EditThisCookie'를 통해 userid의 쿠키를 지우면 로그아웃이 된다.

    이것으로 보아 쿠키가 관련있는 것 같다.

     

    1을 제출했을 때의 쿠키 값은

    "YzRjYTQyMzhhMGI5MjM4MjBkY2M1MDlhNmY3NTg0OWI%3D"라는 문자열을 가진다.

    %3D가 있는 것으로 보아 URL Encoding 되어있는 것 같다.

     

    URL Decoding하면 "YzRjYTQyMzhhMGI5MjM4MjBkY2M1MDlhNmY3NTg0OWI="가 나온다.

     

    "YzRjYTQyMzhhMGI5MjM4MjBkY2M1MDlhNmY3NTg0OWI="에 대소문자와 숫자도 있고 끝이 '='이므로 base64로 인코딩되어 있는 것 같다.(base64에서 '='은 끝을 알리는 코드로 쓰임)

    base64로 디코딩해보면 "c4ca4238a0b923820dcc509a6f75849b"가 나온다.

     

    "c4ca4238a0b923820dcc509a6f75849b"의 길이는 32다. 0~f 까지 있는 걸로 보아 16진수임을 알 수 있다.

    16진수로 32자리 문자열이므로 md5로 인코딩 되어 있음을 알 수 있다.

     

    1을 md5로 암호화 해보면 "c4ca4238a0b923820dcc509a6f75849b"가 나옴을 알 수있다.

     

    즉, 내가 입력한 값인 1 -> md5 -> base64 -> URL Encoding을 수행한 결과가 쿠키 값인 것을 알 수 있다.

     

    11을 입력하면 "YzRjYTQyMzhhMGI5MjM4MjBkY2M1MDlhNmY3NTg0OWJjNGNhNDIzOGEwYjkyMzgyMGRjYzUwOWE2Zjc1ODQ5Yg%3D%3D"라는 문자열을 가진다.

    URL Decoding 해보면 "YzRjYTQyMzhhMGI5MjM4MjBkY2M1MDlhNmY3NTg0OWJjNGNhNDIzOGEwYjkyMzgyMGRjYzUwOWE2Zjc1ODQ5Yg=="이 나오고

    base64로 디코딩해보면 "c4ca4238a0b923820dcc509a6f75849bc4ca4238a0b923820dcc509a6f75849b"이 나온다.

    이를 통해 1이상의 문자열은 한번에 처리되는 것이 아니라 한 글자씩 처리되는 것을 알 수 있다.

     

    admin을 위와 같은 방법으로 구한 값을 쿠키 값으로 넣으면 문제가 풀릴 것 같다.

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

    위의 5개 문자열을 한번에 base64 인코딩하면

    "MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE4Mjc3ZTA5MTBkNzUwMTk1YjQ0ODc5NzYxNmUwOTFhZDZmOGY1NzcxNTA5MGRhMjYzMjQ1Mzk4OGQ5YTE1MDFiODY1YzBjMGI0YWIwZTA2M2U1Y2FhMzM4N2MxYTg3NDE3YjhiOTY1YWQ0YmNhMGU0MWFiNTFkZTdiMzEzNjNhMQ==" 문자열이 나온다.

     

    이를 URL Encoding 하면

    "MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE4Mjc3ZTA5MTBkNzUwMTk1YjQ0ODc5NzYxNmUwOTFhZDZmOGY1NzcxNTA5MGRhMjYzMjQ1Mzk4OGQ5YTE1MDFiODY1YzBjMGI0YWIwZTA2M2U1Y2FhMzM4N2MxYTg3NDE3YjhiOTY1YWQ0YmNhMGU0MWFiNTFkZTdiMzEzNjNhMQ%3D%3D" 문자열이 나온다.

     

    그럼 admin을 제출한 페이지에서 이 문자열을 userid 쿠키의 값으로 주고 새로고침을 하면 문제가 풀린다.

     

    'Wargame > Webhacking.kr' 카테고리의 다른 글

    <Webhacking.kr> old-21  (0) 2021.12.03
    <Webhacking.kr> old-20  (0) 2021.12.02
    <Webhacking.kr> old-18  (0) 2021.11.30
    <Webhacking.kr> old-17  (0) 2021.11.30
    <Webhacking.kr> old-16  (0) 2021.11.30
Designed by Tistory.