해당 문제와 함께 제공되는 소스코드는 아래와 같다.
해당 소스코드 내용을 보면 main 함수에서 3번째 조건문을 통과해야 플래그 값을 얻을 수 있다.
hashcode값과 check_password함수의 리턴되는 값이 같으면 플래그를 출력해준다.
우선 hashcode값은 상수값으로 0x21 DD09 EC이며 check_password함수를 살펴보면 ip포인터 변수에
인자 값으로 입력받는 p값을 넣어준다 그 후 for반복문을 이용하여 5번씩 더하며 res에 저장하여 리턴 시켜준다.
그렇다면 hashcode를 5로 나누어 나온 값을 입력하면 되는데 5로 나눌경우 다시 곱하면 4가 부족하게 나온다.
그럼 여기서 해결방법은 5로나눈값을 4번 보내고 그 후 나머지 하나에 4를 더해서 더 보내면 된다.
아래와 같이 작성하여 보내면 성공적으로 플래그를 획득할 수 있다.
'WriteUP' 카테고리의 다른 글
[pwnkr] - flag (0) | 2021.09.01 |
---|---|
[pwnkr] - bof 문제 (0) | 2021.09.01 |
[pwn.kr] fd 문제 (0) | 2021.08.31 |
[HackCTF] - yes or no (1) | 2021.08.26 |
[HackCTF] ROP (0) | 2021.08.16 |