일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Buffer Overflow
- webhacking
- Pwnable.kr
- BOF
- pwnable
- Lord of BOF
- system hacking
- Spring
- Spring Framework
- System
- SQL
- 해킹
- PWN
- 정보보안기사 실기
- 웹해킹
- wargame
- 네트워크
- Payload
- 운영체제
- Spring MVC
- 정보처리기사 실기
- LOB
- stack overflow
- 정보보안기사
- hacking
- Operating System
- webhacking.kr
- Shell code
- OS
- 워게임
- Today
- Total
목록해킹 (47)
DongDD's IT
[LOB] Level18 succubus Problem 이번 문제에서도 nightmare 실행 파일과 nightmare.c 소스 코드 파일이 있었다.소스 코드를 확인해보았다. 123456789101112131415161718192021222324252627282930#include #include #include #include main(int argc, char *argv[]){ char buffer[40]; char *addr; if(argc
[LOB] Level17 zombie_assassin Problem 이번 문제에서도 succubus 실행 파일과 succubus.c 소스 코드 파일이 있었다.먼저 소스 코드를 확인해보았다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788#include #include #include // the inspectorint check = 0; void MO(char *cmd){ if(check != 4) exit(0); printf("welcome to the ..
[LOB] Level16 assassin Problem 이번 문제도 zombie_assassin 실행 파일과 zombie_assassin.c 소스 코드 파일이 있었다.먼저 소스 코드를 확인해보았다. 1234567891011121314151617181920212223242526272829#include #include main(int argc, char *argv[]){ char buffer[40]; if(argc ret가 실행되어야 하지만 return address에 leave -> ret가 한번 더 들어가게 되므로 leave -> leave -> ret가 들어가게 된다. 즉, 처음 leave에서는 mov esp, ebp와 pop ebp를 통해 ebp에 sfp에 넣었던 fake ebp의 주소가 들어간다...
[LOB] Level15 giant Problem 이번 문제도 assassin 실행 파일과 assassin.c 소스 코드 파일이 있었다.먼저 소스 코드를 확인해보았다. 12345678910111213141516171819202122232425262728293031#include #include main(int argc, char *argv[]){ char buffer[40]; if(argc
[LOB] Level14 bugbear Problem 이번 문제에서도 giant 실행 파일과 giant.c 소스 코드 파일이 주어져있었다.먼저 소스 코드를 확인해보았다. 12345678910111213141516171819202122232425262728293031323334353637383940414243#include #include #include main(int argc, char *argv[]){ char buffer[40]; FILE *fp; char *lib_addr, *execve_offset, *execve_addr; char *ret; if(argc
[LOB] Level13 darkknight Problem 이번 문제도 bugbear 실행 파일과 bugbear.c 소스 코드 파일이 있었다.소스 코드를 확인해보았다. 1234567891011121314151617181920212223#include #include main(int argc, char *argv[]){ char buffer[40]; int i; if(argc
[LOB] level12 golem Problem 이번 문제에서도 darkknight 실행 파일과 darkknight.c 소스 코드 파일이 있었다.소스 코드를 확인해 보았다. 1234567891011121314151617181920#include #include void problem_child(char *src){ char buffer[40]; strncpy(buffer, src, 41); printf("%s\n", buffer);} main(int argc, char *argv[]){ if(argc
[LOB] Level11 skeleton Problem 이번 문제도 golem 실행 파일과 golem.c 소스 코드 파일이 주어졌다.소스 코드를 확인해보았다. 12345678910111213141516171819202122232425262728#include #include extern char **environ; main(int argc, char *argv[]){ char buffer[40]; int i; if(argc 실패 LD_PRELOAD에 대해서는 몰랐지만 LD_LIBRARY_PATH에 대해서는 알고 있었어서 먼저 시도해보았다. 먼저 fPIC 옵션과 shared 옵션을 사용해 gcc로 공유 라이브러리 파일을 만들어주었다.이것을 LD_LIBRARY_PATH에 넣어주고 gdb를 통해 메모리를 확인..
[LOB] Level10 vampire Problem 이번 문제도 skeleton 실행 파일과 skeleton.c 소스 코드 파일이 있었다.먼저 소스 코드를 확인해보았다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445#include #include extern char **environ; main(int argc, char *argv[]){ char buffer[40]; int i, saved_argc; if(argc 48){ printf("argument is too long!\n"); exit(0); } // argc saver saved_argc = argc; strcpy(buffer, argv[1]..