일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- C알고리즘
- BOF
- 밑바닥부터시작하는딥러닝
- 딥러닝파이썬
- 신경망파이썬
- 소프트맥스함수
- 백준
- C언어 알고리즘
- 머신러닝
- 인공지능
- 백준알고리즘
- 알고리즘
- 정보보안
- c언어
- 8086CPU레지스터
- 달고나bof
- 보안
- 파이썬신경망
- C언어알고리즘
- 파이썬
- 신경망
- 항등함수
- BOJ
- 스트림암호
- 활성화함수파이썬
- 신경망 학습
- 딥러닝
- 버퍼오버플로우
- 신경망구현
- FTZlevel10
- Today
- Total
목록<CTF>/<HackerSchool FTZ> (10)
HeeJ's
공유메모리? 프로세스는 자신의 업무를 수행하기 위해 필요한 자료를 저장하기 위한 메모리 공간을 갖게 된다. 이러한 메모리 공간에는 CPU에 의해 수행되는 명령어들, 프로그램 시작 시 정의되고 초기화된 데이터, 프로그램 시작 시 정의되었지만 포기화되지 않은 데이터, 함수호출에 필요한 정보, 동적할당이 이루어지는 데이터 등이 들어가게 된다. 이러한 데이터를 저장하게 사용하기 위한 메모리 공간을 커널에 요구해 할당받아 사용하게 되는데, 이러한 메모리 공간은 기본적으로 메모리를 요청한 프로세스만이 접근가능하도록 되어있다. 하지만 가끔은 여러개의 프로세스가 특정 메모리 공간을 동시에 접근해야할 필요가 있을 때가 있다. 공유 메모리는 이러한 작업을 위한 효율적인 방법을 제공한다. 공유 메모리는 여러 IPC 중에서 ..
bof, 버퍼오버플로우 문제이다. level10의 권한을 얻으려면 buf2의 앞부분이 go가 되어야 한다. 하지만 입력받는 부분은 buf[10]이 되는데, buf의 공간은 10인데, 40만큼 입력받아 이 부분이 문제가 되는 것 같다. /usr/bin/bof를 실행시켜보면 특정 문자열을 입력받고, 그대로 종료된다. 이제 buf와 buf2의 위치를 확인해보기 위해 gdb로 컴파일해주었다. Permission denied.로 위 파일은 권한이 거부되었다. 그래서 bof.c라는 파일을 tmp에 만들어주었다. 이제 gdb를 이용해 컴파일해주었다. 어셈블리언어로 확인해주었다. buf은 ebp-40, buf2는 ebp-24로, buf에서 16바이트를 채우면 buf2로 버퍼가 채워지는 것 같다. 이렇게 코드에서 Goo..
shadow 파일 패스워드를 암호화하여 보호하기 위해 만들어진 것으로 기존의 /etc/passwd파일에 있던 비밀번호를 shadow 파일에 암호화하여 저장하게 된다. 이 파일은 일반적으로 root만이 접근 권한(r)이 존재한다. 또한 패스워드에 대한 만료, 갱신 기간, 최소 기간 등의 시간상의 관리정책을 저장한다. [출처]https://soyammou.tistory.com/30 hint에서 파일의 용량이 2700이라고 했으니, 서버에서 파일 용량이 2700인 파일들을 찾아주었다. 처음에 -size 2700으로 검색해주었는데, 아무 파일도 뜨지 않았다. 그래서 찾아보니, 파일 용량의 단위를 적어주어야했다. 2700b = 2700블록 (512kbyte) 2700c = 2700 byte 2700k = 2700..
hint 파일을 열어보면 이런 hint들이 등장한다. /bin/level7은 level8의 SETUID 권한이 걸린 실행파일이었고, 이 파일을 실행시켜보았다. /bin/wrong.txt라는 파일이나 디렉터리가 없음이라고 뜨는데, 환경을 로컬에서 구축할 시, /bin/wrong.txt파일이 누락되는 오류가 생긴다고 한다. wrong.txt에 들어갈 내용은 --_--_- --____- ---_-__ --__-_- 이라고 한다. 이 내용을 참고해서 문제를 풀어보면 힌트 3. 2진수를 10진수를(로?) 바꿀 수 있는가. 힌트 4. 계산기 설정을 공학용으로 바꾸어라. 그래서 프로그래머 계산기를 이용해 띄어쓰기를 기준으로 2진수 계산을 해보았다. 109 97 116 101 이 나왔다. 이 10진수 값을 그대로 넣어..
level6의 문제는 실행시키자마자 hint가 보였다. 그리고 Enter를 입력하면 이런 창이 떴고, 일단 아무거나 입력해보았다. 이렇게 떴다가, putty가 종료된다. 다시 hint를 보면서, 이것저것 찾아보았다. bbs 전자 게시판. 전성기인 1980년대 초부터 1990년대 중반까지 여러 bbs들이 존재했다. 텔넷을 통해 접근할 수 있는 컴퓨터로서, 메시지들이 파일들을 공유하고 교환하기 위한 목적 level7의 password를 얻기 위해서는 shell이 떠야하는데, 텔넷 접속 때문에 shell이 뜨지 않는 상황이다. 그렇기에 우선 shell에 접속하기 위해 Ctrl+C를 사용해보았다. 이 상태에서는 ctrl+c를 사용할 수 없다고 한다. 그렇다면 bbs를 실행시켜준 후, 접속하고 있을 때 ctrl+..
hint 파일을 열어보면 tmp 파일이란 .tmp라는 확장자를 가지며 어떤 프로그램이 내부적으로 사용하기 위해 임시로 만들어 놓은 파일 삭제가 되지 않는 경우에는 사용중이라는 뜻이고, 모든 프로그램을 정상 종료한 후에는 삭제해도 무방하다. 윈도우나 도스의 TEMP 또는 TMP라는 환경변수는 "임시 폴더" 즉 "임시 디렉토리"를 가리키는 환경변수이다. 많은 프로그램들이 실행 중에 각종 임시 파일들을 만들어 사용하고, 특정 폴더에 모든 임시 파일들을 만들어 관리하기 쉽도록 한다. [출처] http://mwultong.blogspot.com/2007/11/tmp-temp.html level6의 SETUID 권한을 가진 실행 파일을 찾아주었고, /usr/bin의 level5를 실행하면 tmp의 임시 파일이 생기..
level3에서 찾은 패스워드로 level4에 로그인한다. 디렉토리를 확인해주고, hint를 살펴보았다. 이번 level4는 백도어와 관련된 문제 같다. 백도어? 정상적인 인증 절차를 거치지 않고, 컴퓨터와 암호 시스템 등에 접근할 수 있도록 하는 방법 보안상 허점을 역이용하여 크래커들이 계정 탈취에 성공한 후 재침입을 대비해 쉽게 접근할 수 있도록 만들어 둔 파일 Xinetd 하나의 독립 데몬이지만, 여러가지 다른 서비스들을 제어하고 관리. 시스템 부하를 줄이기 위해 사용 힌트대로 /etc/xinetd.d/ 디렉터리로 들어가 내용을 살펴보자 앞구르기하면서 봐도 수상한 backdoor라는 파일이 있다는 것을 확인할 수 있다. backdoor라는 파일의 실행권한을 보면, 읽기(r)밖에 할 수 없는 파일임을..
level2에서 얻은 password로 level3에 접속해주었다. ls 명령어로 디렉터리 확인 cat 명령어로 hint를 확인해주었다. 1. autodig라는 프로그램의 소스 2. 동시에 여러 명령어를 사용하는 방법과 문자열 형태로 명령어를 전달하기 위한 방법? 우선 level4의 setuid권한이 있는 파일을 찾아주었다. 일단 autodig를 실행시켜보았다. autodig의 사용법만 나오고 에러는 뜨지 않는다. ./autodig 호스트명 을 입력하면 되는 것 같다. 소스코드를 살펴보면 argc는 인자의 개수, argv는 인자를 뜻한다. if문에서 argc!=2라는 조건이 있고, 그 내부에 exit(0)이 있는 것을 보면, 인자의 개수가 2개라고 생각할 수 있는데, autodig 프로그램을 실행시킨다면..