전공쪽/동아리 관련

문제 오늘의 문제는 스택비벗 관련 문제이다. 이전과 달라진 점은 일단은 카나리가 없고, 대신에 Full Relro가 걸렸다는 점이다. 이 Full Relro가 적용이 되면 got영역에 쓰기권한이 사라지게 된다. bss 영역만 쓰기 권한이 생긴다. 그러면 bof로 승부를 봐야하는데.. 16byte로 대체 어떻게 공격을 할 수 있단 말인가?! STACK PIVOT? 그래서 등장한 것이 스택 피벗이다. 위에서 bss 영역에는 쓰기 권한이 아직 남아있다고 하였다. bss영역에 system 함수와 binsh의 주소를 잘 적어놓고, RIP를 bss 영역으로 옮겨준다면? 가능할지도 모르겠다! 이렇게 쓸 수 있는 공간으로 옮겨 들어가서 RTL Chaining을 하는 것을 스택피벗이라고 한다. 어떻게? 그런데 bss영역..
사실 이 글을 써도 되는지는 모르겠지만, 우리 학교 동아리 부원이 내 블로그를 볼 일은 없을 것이라 생각하고, 문제와 해설을 올려보자 한다. 만약 보신다면 살포시..! 뒤로가기를 눌러주십셔. 문제는 Format String 과 Bof 그리고 문제의 이름인 Checksum을 합쳐서 만들었다 . 하루만에 만드느라 힘들었다.. 보호기법은 Canary , NX, Partial RELRO를 걸어줬다. checksum도 문제이름이고, 함수이름에도 checksum이 많이 들어가 있는 걸 보니, checksum이 중요하게 작용하겠다. 일단은 기본적으로 dest라는 배열이 rbp-0x2C ~ rbp-0x18까지 차지하고, buf라는 배열이 rbp-0x18~rbp-0x4까지 차지한다. 두 배열은 크기가 20byte로 동일..
포맷스트링에 관한 것은 다른 곳에서 더 잘알려주기 때문에 따로 정리하지는 않겠다. 이 문제 푼다고 몇일동안 끙끙거려서 딱히 까먹을 일도 없을 것 같긴 하다. 이런 코드가 있다. 동아리 실습 문제인데, 일단 처음부터 시도해보자. 일단 방법으로는 FSB(Format String Bug)로 libc를 알아내서, printf 를 system으로 바꾸어 주면 /bin/sh를 주지 않아도, 앞에서 read로 buf에 값을 넣어주기 때문에 원하는 명령어를 실행할 수 있을 것이다. (모법답안은 이것과 다르더라. 일단 atoi함수가 어떻게 실행되는지를 찾아볼 생각을 안했다...) 일단 먼저 leak에 관한 부분이다. 모든 프로그램에 해당되는데 스택 밑부분을 보면 저렇게 libc_start_main+n에 관한 부분이 고스..
OSOR2
'전공쪽/동아리 관련' 카테고리의 글 목록 (3 Page)