본문 바로가기

tiny backdoor (삽질) 본문

Notepad

tiny backdoor (삽질)

Seongjun_You 2022. 1. 29. 20:54

---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