반응형
안녕하세요.
워 게임 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 |