Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- html5
- 우분투
- soundpool
- Android
- 자동 생성
- 자바스크립트
- 설치
- 안드로이드 gcm
- 폼메일
- javascript
- android 효과음
- 안드로이드 푸시
- mysql
- C#
- roundcube
- not working
- PHP
- FCM
- WebView
- php 취약점
- C# IO
- php 시큐어코딩
- curl
- xe
- chart.js
- 안드로이드 푸쉬
- UML
- 안드로이드
- dovecot
- Mail Server
Archives
- Today
- Total
그러냐
PHP "==" 연산자 취약점 본문
반응형
문제 풀다 md5 충돌(?) 을 가장한 특이한 문제를 보게 되어 정리해 둔다.
이 문제는 md5 collision 이 발생하는 것이 아닌, php 비교문("==") 의 취약점이라고 볼 수 있다.
"==" 비교 연산자와 "===" 의 연산자는 차이가 있는데, "==" 를 사용하면 아래와 같이 의도하지 않은 엉뚱한 결과가 나온다.
root@kali:~/Desktop/# cat test.php
<?
$v1 = "0e1208123";
$v2 = "0e0956871";
if (($v1) == (($v2))){ echo "equal\n"; }
?>
두개의 문자열이 분명 다름에도 불구하고 아래와 같이 같다고 나온다.
root@kali:~/Desktop/# php test.php
equal
자세한 이유는 여기저기 많이 설명되어 있었다.
http://stackoverflow.com/questions/22140204/why-md5240610708-is-equal-to-md5qnkcdzo
요약하면 "==" 는 문자가 모두 숫자로 이루어진 경우, 숫자로 변환하여 비교를 하게 되는데,
위와 같은 경우 둘다 0 으로 변환되어 0=0 이 되어 true 가 된다는 것.
출처: http://hyunmini.tistory.com/76 [Hyunmini]
반응형
'php 시큐어코딩' 카테고리의 다른 글
웹 보안 가이드라인 1. XSS - 초안 (1) | 2017.03.20 |
---|---|
[PHP] strcmp 취약점을 이용한 인증 우회 (0) | 2017.01.26 |
PHP $_SERVER['PHP_SELF'] 취약점 (0) | 2017.01.26 |
php 시큐어 코딩 (0) | 2017.01.26 |
php 취약점 TOP 5 (0) | 2017.01.26 |