익스플로잇 2

카나리(canary)개념/ 카나리 우회 실습[Dreamhack] Return to shellcode

실습 후궁금?buf 뒤에는 8바이트는 널값? 어디서난거 0x50이엇는데, -> 쓰레기값이 채워져있을 수 있어서 확실한 크기를 확인해보고 익스플로잇을 실행해야함.그리고 이 버프, 카나리, SFP는 항상 이 순서인지?-> 항상 이 순서가 맞음 buf -> canary -> SFP -> RET 순서.카나리값은 랜덤? 코드로 한번에 카나리값을 넣어서 익스플로잇을 바로 실행되게 해야하는건지? -> 카나리값은 랜덤임. 그래서 카나리값을 얻은 후 바로 값을 가져와 익스플로잇에 사용해야함.SFP = RBP ? 두개 정확한 차이 모르겟슴-> SFP는 이전 RBP 값을 저장하는 역할을 함. SFP는 현재 함수의 RBP와 같지는 않지만, 이전 함수의 RBP를 저장한 값임.익스플로잇 코드 못짜겠슴-> 짤 수 있게 연습해야함...

[Dreamhack] Return Address Overwrite

Return address overwrite 스택 프레임의 반환 주소를 조작함으로써 프로세스의 실행 흐름을 바꾸는 공격 기법이다. 소스코드// Name: rao.c#include #include void init() { setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0);}void get_shell() { char *cmd = "/bin/sh"; char *args[] = {cmd, NULL}; execve(cmd, args, NULL);}int main() { char buf[0x28]; init(); printf("Input: "); scanf("%s", buf); return 0;}포맷스트링인 scanf("%s", buf) 부분을 보면 "%s"..