RTC(2)
-
[ Dream hack ] Dream's Notepad
https://dreamhack.io/wargame/challenges/405/?writeup_id=9011 Dream's Notepad 드림이가 메모장 프로그램을 만들었어요! 취약점을 찾아 드림이가 숨겨둔 메모인 플래그를 읽어보세요! dreamhack.io 문제를 풀며 배운점 - rtc기법을 사용해서 문제를 풀어본 적이 거의 없어서 처음에 r12에 값을 plt주소로 주는 실수를 했다. - read함수에서 마지막 3번째 인자는 size_t 형이기 때문에 범위가 0 ~ 4,294,967,295이다. 따라서 만약 -1을 넘겨주면 read함수에서 입력받는 사이즈가 0xffffffff가 되어 bof가 발생한다.
2022.12.15 -
Return to csu [Dreamhack basic_rop_x64]
dreamhack강의에서 return to csu 강의를 못 찾아서 이제까지 return to csu를 공부를 안 했는데 이번에 로드맵 복습을 진행하며 basic_x64_rop을 rtc를 통해 풀어봤다. https://dreamhack.io/wargame/challenges/29/?writeup_id=7999 기존 writeup에 추가했다. RTC란? rop을 할 때 원하는 가젯이 없을때도 rop을 할 수 있는 기법이다. ( 하지만 인자를 최대 3개까지만 할당할 수 있다. ) 위 사진은 __libc_csu_init 함수의 일부 어셈 코드이다. 이 부분만 사용할 것이다. 사진에서 볼 수 있듯이 0x400860에서 r13, r14, r15의 값을 rdx, rsi, edi에 넣어주는 것을 확인할 수 있다. 우..
2022.10.01