본문 바로가기

3. Pwnable (포너블)

(64)
[7주차] pwnable.kr 문제 풀이_pwnabless pwnable.kr/play.php https://pwnable.kr/play.php pwnable.kr1. mistake 문제 풀이(1)문제에서 제시한 ssh mistake@pwnable.kr -p2222 로 접속 / pw 입력 (2)ls 명령어와 ls -l 명령어를 통해 파일 목록 및 권한 확인 (3)cat mistake.c 명령어를 입력해 C코드 확인#include #include #define PW_LEN 10#define XORKEY 1void xor(char* s, int len){ int i; for(i=0; i 0)){ printf("read error\n"); close(fd); return 0; } char pw_buf2[PW_LEN+1]; printf("input passwo..
[6주차] pwnable.kr 문제 풀이_pwnabless pwnable.kr/play.php https://pwnable.kr/play.php pwnable.kr1. random 문제 풀이(1)문제에서 제시한 ssh random@pwnable.kr -p2222 로 접속 / pw 입력 (2)ls 명령어와 ls -l 명령어를 통해 파일 목록 및 권한 확인 (3)cat random.c 명령어를 입력해 C코드 확인#include int main(){ unsigned int random; random = rand(); // random value! unsigned int key=0; scanf("%d", &key); if( (key ^ random) == 0xcafebabe ){ printf("Good!\n"); setregid(getegid(), getegid()..
[5주차] 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: 변수의 자료형 선언 시, 변수를 활동하는 동안 담게 될 값의 크기와 용도, 부호 여부를 고려해야 하는데, 이런 고려 없이 부적절한 자료형을 사용했을 때 발생한다.-  자로형은 변수의 크기를 정의하고, 용도를 암시한다. -  한 번 정의된 변수의 자료형은 바꿀 수 없다. 즉, 변수에 할당된 메모리의 크기는 확장되거나 줄어들지 않는다.    이에 따라 변..