분류 전체보기
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(); ..
[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 \ -..
[reversing.kr] Position write-up
문제를 풀기에 앞서 mfc100u.dll을 확보해줘야 한다. 문제 설명은 다음과 같다.ReversingKr KeygenMe Find the Name when the Serial is 76876-77776 This problem has several answers. Password is ***p 실행하면 name과 serial을 입력하라고 나온다. 먼저 Wrong 이라는 문자열을 검색해주자. ida에서 shift+f12를 누르면 나오지 않을 수 있다. 이는 유니코드 문자열을 검색하지 않기 때문이다. 화면에서 우클릭하면 setup 메뉴가 나오는데 거기서 유니코드도 체크해줘야 한다. 이제 x로 어디서 쓰이는지 추적하면 된다.void __thiscall sub_401CD0(char *this) { int v2;..