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

+ Recent posts