본문 바로가기

Webhacking/Webhacking.kr

[Webhacking.kr] old-19번 문제 풀이

728x90
반응형

19번 풀이 가즈아

역시나 별게 없다. 
id에 기본적으로 admin이 들어가 있고 제출버튼이 있다.

눌러보니, you are not admin 이 나타난다.
문제를 나름 많이 풀어보면서 느낀점은, 이런식으로 you are not admin이라고 뜬다는 건...
admin으로 어떻게든 성공시키라는 얘기가 된다.

admin이 안되니까 우선 a를 넣어봤다.

a로는 로그인이 된다.
근데 javascript도 따로없고, SQLI도 안되는것 같고... 무슨 문제인가 고민을 하다가, 쿠키를 확인해보니...

userid가 쿠키에 들어가있다. (딱봐도 문제풀이에 100퍼센트 연관이 되어있음을 알 수 있다)
다만 그 값이 base64로 인코딩 되어있는것 같았다.

base64로 디코딩해보니, 32byte의 문자열이 나타났다.
32byte면 뻔하지 않은가. 
MD5로 해쉬화 되어있는 것이다. 
그렇다면 문제를 푸는 방법은 admin의 md5값을 base64로 인코딩 하여 userid 쿠키에 넣으면 될 것이다. 라는 생각이 바로 든다.

다만 여기서 확실하지 않은것이 있다.

  • 이 문제는 admin을 통채로 md5 해쉬화 하여 확인한다...?
  • 이 문제는 admin을 알파벳 하나하나 따로 해쉬화하여 이어붙여 확인한다...?

이 두가지 중 어떤것이 맞는지를 확인하기 위해 테스트를 진행했다.

dmin을 입력하게 제출을 해보자

로그인이 된다.
쿠키를 확인해 보자

아 두번째가 맞았다.
쿠키값이 갑자기 확 늘어났다.
그 말은 즉슨, 한자한자 md5 해쉬화 하여 이어붙인다는 말이 된다.

혹시몰라 base64 디코딩 해보니 역시나 md5로 총 4글자가 존재함을 확인할 수 있었다.
그러면 이어서 할일은 간단하다. 여기에 앞에서 발견한 a에 대한 md5값을 붙이면 된다.

붙였으면 이제 base64로 인코딩하고 URL 인코딩을 한번 해준다.

Edit this cookie를 사용해서 쿠키를 변조한뒤 새로고침을 시도하면

해결!

150점 짜리 문제. 역시 어렵지 않았다.
낮은 점수 문제는 빨리 복습하고 넘어가야겠다.

728x90
반응형