본문 바로가기

3. Pwnable (포너블)/2) 개념 정리

(37)
[24.05.18] 7주차 활동- 포너블 개념 드림핵 System Hacking> 로드맵을 듣고 공부&실습했습니다.실습을 하면서 어려운 코드들은 구글링을 하며 학습했습니다.Bypass PIE & RELROOut of boundsFormat String Bug https://dreamhack.io/lecture/roadmaps/2 System Hacking시스템 해킹을 공부하기 위한 로드맵입니다.dreamhack.ioRELRO는 ELF 바이너리 또는 프로세스의 데이터 섹션을 보호하는 보안 기술입니다. 데이터 섹션에는 프로그램 실행에 필요한 변수, 문자열 및 코드가 포함됩니다. RELRO는 이러한 데이터 섹션을 읽기 전용으로 설정하여 공격자가 데이터를 변경하거나 프로그램 실행 흐름을 방해하는 것을 방지합니다. RELRO에는 두 가지 모드가 있습니다:Pa..
[24.05.11] 6주차 활동- 포너블 개념 1. 드림핵 'System Hacking' 로드맵을 함께 듣고 공부했다.Stack Buffer Overflow Stack Canary Bypass NX & ASLRhttps://dreamhack.io/lecture/roadmaps/2 System Hacking시스템 해킹을 공부하기 위한 로드맵입니다.dreamhack.io[ Stack Buffer Overflow ]1. Background : 함수 호출 규약(1) 함수 호출 규약: 함수 호출 규약은 함수의 호출 및 반환에 대한 약속, 한 함수에서 다른 함수를 호출할 때 프로그램의 실행 흐름은 다른 함수로 이동하고 호출한 함수가 반환하면, 다시 원래의 함수로 돌아와서 기존의 실행 흐름을 이어나감. 그러므로 함수를 호출할 때는 반환된 이후를 위해 호출자의 ..
[24.05.04] 4주차 활동 - 리눅스 기초, 포너블 기초 1. 인프런 '생활코딩-리눅스' 강의를 함께 듣고 공부했다.섹션 10. 도메인섹션 11. 인터넷을 통한 서버간 동기화섹션 12. 로그인 없이 로그인 하기https://inf.run/9Yxy [지금 무료] 생활코딩 - Linux | Egoing Lee - 인프런Egoing Lee | 본 수업에서는 리눅스의 사용법을 다룹니다. 특히 초심자들이 어려워하는 부분이 명령어를 이용해서 컴퓨터를 제어하는 법입니다. 여기서는 초심자가 명령어를 사용하는데 필요한 가www.inflearn.com 2. 드림핵 'System Hacking' 로드맵을 함께 듣고 공부했다.System Hacking IntroductionBackground - Computer ScienceTool InstallationShellcodehttps:..
[24.03.30] 3주차 활동 - 리눅스 기초 인프런 '생활코딩-리눅스' 강의를 함께 듣고 공부했다. 섹션 6. 사용자 섹션 7. 권한 섹션 8. 그룹 섹션 9. 인터넷, 네트워크 그리고 서버 https://inf.run/9Yxy 📌 섹션6. 다중 사용자 시스템 1. 다중 사용자 -1 컴퓨터를 여러명이서 같이 사용할 때 각자의 권한이 필요함(각자의 아이디로 로그인해 컴퓨터 사용) => 다중 사용자 시스템 필요 다중 사용자 시스템의 단점 : 각 사람마다의 권한 체크가 필요함 -> 시스템 복잡도 커짐 중요한 정보를 저장했는데 권한에 대해 제대로 설정하지 않아 누구에게나 공개될 수 있음 2. 다중 사용자 -2 명령어 id : 자신이 누구인지 알 수 있음(내가 누군지 식별한다) uid (user id) : 사용자의 아이디 gid (group id) : 그룹..
[2024.03.23] 2주차 활동 - 리눅스 기초 인프런 '생활코딩-리눅스' 강의를 듣고 함께 스터디했다. 섹션 2. IO Redirection섹션 3. 쉘과 쉘 스크립트섹션 4. 디렉토리 구조와 파일찾는 법섹션 5. 프로세스와 실행https://inf.run/9Yxy [지금 무료] 생활코딩 - Linux 강의 - 인프런본 수업에서는 리눅스의 사용법을 다룹니다. 특히 초심자들이 어려워하는 부분이 명령어를 이용해서 컴퓨터를 제어하는 법입니다. 여기서는 초심자가 명령어를 사용하는데 필요한 가장 보편적www.inflearn.com섹션 2. IO RedirectionoutputIO Redirection : 화면에 나온 출력 값을 다른 파일과 같은 곳으로 돌려 저장하는 것 > 리다이렉션 기호 : 예시로 ls -l > result.txt를 해주면, ls -l의 결..
[2024.03.16] 1주차 활동 - 리눅스 기초 인프런 '생활코딩-리눅스' 강의를 함께 듣고 공부했다. 섹션 0에서는 리눅스 환경설정, 섹션 1에서는 리눅스 기초에 대해 공부했다. https://inf.run/9Yxy 섹션 0. 상황별 준비 및 환경설정 codeonweb, cloud9 을 통해 설치 없이 리눅스를 사용할 수 있다. 섹션 1. 리눅스 기초 1. 리눅스 컴퓨터 운영체제의 한 종류, 커널 자체 명령어 통해 제어한다. (명령어는 사용자가 머물고 있는 디렉토리를 대상으로 내려지기 때문에 사용자의 위치를 확인하고 명령을 내려야 한다.) CLI(Command User Interface) : 가상 터미널/ 터미널을 통해 사용자와 컴퓨터가 상호작용한다. 2. 기초 명령어 pwd : 현재 작업 중인 디렉토리 정보 출력 ls : 디렉토리 목록 확인 -a ..
[2023.05.20] '드림핵-시스템 해킹' 강의 수강 드림핵 시스템 해킹 강의 STAGE 1,2 를 수강하였다. STAGE 1 - System Hacking Introduction 본 로드맵은 Ubuntu 22.04(x86-64)를 기반으로 작성되었다. 해당 운영체제 사용하고 있지 않으면 가상 환경을 구축해야 원환할 실습이 가능하다.---> 이를 위해 가상 머신을 사용해야 함! 윈도우에서는 VMware, VirtualBox 또는 WSL2를 이용하여 환경 구축 가능. 맥에서는 VMware, VirtualBox나 맥에 최적화된 Parallels Desktop을 통해 환경 구축 가능. STAGE 2 - Background - Computer Science 컴퓨터 구조(Computer Architecture) 컴퓨터가 효율적으로 작동할 수 있도록 하드웨어 및 소프..
[2023.05.06] ‘생활코딩-Linux’ 강의 수강 ‘생활코딩-Linux’ 강의를 섹션 10부터 섹션 12까지 수강하였다. 도메인 기본 개념 도메인 (domain) : 사람들이 기억하기 쉽게 만들어진 인터넷 주소, IP 주소를 대신할 수 있는 이름 *도메인 입력 시 실제로는 ip address 통해서 접속 ex) google.com 등 DNS (Domain Name Server) : 숫자로 구성된 네트워크 주소인 IP 주소를 사람이 이해하기 쉬운 명칭인 도메인 이름ㅇ로 상호 매칭시켜주는 시스템 *각각의 인터넷을 사용하는 서버마다 hosts file 존재 ->hosts에 적혀있는 domain ip를 보고 그 ip를 가지고 접속 hosts 파일 : hosts들의 IP를 적어놓은 파일, 해당 파일을 통해 도메인 이름 변조 가능 : 리눅스 /etc/hosts에 ..