일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- System
- 파이썬
- OSI
- War Game
- C
- 백준
- 정렬 알고리즘
- Java
- ftz
- pwnable.kr
- PHP
- 재귀
- 파일 시스템
- 스택
- 자료구조
- ftz level13
- 두근두근 자료구조
- 암호수학
- Stack
- windosw 문자열
- 큐
- c언어
- SWiFT
- level13
- windosws wbcs
- LoB
- web
- 미로 탐색 알고리즘
- 시간복잡도
- HTML
- Today
- Total
나의 기록, 현진록
ftz level11 level12의 권한을 가진 파일 현재 level11 권한을 가진 지금도 실행할 수 있는 권한이 있다. hint의 내용이다. 버퍼 오버플로우 즉 버퍼를 넘치게 하는 문제이다. 실행 인자를 입력하면 str 배열에 저장되는데 strcpy는 입력한 그대로 복사를 하기 때문에 256 바이트 이상의 크기도 그대로 수용한다. setreuid(3092,3092) 3092 사용자 권한으로 바꾼다는 의미이다. 3092는 어떤 계정인지 알아보면 level12 계정이다. setreuid 함수로 level12 권한을 가지고 /bin/bash or /bin/sh을 실행하면 level12 계정을 유지할 수 있다. 가장 기본적인 버퍼 오버플로우 기법인 ret 주소를 쉘코드로 덮어 씌운다. ret까지의 거리를 ..
작성자 : 달고나 http://www.hackerschool.org/HS_Boards/data/Lib_system/buffer_overflow_foundation_pub.pdf 이 글은 자료를 글쓴이가 알기 쉽게 정리한 글.범용 레지스터만 정리함 1-1. 80868086이란 인텔에서 1978년에 개인용 컴퓨터를 위한 마이크로프로세서이다. 2-1. 8086 CPU 레지스터 CPU가 프로레스를 실행하기 위해 프로세스를 CPU에 적재해야 한다. 그렇게 하기 위해서는 CPU가 데이터를 재빨리 읽고 쓰기를 해야 하는 데이터이므로 CPU 내부에 있는 메모리 공간을 사용한다. 이러한 저장 공간을 레지스터라고 한다. 3-1 레지스터 종류레지스터의 종류는 목적에 따라서 구분되며 구조는 다음과 같다. 범용 레지스터 논리 ..
shmget() 공유 메모리를 생성하거나 생성된 공유 메모리를 사용할 수 있게 한다. 헤더 #include #include 형태 int shmget (key_t key , int size , int shmflg ); key_t key : 공유 메모리 식별 번호 size : 공유 메모리 크기 shmflg : 동작 옵션 IPC_CREATE : key와 일치하는 공유 메모리가 없으면 생성, 있으면 무시, | 연산자로 권한 설정 가능, 0666 : 공유 메모리 사용 권한 IPC_EXCL : key에 해당하는 공유 메모리가 있으면 -1 반환 반환 : 실패 시 -1 /성공 시 양수 shmat() 이미 할당된 공유 메모리 공간을 다른 프로세스에서 사용할 수 있게 권한을 부여하는 함수이다. 헤더 #include #in..