tiny backdoor (삽질) 본문
---2022 / 01 / 29---
3일째 삽질 중이다.
fini_array을 덮어 main을 실행한 후
stack_chk_fail이 터지기 때문에 got를 수정하여
다시 main을 돌게 했다.
다시 한번 입력을 받은 후에는 ret이 실행되어 이상한 주소로 간 후에 종료된다.
여기서 어떤 방향으로 가야 할지 잘 모르겠다.
다시 입력을 받을 때 main으로 돌게 할 수 있는 방법이 있나 모르겠다.
어떤 주소를 수정해야 하는지 잘 모르겠다.
gadget을 찾아보니 syscall이 있긴하다.
이것을 사용할 수 있나 고민도 해보아야 겠다.
---- 2022 / 01 / 30 ---
생각해보니 stack_chk_fail을 계속 터뜨려주면
main을 무한으로 돌릴 수 있는 방법이 있었다.
canary를 직접 덮는것은 불가능하기에
canary값을 가져올때 사용되는 rsp를 조작하여
stack_chk_fail을 터뜨려주었다.
여러가지 시도를 했다.
그 결과 main이 계속 loop을 돌게 되었다.
-----2022 / 01 / 31 ----
stdout의 주소를 출력하여 libc base를 구했다.
이제 system함수와 /bin/sh을 덮어 실행하면 끝이다.
어디다 덮어야할지 아직 모르겠다.
이제 얼마 안남은것 같다.
-----2022 / 02 / 01 -----
드디어 해결.....
끔찍하게 재미있었다.
'Notepad' 카테고리의 다른 글
fork 디버깅, PIE 디버깅 (0) | 2022.03.06 |
---|---|
LoadLibrary (0) | 2022.02.16 |
validator-revenge (해결) (0) | 2022.01.14 |
cyberpeace 3.0 ITCTF - crySYS (0) | 2022.01.11 |
iofile_vtable_check (해결) (0) | 2021.11.23 |
Comments