일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 미로 탐색 알고리즘
- 파이썬
- ftz
- PHP
- windosw 문자열
- web
- 암호수학
- 정렬 알고리즘
- 자료구조
- windosws wbcs
- 백준
- 시간복잡도
- level13
- c언어
- LoB
- System
- pwnable.kr
- OSI
- HTML
- War Game
- 재귀
- C
- 스택
- SWiFT
- 파일 시스템
- Stack
- ftz level13
- 두근두근 자료구조
- 큐
- Java
- Today
- Total
목록모두 보기 (257)
나의 기록, 현진록
ftz level6 접속 후 화면이다. 타 level과 다르게 접속 후에도 입력 모드 상태에 있다. 아무 키를 눌러보았더니 ? 갑자기 접속이 끊겼다. 접속 후 입력 상태에서 Ctrl + C 했더니 입력 모드가 해제되었다. 기존의 파일에서 password 파일과 tn 파일이 있다. 먼저 힌트 내용을 보면 힌트의 내용은 접속할 때의 화면과 같은 내용이다 인포샵 bbs의 텔넷 접속 메뉴에서 Ctrl + C를 누를 경우 빠져 나올 수 있는 취약점이 있었다고 한다. password와 tn 파일의 정보를 보면 password 파일은 읽기 권한이 tn 파일은 실행 권한이 주어졌다. 먼저 password 파일을 확인한다.... tn 파일을 실행해 보았더니 접속 후 화면과 같다. 로그인 후 바로 실행되는 프로그램인 것 ..
ftz level5 힌트의 내용이다. level5 파일의 정보를 알아보자. 실행할 수 있는 권한이 있다. 이 프로그램을 실행하면 /tmp에 level5.tmp라는 이름의 임시파일을 생성한다. 실행하고 /tmp 디렉토리를 확인한다. level5.tmp 파일이 존재하지 않는다. 임시파일은 생성과 동시에 삭제된다고 한다. 그렇다면 level5.tmp가 생성되고 삭제되지 않게 덤프한다. 먼저 level5.tmp를 생성하고 저장한다. 생성 직후의 level5.tmp 파일의 용량은 0이다. level5를 실행시킨 후 level5.tmp 파일의 용량이 변경되었다. level5.tmp의 읽기 권한이 있다.
ftz level2 소스 코드를 해석하면 인자가 2개가 아닐 경우 Auto Digger의 버전과 첫번째 인자를 출력한다. cmd 배열에 "dig @" 문자열을 추가하고cmd 배열에 두번째 인자를 연결하고cmd 배열에 "version.bind choas txt" 문자열을 추가하고 system 함수에 cmd 배열을 넣는다. 여기서 system 함수는 그냥 인자의 내용을 그대로 명령한다고 생각한다. autiodig 파일을 이용하여 level4의 권한을 얻어야한다. autodig 파일은 level4 권한의 setuid 파일이다. 실행시키는 동안 잠깐 level4 권한을 얻을 수 있다. 그 잠깐의 시간 동안 /bin/bash와 my-pass 명령을 하면 비밀번호를 알 수 있을 것이다. 위에 hint 파일에서 mo..
ftz level2 hint 파일을 출력한다. 혹시 몰라서 level3 권한으로 setuid 설정된 파일을 검색했다. /usr/bin/editor 파일이 있었다. 실행시킨다. vi 편집 상태이다. vi 편집 모드에서 명령 모드에선 쉘 명령어를 입력할 수 있다. : !/bin/bash 를 입력해도 무관하다. level3으로 사용자가 변경되었다.
리눅스 사용자는 passwd 명령어를 통해 자신의 비밀번호를 변경할 수 있다. passwd 명령어로 /etc/shadow 파일에 접근하여 내용을 수정하는 것이다. 그러나 /etc/shadow 파일의 권한은 root 뿐이다. 일반 사용자는 접근할 수 없다는 의미이다. 그렇다면 어떻게 /etc/shadow 파일에 접근할 수 있던 것일까? 비밀번호를 변경할 수 있는 passwd 파일에 root 권한의 setuid가 설정되어 있는 것이다. passwd 파일을 사용하는 동안에는 잠시 root 권한을 가진다는 의미이다. setuid setuid 설정된 파일은 기존의 마스크 값 맨 앞에 4가 추가되고 실행권한인 x가 s로 변경된다. 예) -r-s-r--r-- 1 root user *&!@#%*&!@% /usr/bin..
ftz level1 hint 파일을 읽을 수 있는 권한이 있다. level2 권한으로 setuid가 설정된 파일을 통해 level2 권한을 얻으면 될 것 같다. http://wisetrue.tistory.com/99 find 명령어를 통해 파일을 찾는다. find / -user level2 -perm -4000 2>/dev/null 위의 명령어는1. level2 사용자의 파일2. 마스크 값이 최소 4000인 파일3. 그 외의 파일은 표시하지 않는다.라는 명령어이다. /bin/ExcuteMe 라는 파일이 검색되었다. /bin 디렉토리로 이동하여 ExcuteMe 파일의 정보를 출력하면 x 자리에 s가 있으므로 setuid 파일이라는 것을 확인할 수 있다. 실행시키면 잠시 level2의 권한을 얻을 수 있을 ..
메모리 주소 비교하기 나중에 선언된 변수는 낮은 주소를 할당 받는다. 함수의 인자는 먼저 선언된 것이 낮은 주소에 나중에 선언된 것은 높은 주소에 할당된다.
1-1 임베디드 시스템이란? 임베디드 시스템은 기계, 장치에 대해 제어 기능을 제공해주는 컴퓨터 시스템이다. 즉, 임베디드 시스템은 어떤 기계나 장치에 대해 두뇌 역할을 하는 컴퓨터 시스템이다. -위키백과 자료 참고https://ko.wikipedia.org/wiki/%EC%9E%84%EB%B2%A0%EB%94%94%EB%93%9C_%EC%8B%9C%EC%8A%A4%ED%85%9C 1-2 임베디드 시스템의 발달 임베디드 시스템은 기술의 발달에 따라 기계식 임베디드 시스템과 전자식 임베디드 시스템으로 구분할 수 있다. 기계식 임베디드 시스템의 예는 선풍기이다. 선풍기는 4개의 버튼(정지/미풍/약풍/강풍)과 2개의 회전 스위치(회전,고정 / 시간 조절)로 구성되어 있다. 이러한 기계식 임베디드 시스템은 스스..
for(int i=0; i
1. 엔디언 엔디언은 컴퓨터의 메모리와 같은 1차원 공간에 여러 개의 연속된 대상을 배열하는 방법이다. 바이트를 배열하는 방법을 바이트 순서라고 한다. 리틀 엔디언은 산술 연산과 데이터의 타입이 확장/축소될 때 더 효율적이라는 장점이 있다. 빅 엔디언과 리틀 엔디언으로 나눌 수 있다. 빅 엔디언 : 큰 단위가 앞 리틀 엔디언 : 작은 단위가 앞 2. 빅 엔디언 빅 엔디언은 소프트웨어의 디버그를 편하게 해 주고 사람이 보기에 직관적이라는 장점이 있다. 사람이 숫자를 읽고 쓰는 방법과 같고 메모리가 그대로 저장되기 때문에 디버깅 과정에서 메모리의 값을 보기 편하다. Ex) 0x59654148 -> 59 65 41 48 이렇게 메모리 값은 빅 엔디언으로 보기 편하게 표현된다. 리틀 엔디언보다 속도가 빠르다. ..