일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- wargame
- PWN
- 워게임
- Shell code
- webhacking.kr
- Pwnable.kr
- 해킹
- 정보처리기사 실기
- SQL
- Operating System
- stack overflow
- Payload
- 운영체제
- Lord of BOF
- 웹해킹
- Buffer Overflow
- Spring
- 정보보안기사 실기
- webhacking
- BOF
- pwnable
- system hacking
- Spring MVC
- OS
- 네트워크
- hacking
- LOB
- 정보보안기사
- Spring Framework
- System
- Today
- Total
목록Shell code (12)
DongDD's IT
[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]..
[LOB] Level9 troll Problem 이번 문제에서도 vampire 실행 파일 하나와 vampire.c 소스 코드 파일이 있었다.소스 코드를 확인해보았다. 1234567891011121314151617181920212223242526272829#include #include main(int argc, char *argv[]){ char buffer[40]; if(argc
[LOB] Level8 orge Problem 이번 문제도 마찬가지로 troll 실행 파일과 troll.c 소스 코드 파일이 있었다.소스 코드를 확인해보았다. 123456789101112131415161718192021222324252627282930313233343536373839404142#include #include extern char **environ; main(int argc, char *argv[]){ char buffer[40]; int i; // here is changed if(argc != 2){ printf("argc must be two!\n"); exit(0); } // egghunter for(i=0; environ[i]; i++) memset(environ[i], 0, st..
[LOB] Level7 darkelf Problem 이번 문제에서도 orge 실행 파일과 orge.c 소스 코드 파일이 있었다.소스 코드를 확인해보았다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344#include #include extern char **environ; main(int argc, char *argv[]){ char buffer[40]; int i; if(argc 48) { printf(“argument is too long!\n”); exit(0); } strcpy(buffer, argv[1]); printf(“%s\n”, buffer); // buffer hunter memset(buffe..
[LOB] Level6 wolfman Problem 이번 문제도 마찬가지로 darkelf 실행 파일과 darkelf.c 소스 코드 파일이 있었다.소스 코드를 확인해보았다. 1234567891011121314151617181920212223242526272829303132333435363738#include #include extern char **environ; main(int argc, char *argv[]){ char buffer[40]; int i; if(argc 48) { printf(“argument is too long!\n”); exit(0); } strcpy(buffer, argv[1]); printf(“%s\n”, buffer); // buffer hunter memset(buffer,..
[LOB] Level5 orc Problem 이번 문제도 들어가보니 wolfman 실행 파일 하나와 wolfman.c 소스 코드 파일 하나가 주어져있었다.저번 문제 소스 코드의 소유가 root로 되어있었는데 이번 문제 역시 root로 되어있는 걸로 보아 아마 저번 문제 부터 쭉 소스 코드를 수정할 수 없게 만든 것 같다.일단 소스 코드를 먼저 확인해보았다. 12345678910111213141516171819202122232425262728#include #include extern char **environ; main(int argc, char argv[]){ char buffer[40]; int I; if(argc
[LOB] Level4 goblin Problem 이번 문제도 앞 문제들과 마찬가지로 실행파일 하나와 소스 코드 파일 하나가 주어져있었다.조금 다른 점이라면 앞 문제들은 소스 코드가 현재 문제의 계정 소유로 되어있어 소스 코드를 수정해 buffer의 위치를 알아낸다던지 하는 것이 가능했는데 이번 문제의 소스 코드의 소유는 root로 되어있어 소스 코드 수정이 불가능하게 되어있었다. 12345678910111213141516171819202122232425262728#include #include extern char **environ; main(int argc, char *argv[]){ char buffer[40]; int i; if(argc