1. https://dreamhack.io/wargame/challenges/328
[wargame.kr] strcmp
Description if you can bypass the strcmp function, you get the flag.
dreamhack.io

일단 문제 사이트를 들어가보면 이렇게 소스코드를 볼 수 있다.

php코드이다.
문제 이름이기도한 strcmp(a,b)함수는 두 개의 문자열을 비교하는 함수이다.
a가 b보다 작으면 음수 값, b가 a보다 작으면 양수 값, a와b가 같으면 0을 반환한다.

소스코드의 이 부분을 보면 strcmp가 0일 때 플래그가 출력된다는 사실을 알 수 있다.
php에서는 strcmp의 파라미터로 배열을 넣는 경우 NULL 값이 반환된다고 한다.
또한 NULL과 0을 == 연산자를 이용해서 비교했을 때 true를 리턴하기 때문에
이러한 strcmp 함수의 취약점을 이용하면 문제를 풀 수 있다.

개발자 도구를 실행해 배열 형태로 바꿔주었다.
그리고 아무런 값을 넣고 chk를 눌러주었더니

플래그를 얻을 수 있었다!
'ETC > EVI$ION' 카테고리의 다른 글
| EVI$ION 정규 세션 과제 - #5 (0) | 2024.05.16 |
|---|---|
| EVI$ION 러닝 세션 과제 - #4 (5/11) (0) | 2024.05.11 |
| EVI$ION 러닝 세션 과제 - #3 (5/4) (0) | 2024.05.04 |
| EVI$ION 러닝 세션 과제 - #2 (4/6) (1) | 2024.04.06 |
| EVI$ION 정규 세션 과제 - #3 (0) | 2024.04.04 |