안녕하세요.
웹 해킹 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
끝자리 = 는 base64 인코딩 기법에서 끝자리 빈 값을 패딩 시켜줄 때, 주로 사용됩니다.
base64 디코딩을 해보면,
위 그림과 같이 32자리 문자열이 나오는데 32자리 문자열은 md5 해시 기법을 주로 사용한다는 것을 알고 있기에 decoding 해보면, 2가 나오는 것을 알 수 있습니다.
md5.web-max.ca/index.php#enter
결국, 이 문제는 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 |