본문 바로가기

3. Pwnable (포너블)

(62)
[6주차] pwnable.kr 문제 풀이_pwnabless pwnable.kr/play.php https://pwnable.kr/play.php pwnable.kr 1. collision 해당 문제는 해시 충돌에 관한 문제임 MD5 해시?128bit의 길이를 보유하고 있음(현재 사용되고 있는 SHA256 해시는 256bit의 길이 보유) 해시 충돌(Hash collision)?서로 상이한 입력값에 같은 해시값이 출력되는 상태 ∴ SHA256 해시보다 MD5의 해시 충돌 발생 가능성이 더 높음 → 따라서 현재는 MD5 해시를 잘 사용하지 않음 문제 풀이(1)문제에서 제시한 ssh col@pwnable.kr -p2222 로 접속 / pw 입력 (2)ls 명령어와 ls -l 명령어를 통해 파일 목록 및 권한 확인 (3)cat col.c 명령어를 입력해 C코드 확..
[2025.04.11] 4주차 활동_Pwnabless 참고 강의: 드림핵(DreamHack) - System Hacking  System Hacking dreamhack.ioSTAGE 7.  Bypass NX & ASLR[ NX ]No-eXecute(NX)실행에 사용되는 메모리 영역과 쓰기에 사용되는 메모리 영역을 분리하는 보호 기법 (프로세스의 각 세그먼트에 필요한 권한만 부여)→ 일반적으로 코드 영역에는 읽기 + 실행 / 나머지 영역에는 읽기 + 쓰기 권한 부여 Checksec 명령어를 이용하면 바이너리에 NX가 적용됐는지 확인 가능  ✓ 다양한 명칭     ∘ 인텔       → XD(eXecute Disable)    ∘ 윈도우   → DEP(Data Execution Prevention)    ∘ ARM      → SN(eXecute Never)..
[2025.04.04] 3주차 활동_Pwnabless 참고 강의: 드림핵(DreamHack) - System Hacking System Hacking dreamhack.ioSTAGE 5.  Stack Buffer Overflow[ 함수 호출 규약 ]함수의 호출 및 반환에 대한 약속(함수 호출 시 반환된 이후를 위해 호출자(Caller)의 상태(Stack Frame) 및 반환 주소(Return Address)를 저장해야 함) 호출자는 1. 피호출자(Callee)가 요구하는 인자를 전달해줘야 함2. 피호출자의 실행이 종료될 때는 반환값을 전달받아야 함한 함수에서 다른 함수 호출 시프로그램 실행 흐름 → 다른 함수로 이동호출한 함수가 반환하면다시 원래 함수로 돌아와서 기존의 실행 흐름 이어감 ※ 함수 호출 규약 적용은 컴파일러의 몫이기 때문에      컴파일러의..
[2025.03.28] 2주차 활동 _ Pwnabless 참고 강의: 드림핵(DreamHack) - System Hacking  System Hacking dreamhack.ioSTAGE 3.  Tool  Installation[ gdb(GNU debugger) ]리눅스의 대표적인 디버거  • 바이너리 분석 용도로 널리 사용되는 플러그인1. gef2. peda3. pwngdb4. pwndbg (해당 로드맵에서는 pwndbg기준으로 설명이 진행될 예정) ⚲ 디버거(debugger)버그를 없애기 위해 사용하는 도구→ 프로그램을 어셈블리 코드 단위로 실행하면서 실행결과를 사용자에게 보여줌[ ELF(Executable and Linkable Format) ]리눅스의 실행파일 형식구성 요소내용헤더실행에 필요한 여러 정보 보유섹션컴파일된 기계어 코드, 프로그램 문자열을 ..
[2025.03.21] 1주차 활동 _ Pwnabless 참고 강의: 드림핵(DreamHack) - System Hacking  System Hacking dreamhack.ioSTAGE 1.   System  Hacking  Introduction[환경 구축]해당 강의는 Ubuntu 22.04(x86-64), x86-64 아키텍처를 기반으로 학습할 예정VMware, Ubuntu 22.04 ISO 다운 -> 리눅스 가상환경 구축[용어]가상 머신 컴퓨터를 에뮬레이팅(emulating, 모방)한 것 호스트(Host) 가상 머신을 작동시키는 컴퓨터 게스트(Guest) 가상 머신 안에서 작동하는 컴퓨터 * 대표적인 가상화 소프트웨어: VMware, VirtualBox, Parallels, QEMU 등STAGE 2.   Background  -  Computer  Sc..
[2024.11.22] PWN PWN 해 7주차 활동 7주차는 드림핵의 System Hacking 로드맵에서 Type Error, Command Injection, Path Traversal 강의를 공부했다.https://dreamhack.io/lecture/roadmaps/2 System Hacking시스템 해킹을 공부하기 위한 로드맵입니다.dreamhack.io  Type Error  Type Error: 변수의 자료형 선언 시, 변수를 활동하는 동안 담게 될 값의 크기와 용도, 부호 여부를 고려해야 하는데, 이런 고려 없이 부적절한 자료형을 사용했을 때 발생한다.-  자로형은 변수의 크기를 정의하고, 용도를 암시한다. -  한 번 정의된 변수의 자료형은 바꿀 수 없다. 즉, 변수에 할당된 메모리의 크기는 확장되거나 줄어들지 않는다.    이에 따라 변..
[2024.11.16] PWN PWN 해 6주차 활동 6주차는 드림핵의 System Hacking 로드맵에서 Use After Free, Double Free Bug 강의를 공부했다.https://dreamhack.io/lecture/roadmaps/2Background: ptmalloc2Memory Allocator: 프로세스의 요청에 따라 동적으로 메모리를 할당 및 해제해주는 주체, 또는 관련된 알고리즘들의 집합.실습 환경 - Dockerfile ptmalloc2ptmalloc2(pthread malloc 2)는 Wolfram Gloger가 개발한 Memory Allocator로, Doug Lea의 dlmalloc을 개선한 ptmalloc의 두 번째 버전.ptmalloc의 구현 목표는 메모리의 효율적인 관리.메모리 낭비 방지빠른 메모리 재사용메모리 단편..
[2024.11.09]PWN PWN 해 5주차 활동 5주차는 드림핵의 System Hacking 로드맵에서 Bypass PIE & RELRO, Out of bounds, Format String Bug 강의를 공부했다.https://dreamhack.io/lecture/roadmaps/2 System Hacking시스템 해킹을 공부하기 위한 로드맵입니다.dreamhack.io Bypass PIE & RELRO ELF : 실행 파일(Executable), 공유 오브젝트(Shared Object, SO)실행 파일 : addr공유 오브젝트 : libc.so Position-Independent Code(PIC) : 메모리의 어느 주소에 적재되어도 코드의 의미가 훼손되지 않는 코드, 공유 오브젝트로 재배치(Relocation)가 가능하도록 설계. Position..