Web/Concept
[Concept] PHP Magic Hash 취약점
ch4njun
2019. 7. 15. 21:27
반응형
PHP에서 Magic Hash란 사실 취약점이라기보다 특수동작이다.
A == B 를 비교하면 두개의 자료형이 달라도 데이터만 일치하다면 TRUE를 반환한다.
( 이를 방지하기 위해서는 A === B 를 사용하면 된다. )
예를 들면, ( '0' == 0 ) 의 결과는 TRUE이다 !!
( String과 int를 비교하면 int로 형변환되어 비교된다. )
여기서 지수(exponential) PHP에서 Magic Hash란 사실 취약점이라기보다 특수동작이다.
여기서 지수(exponential) 를 통한 트릭으로 인증을 우회할 수 있다.
0e1234 를 계산하게되면 결과가 0이된다는 점을 이용하는 것이다 !!
( '0e1234' == 0 ) 의 결과가 TRUE라는 뜻이다. ★★★
여기서 md5($v1) == md5($v2) 의 경우 md5 해쉬결과가 0e로 시작하는 문자열이라면 TRUE를 받아 해당 검증을 우회할 수 있다. 그러면 각 해쉬함수 별로 0e로 시작하는 키값만 알고있으면 된다는 뜻이다.
추가로 md5에서 문자열은 QNKCDZO 가 있다.
반응형