보안 전공생의 공부

[XCZ.kr] #32 Easy Trick | PHP 비교 연산자 취약점 본문

Wargame/web

[XCZ.kr] #32 Easy Trick | PHP 비교 연산자 취약점

수잉 2021. 1. 27. 09:34

php 트릭을 이용하라는 점을 기억해야한다 !!

 

Prob Page
Source Page

 

각 링크를 클릭해보면 prob page는 얻을 정보가 없다.

source page를 들어가보면 조건문이 있다.

 

입력받은 변수 a값이 12735366333132132465461????????????????????????????? 과 일치하면 key값이 나온다,

 

php 트릭을 이용하라한 점을 되새기며

이것저것 취약점을 찾아보았다.

urlencode 함수의 취약점은 딱히 검색되는게 없었고,

== 취약점을 검색해보니 엄청난 정보들이 검색되었다 !!

 

그래서 이 취약점에 대해 더 찾아보기로 하였다.

 

 

비교연산자 ==은 왼쪽과 오른쪽의 값이 같을 때에만  true라는 결과가 나오는데

17자리를 넘는 두 수를 비교할 때에는 미세한 값의 차이가 있어도 같은 값이라고 인식한다.

999999999999000000000 == 999999999999000111111

(참조 : blog.naver.com/withrubiya/70175920455 )

 

 

?를 1로 바꿔 입력해주면

$a ==  1273536633313213246546111111111111111111111111111111 이고,

if문의 1273536633313213246546111111111111111111111111111111 ==12735366333132132465461?????????????????????????????는 true가 된다.

 

그래서 Key값이 출력된다.

키값

키값을 입력하면 성공한다.

'Wargame > web' 카테고리의 다른 글

[Wargame.kr] #2 flee button  (0) 2021.02.02
[Wargame.kr] #1 already got  (0) 2021.02.02
[SuNiNaTaS] #5 | 자바스크립트 난독화  (0) 2021.01.26
[SuNiNaTaS] #6  (0) 2021.01.20
[SuNiNaTaS] #2  (0) 2021.01.20
Comments