PHP string 비교 취약점
2016. 11. 20. 01:30
PHP string 비교 취약점
오늘 준비한 취약점은 Magic hashes라고 불리는 유명한 취약점이다.
※이 문서는 다음 문서를 보고 작성한 문서입니다.
(URL : http://marcosvalle.github.io/ctf/php/2016/05/12/php-comparison-vlun.html )
Magic Hashes Vulnerability
▲ [사진 1] 취약점이 있는 PHP 소스
위와 같은 PHP 소스가 있다. 어떤 결과가 나올까.
▲ [사진 2] 취약점이 있는 PHP 소스의 결과
띠용?? 분명히 두 문자열을 서로 다른데도 불구하고, 참인 결과가 출력됐다.
PHP는 "0e"를 과학 표기법으로 해석한다. 그래서 $str2에 있는 문자열은 자동으로 숫자 표현으로 형변환된다.
▲ [사진 3] 코드를 조금 손봤다.
취약점을 막기 위해서 비교 연산자를 "==" 에서 "==="로 바꿨다.
▲ [사진 4] 조금 손 본 코드의 결과
=== 연산자는 체크하기 전에 피연산자의 유형을 검사한다. 따라서 false의 결과값이 나온 것이다.
'Hacking > Web.' 카테고리의 다른 글
[wargame.kr] fly me to the moon write up (0) | 2016.11.20 |
---|---|
[wargame.kr] type confusion write up (0) | 2016.11.20 |
[Slipper's CTF] SQL Injection TEST (0) | 2016.11.17 |
[wargame.kr] already got (0) | 2016.11.17 |
[SQL Injection] union 우회. (0) | 2016.11.12 |