본문 바로가기

웹 해킹 (Web)/webhacking.kr

[webhacking.kr] 웹해킹.kr old-6번 (100)

728x90
반응형

이번에는 webhacking.kr의 old-6번 문제입니다. 소스 코드를 이용하는 문제고, 100점이 배점되어 있습니다.

 

문제에 들어가면 위와 같은 화면이 나옵니다. ID와 PW를 가르쳐 주는가 봅니다. 소스 코드를 보겠습니다.

 

소스 코드를 두 단계로 나누어 보겠습니다. 첫 번째 코드는 encode를 하는 코드입니다.

 

val_id와 val_pw를 base64 방식으로 20번 encode하고, str_replace() 과정을 거쳐서 쿠키에 저장합니다.

 

쿠키에 아주 긴 값이 들어가 있는 것을 보니 맞는 것 같습니다.

 

두 번째 코드는 암호화를 한 역순으로 복호화를 해줍니다.

 

str_replace() 과정을 먼저 거치고, base64 방식으로 20번 decode 해줍니다.

 

마지막 부분에서 decode_id가 admin이고 decode_pw가 nimda이면 문제가 해결될 것 같습니다.

 

그럼 admin과 nimda를 각각 20번씩 base64 방식으로 encode 해주고, str_replace() 과정을 거쳐서 쿠키에 저장하면 됩니다.

 

base64방식으로 인코딩은 burpsuite와 같은 툴을 사용하여도 되고, 직접 프로그래밍 하셔도 되고, 구글에 'base64 encode'로 검색하셔도 됩니다. 저는 burpsuite로 구하였습니다.

 

암호화된 문자열들을 admin과 nimda 변수에 각각 대입하였습니다.

 

그리고 python의 replace() 함수로 치환해줍니다. 그리고 이를 print() 해서 쿠키값을 구합니다.

 

구한 쿠키값들을 쿠키 에디터로 저장하고, 새로고침을 해주면 문제를 해결할 수 있습니다.

 

 

728x90
반응형