일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- System
- 워게임
- BOF
- SQL
- Spring MVC
- 운영체제
- Payload
- webhacking.kr
- Lord of BOF
- Shell code
- pwnable
- Spring Framework
- stack overflow
- 정보처리기사 실기
- LOB
- wargame
- OS
- Buffer Overflow
- webhacking
- Operating System
- Pwnable.kr
- 웹해킹
- hacking
- 해킹
- Spring
- PWN
- 정보보안기사
- 네트워크
- system hacking
- 정보보안기사 실기
- Today
- Total
목록분류 전체보기 (171)
DongDD's IT
[pwnable.kr] fd Problem Linux의 file descriptor가 무엇인지 묻고 있는 문제였다.fd와 관련된 내용이 나올 것 같다는 생각이 들었다. ssh로 fd@pwnable.kr에 접속하니 위와 같은 화면을 볼 수 있었다.fd 실행파일과 fd.c 소스 코드 파일과 flag 파일이 있었다.먼저 소스 코드를 확인해 보았다. 12345678910111213141516171819202122#include #include #include char buf[32];int main(int argc, char* argv[], char* envp[]){ if(argc
[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)..
Floyd-Warshall(플로이드 와샬) 알고리즘 Floyd-Warshall Algorithm - 그래프에서 모든 정점 사이의 최단 거리를 구하기 위한 알고리즘- 다익스트라 알고리즘을 모든 정점에서 수행한 것과 같은 알고리즘이지만 플로이드 와샬 알고리즘은 구현이 간단하다.- 음수 가중치에 대한 처리가 어려운 다익스트라 알고리즘에 비해 플로이드 와샬 알고리즘은 사이클이 없는 경우 음수 가중치 처리가 가능하다. Floyd-Warshall Complexity - 단순히 반복문 3개를 vertex만큼 돌기 때문에 O(V^3)의 시간 복잡도를 갖는다.- 특정 정점에서 특정 정점까지의 경로를 저장해나가며 구한 경로를 이용해 새로운 최단 경로를 찾는 DP방식으로 수행된다. 그러므로 2차원 배열이 필요하므로 O(V^..
[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