목록분류 전체보기 (365)
보호되어 있는 글입니다.
보호되어 있는 글입니다.
이번에는 modified를 0x61626364로 만들면 끝남 strcpy는 메모리를 초과해서 복사할 수 있기에 취약 함수임 rdi가 buffer rsi가 argv[1] 즉 buffer : [rbp-0x50] modified : [rbp-0x4] dummy * 76 + \x64\x63\x62\x61 넣어주면 됨 리틀엔디안 방식으로 넣는 것을 잊지 말아야 함
이번에 올릴 워게임은 protostar 내 첫 워게임임 풀었던 기록이 남아 있길래 그냥 올려봄 옛날 기억 더듬는 거라 틀릴 수도 있음 #include #include #include int main(int argc, char **argv) { volatile int modified; char buffer[64]; modified = 0; gets(buffer); if(modified != 0) { printf("you have changed the 'modified' variable\n"); } else { printf("Try again?\n"); } } gets함수로 bof발생 변수 modified를 덮으면 끝남 buffer : [rbp-0x50] modified : [rbp-0x4] 0x50 - 0..
약간 늦은 후기 첫 ctf였는데 꽤나 많이 풀어서 기분 좋았음 11문제 풀었음 등수는 103등으로 마무리 첫 ctf라 3일 동안 잠 안 자고 열심히 풀었는데 보람이 있었음
보호되어 있는 글입니다.
보호되어 있는 글입니다.
void learn(){ char buf[32]; puts("WANT TO LEARN: \n"); puts("Before we start, would you like to learn about ret2libc?[y/N]"); gets(buf); puts(""); if(buf[0] == 'y' || buf[0] == 'Y'){ divide(); explain_pltgot(); divide(); explain_rop(); divide(); resources(); }else{ puts("I see, you must be a natural!\n"); } } 뚫어야 할 코드이다. 제목에서부터 알 수 있듯이 ret2libc문제이다. 어렵진 않았다. exploit code from pwn import * contex..