[dreamhack] basic_exploitation_003
소스 코드를 보면 get_shell을 실행시키면 될 것 같다. read를 통해 heap_buf에서부터 ret까지 버퍼오버플로를 하기에는 heap_buf가 heap영역을 가리키고 있기 때문에 너무 offset차이가 크기도 하고, 문제의 의도가 아닌 것 같았다. 그래서 sprintf를 이용해서 stack_buf에 적절한 패딩과 get_shell함수의 주소를 넣어 ret에 get_shell함수의 주소를 넣어보려고 했다. 그러려면 우선 heap_buf에 적절한 패딩과 get_shell함수의 주소를 넣어야 했다. 처음에 0x94바이트만큼 스택에 할당된다. heap_buf는 ebp-0x8, stack_buf는 ebp-0x98에 있다. 메모리 구조를 간단히 생각해보면 stack_buf 144바이트 + heap_buf..
2023.07.06