[Wargame] strcmp

동스토리 ㅣ 2021. 3. 21. 23:26

반응형

안녕하세요.

 

워 게임 strcmp 문제풀이 하겠습니다.

 

strcmp(문자열1, 문자열2) 함수는 두 개의 문자열을 비교하는 함수입니다.

 

-1: ASCII 코드 기준으로 문자열2가 클 때

0: ASCII 코드 기준으로 두 문자열이 같을 때

1: ASCII 코드 기준으로 문자열1이 클 때

 

소스코드를 보면,

 

문제를 해결하기 위해서는 strcmp의 결과 값이 0이 출력되어야 합니다.

 

그러면 어떻게 결과 값을 0을 만들 수 있을까요?

 

특정 PHP 버전에서 strcmp함수에 취약점이 존재합니다.

 

strcmp(문자열, 배열) 시에 NULL을 반환하여 느슨한 비교(==)를 했을 경우 인증이 우회가 됩니다.

 

개발자 도구에서 password[]로 코드를 수정 후 임의의 값을 전송해주면,

 

password는 NULL값이 되고 php에 NULL==0이므로, 문제가 해결됩니다.

 

 

감사합니다.

반응형

'Hacking > Wargame.kr' 카테고리의 다른 글

[Wargame] md5 password  (0) 2021.03.24
[Wargame] fly me to the moon  (0) 2021.03.17
[Wargame] WTF_CODE  (0) 2021.03.06
[Wargame] login filtering  (0) 2021.03.01
[Wargame] QR CODE PUZZLE  (0) 2021.02.25