오늘 포스팅은 오 마이 매직해시!! 입니다!!
1. 매직해시
오 마이 매직해시 라고 말했지만 그냥 매직해시 관련된 이야기를 하고자 합니다.
워게임을 풀면서 매직해시라는 것을 많이 접했었는데 아 그냥 md5를 뚫는 것인가.. 라고 생각했었습니다.
이번에 정확한(?) 정의를 알게 된 것 같아 남겨둡니다.,,
매직해시는 PHP의 == 을 이용하는 것입니다.
2. 느슨느슨 ==
PHP는 비교적 부드럽꼬 느슨(?)합니다.
만약 "0" == 0 이라는 비교 문이 있다면 어떻게 될까요?
하나는 정수형이고 하나는 문자열이니까 서로 다른 걸까요? 아니면 둘 다 0을 의미하니까 같은 걸까요?
정답은... 후자가 정답입니다.
만약 자료형 까지의 비교를 원한다면 === 을 통해서 비교를 해야합니다. 그러면 저 비교는 true가 아닌 False를 반환하게 될 것입니다.
"0e123" == "0e456" 의 경우 이 둘을 float로 변환하여 비교하기 때문에 0.0 == 0.0 으로 변환되어 본의 아닌 참이 되게 됩니다.
그래서 이에 대한 대책으로 암호화를 시키라고 말하는 데 md5 나 어떤 암호화 방식이든 결과값으로
0e숫자 의 형태로 나오는 경우가 있고 아주 안전하지는 않을 듯 합니다.
3. 결론
그냥 알아두려고요.. 나중에 개발할 때 이런 포맷에 대한 처리를 해놔야 겠네요..!
그리고 혼잣말 하는 것같아서 그냥 다음부턴 다시 ~다 로 끝내야 겠어요.. :(
참조문서 :
https://www.whitehatsec.com/blog/magic-hashes/
https://blog.zerglinggo.net/h4ctf-1%ED%9A%8C-web-50-%EB%A7%88%EB%B2%95%EC%97%90-%EA%B1%B8%EB%A6%B0-%EA%B2%83-%EA%B0%99%EC%95%84-write-up/
https://blog.lael.be/post/1238
'Security > WEB' 카테고리의 다른 글
[ 01 ] Log Injection : 로그 추가 (0) | 2017.12.10 |
---|