일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 해킹
- OS
- pwnable
- Lord of BOF
- 네트워크
- Shell code
- System
- 정보보안기사 실기
- 정보처리기사 실기
- Payload
- Spring Framework
- Operating System
- Pwnable.kr
- 운영체제
- webhacking
- 정보보안기사
- webhacking.kr
- Spring
- hacking
- stack overflow
- Buffer Overflow
- LOB
- wargame
- PWN
- 웹해킹
- BOF
- SQL
- system hacking
- Spring MVC
- 워게임
- Today
- Total
목록BOF (22)
DongDD's IT
[pwnable.kr] bof Problem buffer overflow가 가장 일반적인 소프트웨어 취약점이라고 들었는데 이것이 사실이냐 묻고있다.buffer overflow에 대한 문제일 것 같았다.이번 문제에서는 ssh로 접속할 수 있는 서버가 주어지지 않았고 nc로 프로그램에 연결할 수 있게 되어있었고 소스 코드 파일과 bof 실행 파일을 다운 받을 수 있게 되어있었다.먼저 소스 코드를 확인해보았다. 12345678910111213141516171819#include #include #include void func(int key){ char overflowme[32]; printf("overflow me : "); gets(overflowme); // smash me! if(key == 0xcaf..
[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