strcmp에 관한 문제입니다.

strcmp에 취약점이 있는 문제로 해당 취약점을 알아야 풀 수 있습니다.


지금 $password는 rand()함수로 인해 값이 계속 변해서 정확한 password는 알 수 없습니다.


strcmp(a,b) 함수의 역할은 a가 작으면 음수, b가 작으면 양수, 같으면 0을 반환해주는 함수입니다.

0을 반환해야 문제가 풀리기 때문에 배열과 비교를 하면 0의 값을 띄워주는 취약점을 이용하면 됩니다.



 POST 방식으로 값이 날라가기 때문에 burp suite를 사용해 중간에 값을 바꿔줍니다.

password=1로 보내는 게 아니라 password[]=1로 보내서 배열 형식으로 보내주면 배열과 문자열을 비교하여 0의 값을 반환합니다.



[참고]

[PHP] strcmp 취약점을 이용한 인증 우회: http://hackability.kr/entry/PHP-strcmp-%EC%B7%A8%EC%95%BD%EC%A0%90%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%9D%B8%EC%A6%9D-%EC%9A%B0%ED%9A%8C


'WarGame > wargame.kr' 카테고리의 다른 글

[WarGame] pyc decomplie  (0) 2018.10.30
[WarGame] md5_compare  (0) 2018.10.30
[WarGame] md5 password  (1) 2018.10.29
[WarGame] login filtering  (0) 2018.10.29
[WarGame] fly me to the moon  (0) 2018.10.28

+ Recent posts