목록전체 글 (66)
ghkdtlwns987
file 3x17 을 하면 stripped 되어있고, statically linked 되어 있는 것을 확인 할 수 있다. checksec 으로 보호기법을 확ㅇ니해 보면 Partical RELRO 임으로 특정 got나 갑을 덮을 수 있을 것이다. 기드라로 한번 들여다 보자. 프로그램이 ㅅ일행되면 addr 과 data 가 출력되며 입력받는데, gdb에서 info func() 로 확인했을 땐 main() 함수가 없었으므로 직접 찾아봐야 한다. 여기를 보면 addr을 출력해 주는 함수가 main() 함수라고 추측 할 수 있다. 그렇다면 main() 함수의 주소는 0x401b6d 가 될 것이다. main() 함수를 보면 addr 로 값을 입력받고, 그 값에 데이터를 덮을 수 있도록 되어있다. 그럼 main() 함..
pwnable.tw 문제를 푸는데, .fini 는 따로 정리를 안해서 정리만 간단히? 하도록 하겠다. gdb로 프로그렘을 분석하다 본 사람들이면 __libc_csu_init() , .fini, .init 과 같은 함수들을 자주 봤을 것이다. 하지만 이게 무슨 함수인지 모르는 사람이 있다. __libc_csu_init 은 rtc 로 exploit 할 수 있고 , .init 또한 주소를 변경해 exploit 할 수 있는데, 이번엔 dl_fini로 exploit 하는 방법을 언급하고자 한다. dl_fini 를 보면 call 하는 부분이 있다. call 하는 명령에서 r12의 주소가 스택상에 존재한다. -> bof 나 fsb 로도 exploit 할 수 있다. 코드를 따로 가져오긴 좀 귀찮으니 pwnable.tw..
보호되어 있는 글입니다.