Season 1/워게임 Old - 19 Write Up 작성자 - LRTK 문제 페이지에 들어가니, 이상한 input이 있었다. 코드에 스크립트나 주석에 힌트가 있는지, 쿠키가 있는지 확인을 해봤다. 하지만 별다른 것은 없었고, 일단 제출 버튼을 클릭하여 서버에 값을 보내봤다. 어드민이 아니라는 글이 출력되고, 몇 초뒤에 처음봤던 페이지로 이동하였다. 값이 admin이 아닌 값을 보내면 어떻게 작동하는지 확인해봤다. 서버에 a를 보냈더니, a로 로그인이 되었다.그 이후에는 아무 반응이 없어서 코드와 쿠키를 확인해보았는데, userid라는 쿠키가 생성이 되었다. 값을 보니, 맨 뒤에 = (%3D)이 있는 것으로 보아 base64로 인코딩되어있다고 판단하였다. Base64 디코딩된 값인데, 뭔가 더 인코딩이 되어있는 것으로 보인다. 해당 값의 길이가 32글자로, MD5로 해쉬가 된 것으로 판단하여 한번 확인을 해봤다. a을 md5로 인코딩했을 때 나온 값이랑 동일한것을 확인 할 수 있었다. 나는 admin으로 로그인하기 위해 admin를 md5으로 해쉬화 후 base64로 인코딩한 값을 쿠키에 넣어봤지만, error를 반환받았다. 분명 인코딩과 해쉬도 맞았는데 뭐지 싶어서 admi를 서버로 보내서 쿠키를 확인해보았다. 엄청 긴 값이 나와서 좀 당황을 했다.값을 확인하기 위해 base64 디코딩을 진행하였다. 값을 보니, a의 md5값이 맨 앞에 있는 것을 확인할 수 있었다.알파벳 하나하나 md5로 해쉬화 후 합쳐서 base64 인코딩한 것으로 알 수 있었다. 나는 n의 md5 값을 뒤에 붙인 후 base64 인코딩을 하여 쿠키에 넣어서 페이지를 재로딩하였다. 그 결과 Flag를 획득하였다. 내가 문자열 길이를 보고 MD5로 판단할 수 있던 이유는 각 해쉬가 출력하는 문자의 길이가 정해져있기 때문이다. 1. MD5 MD5 출력값 길이 : 128bit (16진수로 32byte) 2. SHA-1 SHA-1 출력값 길이 : 160bit (16진수로 40byte) 3. SHA-256 SHA-256 출력값 길이 : 256bit (16진수로 64byte) 4. SHA-512 SHA-512 출력값 길이 : 512bit (16진수로 128byte) 공유하기 게시글 관리 MSS 'Season 1 > 워게임' 카테고리의 다른 글 Old - 32 Write Up (0) 2021.05.16 Old - 27 Write Up (0) 2021.05.16 Old - 07 (0) 2021.05.16 Old - 54 Write Up (0) 2021.05.15 Old - 39 Write Up (0) 2021.05.15 Contents 당신이 좋아할만한 콘텐츠 Old - 32 Write Up 2021.05.16 Old - 27 Write Up 2021.05.16 Old - 07 2021.05.16 Old - 54 Write Up 2021.05.15 댓글 0 + 이전 댓글 더보기