본문 바로가기

[pwnable.kr] unlink 시작 안녕하세요!! :D 정보보안산업기사 필기가 1주일밖에 남지 않았지만.. 포너블은 쉬면 금방 까먹잖아요?? ㅎㅎ 무슨 문젤 풀까 고민하다가 오랜만에 pwnable.kr 들어가보니 딱!! unlink가 있었습니다. 안 그래도 heap 영역 공부하다가 끊긴 느낌이라 찝찝했는데 이 친구 풀면서 정리하려고 해요. 시작해보죠!! Write UP 바이너리를 실행해봐요. root@goorm:/workspace/LCH_Server/pwnable.kr/pwnable_unlink# ./unlink here is stack address leak: 0xfffa8e54 here is heap address leak: 0x93f2410 now that you have leaks, get shell! aaaa 스택이랑 힙 주..
HackCon CTF pwn binary babybof babypwn Not so easy BOF
[Redpwn CTF 2019] Stop, ROP, n', Roll 시작 안녕하세요 :D 요즘 정보보안산업기사 필기 공부 때문에 ctftime.org를 자주 못들어갔어요.. 오랜만에 가보니 Redpwn CTF가 진행중이더라구요!! 이론이 너무 질려 머리도 식힐 겸? pwn 문제 몇 개를 싸지방에서 끄적여봤습니다. 앞에 3문제는 단순한 문제였어요 ㅎㅎ 그나마 고민했던건 포맷스트링 문제정도?? 얘네들은 32비트 파일에다가 익스 코드도 무척 짧아서 롸업을 안 쓰고 넘어갈게요. Stop, ROP, n’, Roll, srnr은 64비트 바이너리에다가 시나리오를 짤 때 고민을 많이 해서 정리할 겸 글을 쓰려고 합니다. 시작해보죠!! Write UP root@goorm:/tmp/Redpwn# ./srnr [#] number of bytes: 10 실행시켜보면 바이트 수를 물어보고 사..
[DefCon 2014] baby's first heap 시작 안녕하세요 :D 오랜만에 싸지방 포너블입니다. 오늘은 DefCon의 Baby 시리즈 문제를 하나 들고 왔는데요!! 과연 이게 baby가 맞나 싶은.. 1pt짜리 문제라고 할 수 없을 정도로 어려웠는데 ㅠㅠㅠㅠ 역시 heap은 만만하지 않아요. 처음으로 풀어본 heap 문제, 시작해보죠!! Write UP root@goorm:/workspace/LCH_Server/posting/heap/babyfirst_heap# ./babys_first_heap Welcome to your first heap overflow... I am going to allocate 20 objects... Using Dougle Lee Allocator 2.6.1... Goodluck! Exit function pointer..
[LOB] zombie 시작 안녕하세요!! :D 이번에도 이상한 곳에서 한참 삽질했습니다 ㅎㅎ.. 스택이 참 민감한 친구라는걸 매번 잊어버리네요ㅠ 이젠 마스터한 Fake EBP 문제, 시작해보죠!! Write UP /* The Lord of the BOF : The Fellowship of the BOF - zombie_assassin - FEBP */ #include #include main(int argc, char *argv[]) { char buffer[40]; if(argc < 2){ printf("argv error\n"); exit(0); } if(argv[1][47] == '\xbf') { printf("stack retbayed you!\n"); exit(0); } if(argv[1][47] == '\x40')..
[LOB] giant 시작 안녕하세요!! :D 이번 문제 풀면서 새로운 기법을 알게 됐습니다 ㅋㅋㅋㅋㅋ 똑똑이 분들이 많아요.. 어떻게 이런 생각을 하는지 대단합니다. 시작해보죠!! Write UP /* The Lord of the BOF : The Fellowship of the BOF - assassin - no stack, no RTL */ #include #include main(int argc, char *argv[]) { char buffer[40]; if(argc < 2){ printf("argv error\n"); exit(0); } if(argv[1][47] == '\xbf') { printf("stack retbayed you!\n"); exit(0); } if(argv[1][47] == '\x40') { ..
[LOB] bugbear 시작 안녕하세요 :D 덥네요.. 더워… 즐겁게 RTL2 문제를 풀어보도록 해요 ㅎㅎ RTL 체인을 만드는 문제가 나올 줄 알았는데 함수 하나만 쓰는 문제라 쪼끔 실망했습니다 ㅋㅋㅋㅋㅋㅋ 시작해보죠!! Write UP /* The Lord of the BOF : The Fellowship of the BOF - giant - RTL2 */ #include #include #include main(int argc, char *argv[]) { char buffer[40]; FILE *fp; char *lib_addr, *execve_offset, *execve_addr; char *ret; if(argc < 2){ printf("argv error\n"); exit(0); } // gain address o..
[LOB] darkknight 시작 안녕하세요 :D 분노의 LOB를 풀고 있습니다!! peda 없는 pwnable은 힘드네요.. peda 가져와…… 다시 한 번 peda의 find, ropgadget 기능의 위대함을 느끼며 RTL1, 시작하겠습니다!! Write UP #include #include int main(int argc, char *argv[]) { char buffer[40]; int i; if(argc < 2){ printf("argv error\n"); exit(0); } if(argv[1][47] == '\xbf') { printf("stack betrayed you!!\n"); exit(0); } strcpy(buffer, argv[1]); printf("%s\n", buffer); } Return to Libra..