꿈이 너무 많은 한 대학생의 공간

Webhacking.kr(old) 6번 문제풀이 본문

정보보안 공부/Webhacking.kr(old)

Webhacking.kr(old) 6번 문제풀이

청울울청 2020. 5. 5. 12:32

이번 문제는 쉬운 편입니다.

소스를 확인해보겠습니다.

첫 번째 코드는 user 쿠키값이 없을 시의 조건문입니다.

user 쿠키값이 없을 시 "guest", "123qwe" 를 각각 base64 인코딩을 20번 반복하고 1, 2, 3, 4, 5, 6, 7, 8 숫자를 각각 !, @, $, ^, &, *, (, ) 로 치환하고, 각각 user, password 쿠키값으로 저장하는 코드입니다.

 

두 번째 코드는 user 와 password 쿠키값을 가져오고, 위와 같이 특수문자를 숫자로 치환한 뒤 base64를 20번 디코딩 한 후 나온 결과값이 각각 admin, nimda 일 시 해결되는 문제입니다.

 

알고리즘은 간단하니 코드를 작성해보도록 할게요.

 

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

text 내의 값을 20번 인코딩 후, 숫자를 특수문자로 치환하는 알고리즘입니다.

두 번째 코드의 알고리즘을 반대로 실행하면 풀 수 있습니다.

실행 시 이렇게 긴 문자열이 나오게 됩니다.

그걸 쿠키값을 편집해서 대입하면 됩니다.

짠!

Comments