일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 운영체제
- Operating System
- webhacking.kr
- stack overflow
- 정보보안기사 실기
- Spring Framework
- webhacking
- Spring
- Payload
- pwnable
- Lord of BOF
- 워게임
- OS
- BOF
- LOB
- System
- Shell code
- 네트워크
- 정보보안기사
- wargame
- PWN
- Spring MVC
- hacking
- Buffer Overflow
- 정보처리기사 실기
- 웹해킹
- system hacking
- Pwnable.kr
- 해킹
- SQL
- Today
- Total
목록Payload (20)
DongDD's IT
[LOB] Level20 xavius Problem LOB 마지막 20번째 문제이다. 마지막 문제에서도 death_knight 실행 파일 하나와 death_knight.c 소스 코드 파일이 있었다.먼저 소스 코드를 확인해보았다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364#include #include #include #include #include #include #include #include #include main(){ char buffer[40]; int server_fd, client_fd; struct sockaddr_in ..
[LOB] Level19 nightmare Problem 이번 문제에서도 xavius 실행 파일과 xavius.c 소스 코드 파일이 있었다.소스 코드를 확인해보았다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#include #include #include main(){ char buffer[40]; char *ret_addr; // overflow! fgets(buffer, 256, stdin); printf("%s\n", buffer); if(*(buffer+47) == '\xbf') { printf("stack retbayed you!\n"); exit(0); } if(*(buffer+47)..
[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를 통해 메모리를 확인..