본문 바로가기

보안공부/Wargame.kr 풀이

wargame.kr strcmp 풀이

strcmp 문제를 풀어봅시당

Start를 누르고 문제에 들어가면 다음과 같이 form과 소스코드를 확인할 수 있는 view-source가 있습니다.

view-source를 눌러 코드를 보니 POST로 받은 password가 사전 정의된 password와 같으면 플래그를 출력하지만, 이외의 경우에는 Wrong password..를 띄우고 끝납니다.

근데... 마지막 값 비교가 ==로 매우 수상합니다.

==를 활용하여 NULL과 0을 느슨한 비교할 경우에는 다음 표와 같이 True가 반환되게 됩니다.

따라서 우리는 password 값을 읽을 수 없도록 해주면 되는데, 이를 위해서 name의 password 부분을 password[]로 변경하고 보내줍니다.

그러면 다음과 같이 플래그가 출력되게 됩니다.

References

1. PHP type comparison tables - PHP.net