Wargame/HackCTF

    [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..

    [Misc] Baseball Price & BF

    이번에는 쉬어가는 타임으로 misc 정말 쉬운 문제들을 풀어보겠습니다 👀 우선 Baseball Price 입니다. 주어진 nc 접속정보로 접속을 하면 간단한 수학문제가 나옵니다 너무 어려워요 사칙연산이 약한 저는 한참 머리가 활발한 저의 초등학생 사촌동생에게 물어보러갑니다 야구배트의 가격은 1.05이고 야구볼은 0.05이라고 합니다 똑똑한 사촌동생 허허 올바르게 입력한다면 FLAG를 줍니다~ FLAG = Flag is HackCTF{말랑말랑_두뇌교실} . BF라는 문제와 함께 이상한 기호들이 남발되어 있습니다 이걸 본 저는 뇌가 탈출하고 말았습니다. 찾아보니 BF는 BrainFuck이라는 언어의 줄임말이고 아무래도 Fuck이라는 단어가 흔히들 비속어로 사용되다 보니 BrainF*** 혹은 BF라는 단어로..

    [Pwnable] Yes or no

    오늘은 Yes or no 문제를 풀어보겠습니다 ~ 일단 .zip파일을 풀어보면 libc 파일과 64bit Elf File을 줍니다 우선 Mitigation부터 체크해주도록 하겠습니다. NX Bit만 Enabled 되어있고 Partial Relro로 설정이 되어있습니다 🧐! Partial Relro로 설정이 되어있으니 Got Overwrite가 가능해보입니다 물론 Got Overwrite로만으로 풀릴지는 모르겠지만 한번 IDA로 까봅시다 ~ 우선 Show me your number이라는 문장과 함께 s라는 변수에 입력을 받습니다 main코드를 보니 특정 조건을 만족시켜 s에 gets로 입력받게 하는것이 이 문제를 풀 수 있는 실마리가 될 거 같습니다! 그럼 GDB를 이용해서 v10의 값을 알아봅시다 🙌 g..

    [Crypto] Smooth CipherText

    암호화된 문장만 있고 다른 파일은 존재하지 않습니다! 사실 이 문제를 봤을때는 어떻게 풀어야될까 많이 고민을 했습니다 저는 많은 암호화 방식을 마주한것이 아니라 카이사르 암호 밖에 생각하지 못했습니다 하지만 카이사르 암호화는 아닌 비즈네르 암호화 방식이라고 합니다. ko.wikipedia.org/wiki/%EB%B9%84%EC%A6%88%EB%84%A4%EB%A5%B4_%EC%95%94%ED%98%B8 비즈네르 암호 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 비즈네르 암호(프랑스어: Vigenère 暗號)는 프랑스 외교관이었던 블레즈 드 비즈네르에 의하여 1586년에 발표된 암호이다. 외교관 ko.wikipedia.org - 참고한 사이트 플래그 ..

    [Crypto] Great Binary

    이번에는 crypto 문제입니다! 솔직히 이번 문제는 너무 쉬워서 그냥 워밍업 정도로 생각해주시면 감사하겠습니다! 우선 문제에서 주어지는 .zip 파일을 다운받겠습니다 . . . . 그럼 이렇게 BIN 형식의 숫자들이 나옵니다 그냥 심플하게 문자열로 바꿔주는 사이트를 찾아서 바꿔주기만 하면 됩니다 ! string-functions.com/binary-string.aspx Binary to String Converter | Translate Your Binary to Text Please note: any spaces or colons (:) in the binary string will be removed. Need to convert text to binary? Use Our Text to Binary..