Wargame

    pwn.college - Assembly crash course payload

    보호되어 있는 글입니다.

    pwn.college - Shellcode payload

    보호되어 있는 글입니다.

    pwn.college - Format string bug payload

    보호되어 있는 글입니다.

    pwn.college - ROP payload

    보호되어 있는 글입니다.

    file struct exploits - level 7

    1. intro 2. code 및 분석 2.1. code 생략 2.2. 분석 파일 구조체 변조가 가능하며, 마지막에 fwrite로 종료된다. 3. 취약점 확인 및 공격 준비 3.1. 취약점 FSOP 3.2. 공격 준비 강의에 너무 잘 나와있어서 그냥 보고 베낀 수준이다. pwn.college pwn.college Apply various FILE struct exploits to obtain a leak, then hijack hijack control flow. Start Practice pwn.college 일단, libc version이 다소 높기에 vtable 주소를 직접적으로 수정하는 것은 불가하고, file structure 구조체 내의 주소로만 vtable 주소를 사용할 수 있다. 지금까지 ..

    Shellcode - level 14

    1. intro 2. code 및 분석 2.1. code 생략 2.2. 분석 6 bytes 입력 만으로 flag를 획득해야 한다. 3. 취약점 확인 및 공격 준비 3.1. 취약점 double stage shellcode 3.2. 공격 준비 일단 shellcode 관련 문제를 풀면서 가장 크게 배운 점은 pwntools의 shellcraft 사용법, assembler code의 재 발견, 굳이 shell을 따지 않더라도 flag는 읽을 수 있다 (물론 read write는 당연하고,) 는 것이다. 다시 문제로 돌아가서, 6 bytes 만으로 flag를 획득한다는게 사실 말도 안되는 것 같아 보이지만, shellcode 실행 직전의 각 register와 stack의 값을 잘 활용하면 안되는게 없다는걸 새삼 ..

    File struct exploit - level 4

    1. intro 2. code 및 분석 2.1. code 생략. 2.2. 분석 return address를 출력해주고, file structure에 값을 입력받은 뒤 종료된다. 더불어 win 함수가 존재한다. 3. 취약점 확인 및 공격 준비 3.1. 취약점 file structure 변조에 따른 aaw, aar 3.2. 공격 준비 단순히 문제를 푸는 것만 생각하면 file structure 변조를 통해 ret address를 win address로 변조하면 challenge 함수가 종료되면서 win 함수를 실행하게 된다. 다만, 페이로드 구성 중 다소 헷갈리는 부분이 발생했는데, aar시에는 아무 상관 없지만, aaw 시에는 buf_end는 buf_base + 1024보다 큰 값을 가져야하고, aaw 값..

    format string bug - level10, 11, 12

    1. intro 2. code 및 분석 2.1. code 생략 2.2. 분석 level 10 : exit로 func 함수가 종료되며, PIE, relro가 걸려있지 않고, 한번만 입력 가능하다. level 11 : exit로 func 함수가 종료되며, PIE, Full relro가 걸려있고, 두번 입력 가능하다. level 12 : func 함수가 leave, ret으로 종료되며, 대부분의 보호 기법과 동시에 "$" 문자를 필터링하며 두번 입력 가능하다. 3. 취약점 확인 및 공격 준비 3.1. 취약점 format string bug 3.2. 공격 준비 level 10 : PIE가 걸려있지 않기 때문에 주소 확인이 간단하고 relro가 걸려있지 않아 got overwrite가 가능하다. 통상적으로 하는 ..

    Return Oriented Programming - level15

    1. intro 2. code 및 분석 2.1. code 생략 2.2. 분석 바이너리를 실행하면 소켓을 생성해서 입력을 받으며, 한번 실행된 바이너리에 여러번 접속할 수 있다. 3. 취약점 확인 및 공격 준비 3.1. 취약점 buffer overflow 3.2. 공격 준비 레벨 14와 유사하지만 레벨 14에서는 메인 함수로 돌아갔다면 레벨 15에서는 libc start main으로 리턴한다. 그러므로 libc 내의 특정 위치로 리턴해야한다. BROP은 기본적으로 stop gadget을 찾아야하는데, 여기서는 특정 가젯을 타겟으로 리턴하면 바이너리가 무한루프에 빠진건지 다시 접속이 불가한 것을 볼 수 있었다. 그러므로 특정 가젯이 아닌 적당한 함수를 찾아서 이를 기준으로 나머지 주소를 브루트포스 할 수 있..

    intro

    pwn college 문제의 경우 매우 쉬운 문제부터 어려운 문제까지 다양하기에 풀면서 어려웠던 문제 배울점이 있었던 문제 각 항목의 가장 마지막 문제 만 write up을 작성할 예정 입니다. 예를 들어 ROP의 경우 현재 이 글을 작성하는 시점에 all clear 하였지만 level 15만 작성되어있습니다. 만약 format string bug의 level 10에 대한 글이 올라오면 그 이전 문제는 모두 푼 것이니 궁금하신 부분이 있다면 이를 참조해서 문의해주시기 바랍니다.