문제 설명을 읽어보면 strcmp 함수를 우회할 수 있다면 플래그를 얻을수 잇다고 한다.

문제 페이지에 들어가 보면 password 를 입력할 수 있는 창이 있다.

소스코드를 보면 다음과 같이 strcmp 함수를 이용하여 password 값을 확인하고 있다.

strcmp 함수는 strstrcmp($a,$b)를 실행할 때 a가 작으면 음수, a가 크면 양수, a와 b가 같으면 0을 반환하는데,

0이 반환되면 암호 비교 구문이 우회되고 배열을 인자로 가지면 무조건 0을 반환하는 취약점이 있다.

 

따라서 password변수를 배열로 지정해 주면 해당 비교문을 우회할 수 있다.

위와 같이 문제 페이지에서 input password를 배열로 바꿔준 후 값을 입력하면 플래그를 얻을 수 있다.

 

알게된 점: strcmp 함수 취약점

'Security & Hacking > Wargame' 카테고리의 다른 글

[Wargame.kr] tmitter  (0) 2019.09.07
[Wargame.kr] md5_compare  (0) 2019.09.03
[Wargame.kr] DB is really GOOD  (0) 2019.09.02
[Wargame.kr] md5 password  (0) 2019.08.29
[Wargame.kr] fly me to the moon  (0) 2019.08.27

+ Recent posts