Wargame

    [Pwnable] fd

    오늘은 처음으로 pwnable.kr 문제를 풀어볼라 한다. 리눅스의 file descriptor와 관련된 문제인거 같다. 제시되어 있는 주소로 들어가보자 flag 파일이 있지만 당연하게도 읽히진 않는다. c 파일을 열어보자 #include #include #include char buf[32]; int main(int argc, char* argv[], char* envp[]){ if(argc

    [Pwnable] basic_exploitation_001

    보호되어 있는 글입니다.

    [Pwnable] basic_exploitation_000

    보호되어 있는 글입니다.

    [Pwnable] g++ pwn

    오늘은 g++ pwn 문제에 대해서 정리를 해보려한다. 32bit ELF파일이며 다이나믹 링킹되어 있다. NX만 enabled 되어 있으므로 쉘 코드 사용은 힘들어 보인다. 바로 아이다로 열어보자. 메인 함수에는 별게 없으니 넘기자 HackCTF에서는 처음 C++ 바이너리를 보는거 같다. 하나하나 분석을 해보자 우선 fgets로 입력을 받을 때 length check를 해주니 BOF는 힘들거 같다. 코드를 유심히 보면 replace 함수가 있다. 맞다. "I"라는 문자를 입력하게 되면 "you"라는 문자열로 변환을 해준다. 그럼 우리는 strcpy 함수를 이용해서 BOF를 터트릴 수 있다. 익스를 구상해보자면 1. "I"를 이용해서 buffer 0x3C만큼 채우기 2. Dummy 값으로 SFP 채우기 3..

    [Pwnable] RTL_World

    문제만 봐도 RTL의 향기가 나네요 32bit ELF파일이고 다이나믹 링킹되어 있네요 NX Bit가 걸려있으며 Partial Relro이기 때문에 Dynamic section에 write 권한이 없겠네요! 실행시키면 여러가지 메뉴가 나옵니다. int __cdecl main(int argc, const char **argv, const char **envp) { int result; // eax int v4; // [esp+10h] [ebp-90h] char buf; // [esp+14h] [ebp-8Ch] void *v6; // [esp+94h] [ebp-Ch] void *handle; // [esp+98h] [ebp-8h] void *s1; // [esp+9Ch] [ebp-4h] setvbuf(stdo..

    [Pwnable] You know 0xDiablos

    보호되어 있는 글입니다.