[그림 1] 문제화면

 

[그림 2] view source 확인

소스코드를 확인한 결과, encode코드와 decode코드로 나눠져있었다.

base64방식으로 20번 인코딩되고, str_replace로 치환된 후, $var_id, $val_pw에 저장된 값을 쿠키로 지정해주고 있다.

 

 

[그림 3] 쿠키 값 확인

쿠키값을 확인해보니 엄청난 길이의 값이 저장되어 있었다.

 

그리고 decode 하는 부분을 살펴보았다.

[그림 4] Decoding 코드

저장된 'user' 쿠키 값을 $decode_id 에, 저장된 'password' 쿠키 값을 $decode_pw 에 넣고

각각의 변수에 !문자열이 있다면 1로, @가 있다면 2로 ,, 바꿔준다.

그 후 그렇게 바꿔준 값을 base64 방식으로 20번 decoding 해준 후, 웹 페이지에 보여준다.

 

 

그리고 아주 핵심적인 코드!

if($decode_id=="admin" && $decode_pw=="nimda"){  
solve(6);
}

 

admin과 nimda를 base64 방식 암호화 함수로 20번 인코딩해서 쿠키값에 넣어주면 풀릴 것 같다.

 

[그림 5] 인코딩 파이썬 코드
[그림 6] 그 결과

따라서 나온 값을 각각 쿠키값에 넣어줬다.

[그림 7] 쿠키 값 수정

+ Recent posts