티스토리 뷰

반응형

PHP에서는 변수에 따로 Data Type을 지정하지 않는다.

 

그래서 위와같은 비교구문에서 취약점이 발생하기도 하는데,

gen_key()는 항상 다른 문자열 Key를 반환해주는 함수이다. 근데 내가 입력한 값과 그 반환된 Key가 같게 할 수 있을리가 없다. 무작위로 반환해주는 것을 무슨수로 맞춰..?

 

이 표를 보면 PHP에서 == 으로 비교를 했을 때 "php" 문자열과 TRUE 불린값을 비교하면 TRUE가 나온다.

또한 "php" 문자열과 정수 0을 비교해도 TRUE가 나온다.

 

여기서 "php"는 임의의 문자열이고 어떤 문자열이와도 TRUE, 0 둘중하나로 비교하게되면

결과값은 TRUE가 나온다는 말이다. 진짜 말도안되는 일이 벌어지는 것이다....

 

그래서 내가 $json->key에 TRUE 혹은 0으로 값을 넣어주기만 한다면 해당 검증은 우회가 될 것이다.

 


 

추가로 위 표에서 볼만한 내용은, ""랑 FALSE 혹은 0을 비교할  시 TRUE가 나온다는 점.

array()와 FALSE를 비교할 시 TRUE가 나온다는 점.

NULL이랑 FALSE를 비교할 시 TRUE가 나온다는 점이 있다.

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
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
글 보관함