Wargame/pwn.college

    Dynamic Allocator Misuse - level 1~20

    1. intro 2. code 및 분석 2.1. code 생략 2.2. 분석 heap을 할당하고 해제하는 기능들을 가지고 있으며, 일부 문제에서는 stack을 free할 수 있다. 3. 취약점 확인 및 공격 준비 3.1. 취약점 use after free, double free, tcache poisonning 3.2. 공격 준비 앞쪽 문제들은 use after free, double free와 tcache poisonning으로 풀 수 있다. 그러다가 레벨 9에서 아마 한번 막힐텐데, 일부 secret 값을 찾을 수 없어 브루트포스로 풀었다. 근데 후반에 레벨 14에서 다시 한번 유사한 문제가 나오게 되며, 이 때 secret 값을 굳이 찾을 필요가 없다(?)는 것을 깨닫게 된다. 아마 레벨 9도 동일..

    pwn.college - Dynamic Allocator Misuse payload

    보호되어 있는 글입니다.

    file struct exploits - level 16~19

    1. intro 2. code 및 분석 2.1. code 생략 2.2. 분석 new_note, write_note, open_file 등과 같은 명령어를 사용할 수 있고, 파일을 열고, 노트를 작성하는 기능을 가지고 있다. 3. 취약점 확인 및 공격 준비 3.1. 취약점 use after free, FSOP 3.2. 공격 준비 level 16~17 신박한 문제였다. open_file 및 new_note 모두 heap에 작성되며, 결국은 fwrite(note,0,470,fp) 와 같은 방식으로 작동하는데, file open 및 close 이후에 fp 변수 초기화를 하지 않기에 fp를 수정하여 내가 원하는 동작을 할 수 있게 된다. 이를 이용하면 aaw, aar이 모두 가능해지기 때문에 flag를 읽을 수 ..

    pwn.college - File struct exploit exploit payload

    보호되어 있는 글입니다.

    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의 값을 잘 활용하면 안되는게 없다는걸 새삼 ..