betting
두비니
·2020. 12. 2. 02:23
너무 길어서 필요한 것만 쓴다
일단 read에서 0x28만큼 입력받는데, 뒤에 canary를 leak할수 있다.
==간단한 설명==
36번줄에서 s를 출력시키는데, 문자열은 뒤에 \x00이 있는 걸 통해서 문자열의 끝임을 확인하기 때문에 canary의 1바이트를 덮어씌운 후 s를 출력시키면 뒤에 canary 7바이트를 leak할 수 있다.
그러면 어차피 canary의 마지막 바이트는 0x00이기 때문에 canary를 leak할 수 있다.
그리고 여기서는 scanf로 입력받기때문에 입력제한없이 ret까지 무리없이 exploit할 수 있다.
이름 입력을 받은 뒤 rsp를 까본건데
빨간색 박스가 canary고
노란색 박스가 ret값이라 canary만 leak해내면 쉽게 exploit할 수 있다.
그리고 코드를 보면 v17을 입력제한이 없는 scanf로 받고 있기 때문에 쉽게 overwrite가 가능하다.
귣
호옹
'War Games > training_prob' 카테고리의 다른 글
c1 - practice2 (0) | 2020.12.04 |
---|---|
c1 - practice1 (0) | 2020.12.03 |
c1 - exercise7 (0) | 2020.11.29 |
c1 - exercise6 (1) | 2020.10.18 |
c1 - exercise5 (0) | 2020.10.16 |