Hacking/[Web]Webhacking.kr

Webhacking.kr [old-06]

양선규 2023. 6. 4. 00:03
728x90
반응형

Webhacking.kr 사이트의 old-06 문제입니다.

 

 

메인 페이지

 

문제 메인페이지 입니다. ID,PW가 기재되어 있고 특별한 건 없어 보입니다.

소스코드를 확인해 봅시다.

 

 

1
2

 

소스코드입니다.

위쪽부터 살펴보시면, 쿠키의 "user" 값이 존재하지 않을 경우 ID, PW를 guest, 123qwe로 설정합니다.

그리고 그 값을 base64로 20번 인코딩 한 후

숫자를 특수문자로 치환하여

각각 user, password 쿠키값으로 설정합니다.

 

아래쪽 소스코드는, 설정된 user, password 쿠키값을 

특수문자를 숫자로 치환한 후

base64로 20번 디코딩하여

문제 메인 페이지에 출력합니다.

그리고, 만약 출력된 ID,PW값이 admin, nimda라면 문제가 해결됩니다.

 

즉, 우리는 admin, nimda 문자열을 base64로 20번 인코딩한 후 숫자를 특수문자로 치환하여 쿠키값으로 입력하면 되는 것입니다.

우리가 인코딩,치환한 값이 쿠키로 입력될 경우 자동으로 디코딩, 치환작업이 이루어질 것이고

남는 것은 최초 문자열인 admin, nimda가 되겠죠.

 

base64인코딩은 20번 반복 진행해야 하므로 편의를 위해 파이썬 코드로 작성하도록 하겠습니다.

 

 

import base64

id = 'admin'
pw = 'nimda'

id = id.encode('UTF-8')
pw = pw.encode('UTF-8')

for i in range(0,20):
    id = base64.b64encode(id)
    pw = base64.b64encode(pw)

result_id = id.decode('ascii')
result_pw = pw.decode('ascii')

print(f"치환하지 않은 id : {result_id}")
print(f"치환하지 않은 pw : {result_pw}")

result_id = result_id.replace("1","!").replace("2","@").replace("3","$")\
    .replace("4","^").replace("5","&").replace("6","*").replace("7","(").replace("8",")")
result_pw = result_pw.replace("1","!").replace("2","@").replace("3","$")\
    .replace("4","^").replace("5","&").replace("6","*").replace("7","(").replace("8",")")

print(f"치환한 id : {result_id}")
print(f"치환한 pw : {result_pw}")

 

base64인코딩을 위해 UTF-8 인코딩을 먼저 실시한 후

base64인코딩을 20번 반복 수행한 후

숫자를 특수문자로 치환하는 코드입니다.

 

 

결과

 

결과입니다.

치환하지 않은 값, 치환한 값 모두 출력합니다.

 

 

쿠키값 대입

 

Burp Suite를 이용해서, 인코딩 후 치환된 쿠키값을 각각 user, password에 대입해 줍시다.

 

 

해결

 

이렇게 old-06 문제가 해결되었습니다. 저는 이미 풀었기 때문에 already solved가 출력되었습니다.

 

=============================

 

제가 위에서 치환한 값, 치환하지 않은 값 모두 구했는데요. 이유는 두개 다 답이 되기 때문입니다.

치환한 값이든 치환하지 않은 값이든 쿠키에 대입하면 문제가 해결됩니다.

 

치환한 값을 쿠키에 대입해도, 어차피 복호화 과정에서 특수문자->숫자로 변경된 후 디코딩이 진행되기 때문에 결과에 차이가 없습니다. 

728x90
반응형

'Hacking > [Web]Webhacking.kr' 카테고리의 다른 글

Webhacking.kr [old-14]  (0) 2023.06.04
Webhacking.kr [old-17]  (0) 2023.06.04
Webhacking.kr [old-01]  (0) 2023.06.04