if문 안에서 잘못된 점을 한가지 찾을 수 있었다.
open() 함수를 이용하여 파일을 열면 파일이 정상적으로 열리게 되었을 때, 양수를 반환하고 정상적이지 않으면 -1을 반환한다.
파일이 올바른 경로에 존재 하여 정상적으로 열린다고 볼 수 있다. 따라서 open의 리턴값은 양수가 된다. 그렇지만 연산자인 = 보다 < 의 우선순위가 더 높기 때문에 양수 < 0 의 결과값인 false 이고, fd에는 0(false)이 들어가게 된다.
fd가 0이기 때문에 표준입력을 read하게되고 PW_LEN이 10이기 때문에 열자를 맞춰넣으면
input password : 라는 문구와 함께 입력을 받는다.
입력을 받고 그 값과 1과 xor 연산을 하게된다.
그 결과와 이전에 입력받은 pw_buf가 같으면 flag가 출력된다.
random 문제 xor특징 참고 : http://oiehso0.tistory.com/55?category=639405
'System Hacking > pwable.kr' 카테고리의 다른 글
10.pwnable shellshock (0) | 2018.02.22 |
---|---|
07.pwnable input (0) | 2018.02.19 |
12.Pwnable blackjack (0) | 2018.02.16 |
08.Pwnable leg (0) | 2018.02.15 |
06.Pwnable random (0) | 2018.02.15 |