Webhacking.kr 19번 문제풀이

동스토리 ㅣ 2020. 12. 7. 18:56

반응형

안녕하세요.

 

웹 해킹 19번 문제풀이 하겠습니다.

 

해당 문제는 두 가지 해결방안을 제시해보도록 하겠습니다.

 

admin을 입력하니 "you are not admin"이라는 문구가 나오네요

 

 

#문제 해결 1

 

GET 방식으로 SQL 인젝션 방식으로 admin 뒤를 주석 처리하여 문제를 해결

 

 

 

#문제 해결 2

 

2를 제출해보니까 "hello 2"라는 문구를 출력해주고 있습니다.

 

EditThisCookie를 사용하여 Cookie값을 확인해보면

 

 

마지막 %3D를 보아 URL-Encoding 한 것을 알 수 있고, URL-Decoding 해보았다.

 

www.convertstring.com/ko/EncodeDecode/UrlDecode

 

URL 디코드 - 온라인 URL 디코더

 

www.convertstring.com

끝자리 = 는 base64 인코딩 기법에서 끝자리 빈 값을 패딩 시켜줄 때, 주로 사용됩니다.

base64 디코딩을 해보면,

 

위 그림과 같이 32자리 문자열이 나오는데 32자리 문자열은 md5 해시 기법을 주로 사용한다는 것을 알고 있기에 decoding 해보면, 2가 나오는 것을 알 수 있습니다.

 

md5.web-max.ca/index.php#enter

 

MD5 hash decrypter / decoder: Reverse lookup MD5 hashes online with this tool

Tools to decode / decrypt / reverse lookup MD5 hashes This tool searches multiple MD5 rainbow tables for matches to a large number of MD5 hashes. MD5 is a hashing algorithm and therefore is technically not encryption, but hashes can be resolved and reverse

md5.web-max.ca

결국, 이 문제는 admin을 한 글자씩 md5 -> base64 하여 쿠키 값을 입력해주면 문제를 해결할 수 있다는 것을 알 수 있습니다.

 

파이썬 코드를 사용하여 나온 결과값을 쿠키 값에 넣어주면, (참조: hoppipolla0507.tistory.com/8)

import base64
import hashlib
str = 'admin'
md5 =''
for i in range(0, 5) :
    char = str[i]
    result = hashlib.md5(char.encode()).hexdigest()
    md5 +=result
    print(result, char)

b = md5.encode("UTF-8") ## base64 인코드 및 디코드함수는 모두 바이트형 객체를 필요 따라서 문자열을 UTF-8인코딩
encode_result = base64.b64encode(b)
print(encode_result)

 

 

감사합니다.

 

 

 

반응형

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

Webhacking.kr 21번 문제풀이  (4) 2020.12.19
Webhacking.kr 20번 문제풀이  (0) 2020.12.09
Webhacking.kr 18번 문제풀이  (0) 2020.12.06
Webhacking.kr 17번 문제풀이  (0) 2020.12.04
Webhacking.kr 16번 문제풀이  (0) 2020.11.29