WEBHACKINGKR-old19

Kim Myeong Hyun·2024년 8월 10일

webhacking

목록 보기
14/14

old-19

들어가니 admin이 입력되어있다. submit 해본다. 될 리가 없다 ㅋㅋ

그 외엔 어떤 아이디도 다 로그인 되길래 흠냐링 하며 editthiscookie를 습관성으로 켜준다.

id가 계속 변하는 건가 하는 마음가짐에 로그아웃 하고 다른 거로 로그인 하려는데, 로그아웃이 안된다. 이럴 때는 burp suite 켜주고 리피터로 전환 해준다.

ad 쳐봤는데 세상에나 한 글자씩 base64 encoding 해서 넘겼나보다 길이가 2배 늘어났다.

근데 %3D 인거 보니, 마지막에 url 인코딩 한 것 같다.

대충 각각 글자로 로그인하고 url decoding→ base64 decoding 해보자.

#url decoding
MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE= #a
ODI3N2UwOTEwZDc1MDE5NWI0NDg3OTc2MTZlMDkxYWQ= #d
NmY4ZjU3NzE1MDkwZGEyNjMyNDUzOTg4ZDlhMTUwMWI= #m
ODY1YzBjMGI0YWIwZTA2M2U1Y2FhMzM4N2MxYTg3NDE= #i
N2I4Yjk2NWFkNGJjYTBlNDFhYjUxZGU3YjMxMzYzYTE= #n

#base64 decoding
0cc175b9c0f1b6a831c399e269772661 #a
8277e0910d750195b448797616e091ad #b
6f8f57715090da2632453988d9a1501b #m
865c0c0b4ab0e063e5caa3387c1a8741 #i
7b8b965ad4bca0e41ab51de7b31363a1 #n

음 32 byte 문자열이다. 감다살로 이건 무조건 md5니 n 하나만 확인해줬다.

문제가 어떻게 구성되었는지 확인했으니 시나리오는

  1. admin 문자열을 하나나하나 md5 encode 한다.
  2. md5 encode 문자열을 base64 encode 한다.
  3. base64 encode 문자열을 url encode 한다.
  4. 쿠키 변조한다.

하나 하나 돌리기 귀찮으니 코드 스근하게 짜준다.

import hashlib
import base64
import urllib.parse

text = "admin"

for i in text:
    md5Encode = hashlib.md5(i.encode()).hexdigest()
    print(md5Encode, end="")
    #0cc175b9c0f1b6a831c399e2697726618277e0910d750195b448797616e091ad6f8f57715090da2632453988d9a1501b865c0c0b4ab0e063e5caa3387c1a87417b8b965ad4bca0e41ab51de7b31363a1

burp suite에서 md5 encode한 문자열 url encode 해서 editthiscookie로 변조하면 잘 풀린다.

  • url encode 하기 전에 base64 문자열의 == 을 %3D%3D로 바꿔서 해도 문제는 풀린다. 똑같음.
profile
Hi, I'm KiMH

2개의 댓글

comment-user-thumbnail
2024년 8월 13일

데브무현의 뛰어난 실력

1개의 답글