pwnable23 리눅스 디렉토리 구조 /bin : 필수적인 기본 명령어들 존재 mv, cp, ls 등 /etc : 여러가지 설정파일 존재 (etc/passwd, etc/shadow) /home : 사용자의 폴더가 존재하는 디렉토리 /tmp : 임시 폴더, 로그파일 존재 /usr : 사용자가 사용할 수 있는 명령어들 존재 /var : 임시폴더, tmp와는 다르게 로그파일이 아닌 임시의 설정파일이 존재 /opt : add on 소프트웨어 패키지 설치됨. redhat은 없음 2018. 5. 2. 리눅스 구조 기초부터 정리!!! 커널 -> 알맹이란 뜻, 커널은 컴퓨터 운영체제의 중심부분. 커널은 리눅스가 처음 부팅될 때 메모리로 로딩 된다. 쉽게 생각하면 여러분들의 윈도우를 부팅할 때 나오는 로딩화면이 바로 커널을 로딩 하는 것이다. 컴퓨터의 시스템 자원들을 관리한다. 항상 메인 메모리에 상주하기 때문에 윈도우 부팅 후 바로 작업관리자를 열어 메모리 사용량을 보면 0%가 아닌 것이다. 리눅스의 커널은 1만줄 이상의 C언어와 1000줄 정도의 어셈블리어로 구성되어 있어서 이식성(portability)이 좋다. 즉 다른 시스템 환경에서도 잘 적응할 수 있다는 것이다. 커널의 역할 * 보안 커널은 컴퓨터 하드웨어와 프로세스의 보안을 책임진다. * 자원 관리 한정된 시스템 자원을 효율적으로 관리하여 프로그램의 실행을.. 2018. 5. 2. [write-up] 2018 ASIS CTF - Cat 먼저 바이너리를 보면 64비트 바이너리이다. 보호기법은 nx, 카나리가 걸려 있다. 실행시켜보면 pet을 create, edit, delete, 그리고 print해주는 메뉴가 존재한다. 그 중 먼저 create 부터 보면 별거 없고 그냥 구조체를 이용해 bss 영역에 동적할당을 해 값을 넣는 것을 확인할 수 있었다. 구조체 구조를 써보면 struct pet{ char pet_name[22]; char pet_kind[22]; int pet_age; } 이런식으로 되어있는 거 같았다. 그런데 edit을 보면 edit을 할지 안할지를 입력을 나중으로 미뤄놓고 일단 ptr에 동적할당을 해 수정할 값을 입력받는다. 그 후 그 후 안한다고 하면 free하는 것을 볼 수 있었다. 그런데 여기서 동적할당하는 길이가 .. 2018. 5. 2. [write-up] 2018 codegate - Super Marimo 보호되어 있는 글 입니다. 2018. 3. 8. [write-up] 2018 codegate - BaskinRobins31 2018 코드게이트 퍼너블 첫문제이다. 먼저 64비트 바이너리였다. 보호기법은 nx만 걸려져 있었다. 프로그램을 실행해보니 베스킨 라빈스 게임을 하는 프로그램이었다. 코드에서 입력을 받는 read를 따라가 봤더니 바로 버퍼오버플로우가 나는 것을 확인할 수 있었다. 이제 그냥 64bit rop해주면 된다. 첫문제라 쉽다. payload # !usr/bin/env python # ryuuu from pwn import * libc = ELF("/lib/x86_64-linux-gnu/libc.so.6") libc_start_main_offset = libc.symbols['__libc_start_main'] s = process("./baskin") #s = process(["strace","-i","./ba.. 2018. 2. 6. [write-up] 2017 white_league-start 먼저 64비트 바이너리였다. 보호기법은 카나리와 nx가 걸려 있었다. 바이너리를 실행해보면 멤버를 추가, 삭제, 수정, 출력 할 수 있었다. 그런데 업데이트 부분을 보면 다른 부분과 다르게 입력이 마이너스인 것을 검사하는 루틴이 없다. 따라서 마이너스를 입력해주면 bss 영역에 존재하는 mem_info 위의 값에 접근할 수 있게 된다 하지만 int 입력을 받을 때 아스키로 받아서 연산해서 바로 마이너스를 넣어줘도 마이너스가 되지 않는다 자세히 보면 int 입력을 받는 함수는 unsigned int로 변수가 선언되어 있지만 update를 해주는 함수는 signed int로 되어 있어서 integer overflow를 이용하여 마이너스를 입력해 줄 수 있다. 따라서 마이너스를 입력하여 member 내용을 출.. 2018. 2. 5. 이전 1 2 3 4 다음