webhacking/client

webhacking.kr 6번

qkqhxla1 2014. 8. 10. 13:46

http://webhacking.kr/challenge/web/web-06/index.php

 

참고 포스팅 : http://qkqhxla1.tistory.com/entry/md5-sha1-base64%EB%93%B1%EC%9D%98-%EC%9D%B8%EC%BD%94%EB%94%A9%EB%94%94%EC%BD%94%EB%94%A9


6번 입니다. 소스봐서 문제코드를 해독한 후 역으로 따라올라가면 답이 나올겁니다.

 

1. 'admin' 문자열을 20번 인코딩

 

2. $decode_id=str_replace("!","1",$decode_id); 

~~ 등의 규칙으로 문자열을 역으로 변경.


3. user,password라는 쿠기값에다 저 값을 집어넣음.


역시 파이썬으로 아주 쉽게 가능합니다.


1번과정.

import base64

str = 'admin'
for i in range(0,20):
    str = base64.b64encode(str)

말그대로 20번 인코딩. 이런 문제 풀이 꼭 인코딩 사이트가서 복붙신공으로 20번 하라고하는데

솔직히 20번하면 문자열도 엄청나게 길어지고 내가지금 20번 했는지도 잘 기억 못할수도 있습니다.

그리고 가장 중요한 이유로 멋도 없죠.

위처럼 간단한 코드로 20번 인코딩이 가능합니다.

 

2번과정까지 추가하면.

import base64
 
str = 'admin'
for i in range(0,20):
    str = base64.b64encode(str)
 
str = str.replace('1','!');
str = str.replace('2','@');
str = str.replace('3','$');
str = str.replace('4','^');
str = str.replace('5','&');
str = str.replace('6','*');
str = str.replace('7','(');
str = str.replace('8',')');
str = str.replace('1','!');
print str


 

 

나옵니다. 엄청나게 짧은 코드로 많은 일을 할수 있습니다.

 

인코딩 사이트에서 20번 노가다하는것보다 파이썬 익숙해지는게 좋겠죠?

'webhacking > client' 카테고리의 다른 글

codeshell.kr readonly  (0) 2014.09.24
webhacking.kr 12번  (0) 2014.08.31
webhacking.kr 5번  (0) 2014.08.19
webhacking.kr 12번  (0) 2014.08.15
webhacking.kr 1번.  (0) 2014.08.11