티스토리 뷰
반응형
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 가 있다.
반응형
'Web > Concept' 카테고리의 다른 글
[Concept] PHP의 이스케이프 처리함수 목록 (0) | 2019.07.18 |
---|---|
[Concept] PHP 백도어에서 자주사용하는 함수. (0) | 2019.07.17 |
[취약점 점검 실습] 파일업로드 취약점 실습(1) (0) | 2019.07.17 |
[Concept] PHP strcmp 취약점 우회 (0) | 2019.07.15 |
[Concept] WhiteSpace 언어 (0) | 2019.07.15 |