본문 바로가기

Computer/0x00 정보보안

[OWASP webgoat]Spoof an Authentication Cookie 문제풀이

[OWASP webgoat]Spoof an Authentication Cookie 문제풀이




 녕하세요. 현재 BOB2기 발표 기다리느나 수명이 줄어든 파크야 입니다 :)

언제쯤 발표가 날런지 이제는 발표와 상관없이 편안한 마음으로 있는게 정신적으로 좋을것 같습니다.


이번 시간에는 OWASP webgoat 에서 Spoof an Authentication Cookie  라는 문제를 풀어 보도록 하겠습니다.

이번 war game은 추리소설 같이 공통적인 단서를 찾아서 푸는 것이라고 볼 수 있겠군요.



Spoof an Authentication Cookie 문제




- '인증쿠키가 어떻게 위조 되는지에 대한 메커니즘' 을 학습하는 문제 입니다.
이번 실습을 위해서 'COOXIE' 라는 툴을 사용하실 것을 권장 해 드립니다.


문제: [앨리스의 PW를 모르는 상태로 로그인을 하라]
-  전형적인 SESSION 공격에 해당 합니다 

문제에서 2명의 ID와 PW가 주어집니다. 바로 webgoat 와 aspect 입니다.
두 아이디로 로그인해서 쿠키를 잡아보면 다음과 같습니다.


[ 2명의 ID 와 PW ] 

ID: webgoat
PW: webgoat
쿠키: 65432ubphcfx


ID: aspect
pw: aspect
쿠키: 65432udfqtb



웹해킹을 공부할떄 쿠키변조 공격을 대부분 수행해 보시게 됩니다.
이는 왠만한 애플리케이션들이 인증쿠키가 조건으로 지정되면 자동으로 그 사이트에 사용자로 로그인 되는
알고리즘을 갖고 있습니다.

이 알고리즘을 파악하면 추측도 할 수 있으며, 쿠키값은 클라이언트에 남게 되며 여기서
바로 보안취약점이 발생하여 해킹의 위험소지가 생깁니다.




Spoof an Authentication Cookie 문제풀이






앨리스의 비밀번호를 모르는 상태로 로그인을 시도 하려면 '인증우회'를 해야만 합니다.

일단 우리가 알아낼 수 있는 조건은 위와 같습니다.


webgoat 와 aspect 의 쿠키의 공통점을 추출해 보겠습니다.

이것이 '복호화' 과정 입니다.



[ 공통점 ]


1. 앞의 5개는 숫자이며, 65432가 똑같다.

2. 뒤의 알파벳의 갯수는 5개 이다.

3. ID의 알파벳의 다음 알파벳이 쿠키값 뒤의 알파벳과 같다. (중요)


ID: webgoat 를 예를 든다면, 첫번쨰 알파벳 'w' 다음 알파벳은 'x' 입니다.

그런데 쿠키값의 맨뒤의 알파벳이 'x' 입니다.


이런식으로 매칭 시켜보면 ID의 알파벳 다음 알파벳이 쿠키의 끝에서 부터 한글자씩

딱 맞아 떨어집니다.


그렇다면 우리가 alice로 로그인 하기 위해 쿠키값을 만들어야 한다면,

ID: alice 의 알파벳을 뒤에서부터 매치 시켜보면 ' fdjmb ' 가 나옵니다.

여기서 공통적으로 들어가는 65432를 합치면 정답은,

65432fdjmb 입니다.


맞는지 cooxie 에서 변조를 해서 로그인을 시도해 보았습니다.




▲ 복호화 쿠키를 복사해서 붙여넣은후에 set' 버튼을 눌러서 적용시켜 줍니다.


그후에, Refresh 버튼을 눌러서 새로고침을 해줍니다.





▲ 축하합니다. 미션을 통과 했습니다 ^^