Self-Improvement

php 비교 연산자 취약점(md5 매직해시) 본문

Web

php 비교 연산자 취약점(md5 매직해시)

JoGeun 2018. 10. 20. 14:31



*매직 해시
- 비교 연산을 할때 Type Juggling을 이용하여 서로 다른 값이 같은 값으로 인식되도록 하는 특수한 동작
0e<숫자>일 경우에는 PHP에서의 "=="연산자 기호로는 값이 0이 되는 것
※Type Juggling : 변수를 정의하지 않아도 타입을 자동으로 설정해주는 것
  
*특수 숫자포맷
- 16진수 : 0xC(10진수 값으로 12)
- 8진수 : 0o11 (10진수 값으로 9)
- 지수 : 3e2(10진수 값으로 3*10^2=300)
md5 ex)
240610708 : 0e462097431906509019562988736854
QNKCDZO : 0e830400451993494058024219903391

*실습
#vi test.php
변수 a와 b를 선언해주면서 0e로 시작하며 숫자로만 되어있는 값을 설정해준다.




실행시켜보면 true가 나오게 된다.




형변환하지 않는 비교 연산자인 "==="을 사용해보면 false로 나오게 된다.

    





         

 

'Web' 카테고리의 다른 글

PHP 문자열 필터링 함수 취약점(POSIX Regex --> PCRE Regex)  (0) 2018.10.20
php strcmp() 함수 취약점  (0) 2018.10.20
XML, JSON, Ajax, SOAP, REST  (0) 2018.10.20
쿠키와 세션  (0) 2018.10.20
Web VS WAS  (0) 2018.10.20