분류 전체보기

    ImaginaryCTF 2024 (Pwn)

    ImaginaryCTF 2024 (Pwn)

    [ solved ]pwn / imgstore더보기바이너리는 좀 긴데 리네이밍하면서 보니 취약한 부분은 한정되어 있었다.3번 메뉴인 sell 함수에서 fsb 트리거할 수 있고feedbeef 조건 맞춰주면 bof를 트리거할 수 있다. 근데 bof는 트리거 해도 fgets가 작동을 안한다.(왜 그런진 모르겠음) 그래서 그냥 리턴 주소를 원가젯으로 덮어서 쉘 땄다.unsigned __int64 sell(){ char v1; // [rsp+7h] [rbp-59h] BYREF int buf; // [rsp+8h] [rbp-58h] BYREF int fd; // [rsp+Ch] [rbp-54h] char title[72]; // [rsp+10h] [rbp-50h] BYREF unsigned __int64 v..

    DownUnderCTF 2024 (Pwn)

    DownUnderCTF 2024 (Pwn)

    [ solved ] pwn / vector overflow더보기#include #include #include #include char buf[16];std::vector v = {'X', 'X', 'X', 'X', 'X'};void lose() { puts("Bye!"); exit(1);}void win() { system("/bin/sh"); exit(0);}int main() { char ductf[6] = "DUCTF"; char* d = ductf; std::cin >> buf; if(v.size() == 5) { for(auto &c : v) { if(c != *d++) { lose(); ..

    [Dreamhack][CTF Season 6] note write-up

    보호되어 있는 글입니다.

    [hxpCTF 2020] kernel-rop (with write-up) (2)

    지난 글(https://ssongkit.tistory.com/820)에 이어 남은 보호 기법인 KPTI, KASLR, FG-KASLR을 우회하는 방법을 배워보자. 1-1. Bypass KPTI: KPTI trampolineKTPI를 우회하는 방법 3가지를 공부해보자. 첫 번째는 KPTI trampoline이라고 부르는 기술이다. 커널에 빌트인으로 존재하는 기능이기 때문에 주로 쓰인다고 한다. 심볼 이름은 "swapgs_restore_regs_and_return_to_usermode"이다. 다음과 같이 주소를 검색한 뒤 vmlinux로 확인해보면 다음과 같다. / # cat /proc/kallsyms | grep swapgs_restore_regs_and_return_to_usermodeffffffff8..

    [hxpCTF 2020] kernel-rop (with write-up) (1)

    1. Introduction여러 보호 기법이 적용된 문제를 어떻게 풀 수 있는지 궁금했다. 그래서 찾아보다가 이 문제가 유명한 것 같아서 공부해보기로 했다.파일은 아래 링크에서 다운받을 수 있다. 여기서 중요한 파일은 vmlinuz, run.sh, initramfs.cpio.gz 이다.https://ctftime.org/task/14383 run.sh는 다음과 같으며, 보호 기법으로 smep, smap, kaslr, kpti가 설정되어 있는 것을 확인할 수 있다.qemu-system-x86_64 \ -m 128M \ -cpu kvm64,+smep,+smap \ -kernel vmlinuz \ -initrd initramfs.cpio.gz \ -hdb flag.txt \ -..