일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- webhacking.kr
- LOB
- BOF
- system hacking
- 워게임
- 정보보안기사 실기
- 해킹
- webhacking
- 웹해킹
- 운영체제
- Shell code
- 정보처리기사 실기
- PWN
- Buffer Overflow
- OS
- hacking
- 정보보안기사
- 네트워크
- pwnable
- Spring Framework
- stack overflow
- System
- SQL
- Operating System
- Spring MVC
- Lord of BOF
- Pwnable.kr
- wargame
- Spring
- Payload
- Today
- Total
목록Stack (5)
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)..
리버싱 기초 지식 Reversing - Reverse Engineering(역공학)이라고 불림- 어떤 장치나 시스템 등의 구조, 기능, 동작을 분석하고 원리를 이해하여 단점을 보완하고 새로운 아이디어를 추가하는 작업을 의미한다. 분석 방법1) 정적 분석- 실행 단계가 아닌 파일에 대한 여러 정보를 가지고 분석하는 방법- 디스어셈블러를 통해 내부 코드와 구조를 확인하는 것도 포함된다.2) 동적 분석- 파일을 실행시킨 후 동작을 분석하는 방법- 파일이 실행되면서 변화되는 여러 정보를 파악한다.- Debugger를 통해 프로그램 내부 동작 원리를 분석한다. 컴퓨터의 기본 구성요소 1) CPU2) Memory3) Hard disk : 실행 가능한 파일(exe)이 저장됨-> 윈도우에서는 실행 파일을 PE(Port..
[C 언어] 메모리 구조 메모리 구조- 프로그램 실행 시 메모리 공간에 프로그램이 쌓이게 된다.- C언어에서는 Stack, Heap, Data, Code 영역으로 나뉘어진다1) Code 영역 - 실행되는 프로그램의 코드 부분이 저장되는 영역- Text 영역이라고도 불림- 이 부분에 저장된 내용을 하나씩 처리하며 프로그램이 실행됨 2) Data 영역 - 전역변수, 정적 변수 등이 저장되는 공간- 프로그램 실행 시 프로그래머가 선언한 변수에 대한 메모리 공간이 할당되고 프로그램 종료 시 해제된다.- 초기화 되지 않은 변수는 BSS영역에 할당되게 된다. 3) Stack 영역 - 지역 변수와 함수 호출 시 매개 변수가 저장되는 공간- 함수 안에서 변수를 선언할 경우 stack에 쌓이게 되고 함수가 종료되면 소멸..