System Hacking (pwnable)/CTF Write-up 27

[hackingcamp] bofforever ( write-up )

Analysisint __cdecl main() { char buf; // [esp+0h] [ebp-204h] int (**retaddr)(const char *); // [esp+208h] [ebp+4h] ​ system("echo hi"); read(0, &buf, 0x800u); if ( retaddr == &system ) { perror("no hack~"); exit(-1); } return 0; }ret에 system주소가 들어오면 막게 되어있다. 그래서 system을 ret주소에 직접적으로 넣지는 못한다.bss에다가 /bin/sh박고 어뜨케 할려고 bss영역을 확인을 해보았다..data:0804A01C _data segment dword public 'DATA' use32 .data:080..

[SSTF] bofsb ( write-up )

Mitigation juntae@ubuntu:~/ctf/SSTF_2019/bofsb$ checksec bofsb [*] '/home/juntae/ctf/SSTF_2019/bofsb/bofsb' Arch: i386-32-little RELRO: Full RELRO Stack: Canary found NX: NX enabled PIE: PIE enabled미티게이션이 다걸려있다. Analysis/***************************/ /* source codes from bofmt */ /* decompiled by IDA pro */ /***************************/ ​ unsigned int showFlag() { FILE *stream; // ST0C_4 char s; ..

[HITCON] Sleepy Holder ( write-up )

1. Mitigation 123456[*] '/home/juntae/ctf/hitcon/SleepyHolder/SleepyHolder' Arch: amd64-64-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x400000)cs그냥 평범하게 미티게이션이 걸려있다.특이한 점이라면 RELRO가 Partial이여서 GOT overwrite가 가능하다는거 정도?힙 문제를 조금 풀다보니까 이제 힙문제에서 미티게이션은 스택에 비해 별로 중요하지 않은것 같다는 생각이 든다. 2. Analysisurandom에서 값을 4개를 뽑아와서 0xFFF와 and연산을 하고, 그 값 만큼 malloc해준다.- heap주소를 브루트포싱 할 ..

[Rctf] Rnote ( write-up )

1. Mitigation 123456[*] '/home/juntae/ctf/Rctf/Rnote/RNote' Arch: amd64-64-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x400000)cs적당적당히 미티게이션이 걸려있다. 2. Analysis12345678910ssize_t menu(){ write(1, "***********************\n", 0x18uLL); write(1, "1.Add new note\n", 0xFuLL); write(1, "2.Delete a note\n", 0x10uLL); write(1, "3.Show a note\n", 0xEuLL); write(1, "4.E..

[0ctf] babyheap ( write-up )

1. mitigation 12345678juntae@ubuntu:~/ctf/0ctf/babyheap$ checksec babyheap [*] '/home/juntae/ctf/0ctf/babyheap/babyheap' Arch: amd64-64-little RELRO: Full RELRO Stack: Canary found NX: NX enabled PIE: PIE enabledjuntae@ubuntu:~/ctf/0ctf/babyheap$ cs미티게이션이 초록초록 하다. ㅠㅠ 2. anaysis12345678910if ( fd > 64) >> 46) + 0x10000) & 0xFFFFFFFFFFFFF000LL);v3 = (v5 - 3712 * (0x8D3DCB08D3DCB0DLL * (v5 >> 7) >>..

[PlaidCTF] ropasaurusrex ( write-up )

문제의 이름대로 ROP 기법을 사용한다.이 문제를 풀기위해 우리가 알고있어야 할 기본지식은 다음과 같다. -PLT, GOT 개념에 대한 이해 -RTL 기법 ( RTL chaining 기법 알고있으면 따봉! )-read, write 함수 -메모리보호 기법 - NX bit ( DEP ), ASLR 등등.. 나의 개인적인 생각이지만, 우리가 스택에서 지금까지 한 공부는 ROP를 하기 위함이라고 생각한다.그럼, 도대체 ROP는 무엇일까?ROP란 Return Oriented Programming 이라는 의미이다. 나는 영알못이므로 해석해보면...반환 지향형 프로그램이라는 뜻이다. ROP는 NX bit, DEP 같은 어떻게 우회할수없는 메모리 보호기법이 걸려있을때 주로 사용한다.프로그램의 흐름을 제어하고, 가젯 (..