-
Show the world what you can do
[Dreamhack] basic_rop_x64 풀이
교훈: 더미있는지 찾을때, 어셈블리 코드에서 sub esp, ~ 이것만 보고 더미의 존재와 위치를 확신하지 마라read(0,buf,~) 할때 버퍼주소 나와있을거아니야 거기서 버퍼가 sfp로부터 얼마나 떨어져있는지 확실하게 체크해라 문제의 c코드:#include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1);}void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(30);}int main(int argc, char *a..
2022. 7. 12.
[Dreamhack] ROP 풀이
교훈: '/bin/sh' 를 rdi로 설정해야할때, 다른 함수의 got+8에 쓸수도 있음, read함수를 호출할때 가젯 두개로 파일디스크럽터와 버퍼의 주소도 설정할 수 있음 문제의 c 코드:#include #include int main() { char buf[0x30]; setvbuf(stdin, 0, _IONBF, 0); setvbuf(stdout, 0, _IONBF, 0); // Leak canary puts("[1] Leak Canary"); printf("Buf: "); read(0, buf, 0x100); printf("Buf: %s\n", buf); // Do ROP puts("[2] Input ROP payload"); printf("Buf: "); read(0, buf..
2022. 7. 12.