toddler
-
[Toddler's Bottle] lotto write upSystem hacking training/pwnable.kr 2018. 8. 2. 02:55
toddler lotto 문제를 풀었습니다. 조금 삽질을 했는데 허탈하네요....ㅋㅋㅋ 2pt 문제이고, 문제 보시죠. Mommy! I made a lotto program for my homework. do you want to play? ssh lotto@pwnable.kr -p2222 (pw:guest) 별로 내용이 없어서 ssh연결하여 바로 c코드를 확인해보면 아래와 같이 나옵니다. lotto@ubuntu:~$ cat lotto.c #include #include #include #include unsigned char submit[6]; void play(){ int i; printf("Submit your 6 lotto bytes : "); fflush(stdout); int r; r = re..
-
[Toddler's Bottle] cmd1 write upSystem hacking training/pwnable.kr 2018. 7. 27. 20:09
cmd1을 풀이하였습니다. Mommy! what is PATH environment in Linux? ssh cmd1@pwnable.kr -p2222 (pw:guest) 리눅스에서 환경변수에 관한 문제인듯 합니다. ssh 접속후 ls 로 파일명을 보면 cmd.c 파일이 있는데 아래와 같습니다. cmd1@ubuntu:~$ cat cmd1.c #include #include int filter(char* cmd){ int r=0; r += strstr(cmd, "flag")!=0; r += strstr(cmd, "sh")!=0; r += strstr(cmd, "tmp")!=0; return r; } int main(int argc, char* argv[], char** envp){ putenv("PATH=/..
-
[Toddler's Bottle] random write-upSystem hacking training/pwnable.kr 2018. 7. 21. 20:50
pwnable.kr Toddler's Bottle 6번째 문제 random 을 풀이하였습니다. 아버님이 프로그래밍을 할때 random 값을 어떻게 사용하는지 가르쳐줬다고 하는것으로 보아 난수에 대한 문제로 추정을 했습니다. 그리고 ssh로 바로 접속을 하였고 바이너리의 소스 코드를 확인해보면 다음과 같습니다. rand()를 사용하여 난수를 생성하고 key값을 사용자로 부터 입력받아 xor 연산 후 0xdeadbeef와 같다면 쉘을 띄워줍니다. 만약 다르다면 2의 32제곱의 경우의 수를 생각해야될것이라고 언지를 해주면서 프로그램이 종료됩니다. rand()로 난수를 생성하는 것은 어쩌면 상관없을 것 같지만 이와 같이 key값을 인증하는곳에 쓰인다면 문제가 될 수 있습니다. 왜냐..! 저도 처음 알게된 사실이..
-
[Toddler's Bottle] passcode write upSystem hacking training/pwnable.kr 2018. 7. 21. 20:41
드디어 10pt passcode 문제를 풀었슴다..ㅎ 이 문제가 요구하는 선행지식은 다음과 같습니다. scanf() 에서 사용되는 &의 의미, linux에서 fflush(), got overwrite 위 개념들을 알고있어야 풀 수 있습니다. Mommy told me to make a passcode based login system. My initial C code was compiled without any error! Well, there was some compiler warning, but who cares about that? ssh passcode@pwnable.kr -p2222 (pw:guest) 문제는 위와 같고, ssh 로 접속해서 문제를 봅시다. #include #include void..
-
[Toddler's Bottle] mistake write upSystem hacking training/pwnable.kr 2018. 7. 11. 05:08
오늘은 mistake를 풀어봤습니다. input, passcode 문제를 풀이하려고 했는데 어렵네요.. 쉬운 1pt 문제입니다. We all make mistakes, let's move on. (don't take this too seriously, no fancy hacking skill is required at all) This task is based on real event Thanks to dhmonkey hint : operator priority ssh mistake@pwnable.kr -p2222 (pw:guest) Operator priority 즉 연산자 우선순위가 힌트로 주어졌습니다. ssh 접속 후 파일 목록을 확인하면 아래와 같습니다. mistake@ubuntu:~$ ls -a..
-
[Toddler's Bottle] flag write-upSystem hacking training/pwnable.kr 2018. 7. 4. 03:27
오늘은 toddler's bottle 4번째 문제인 flag를 풀이를 작성해보겠습니다. 어떤 아버지가 이런 선물을 줄까요... 다운로드 링크에 들어가면 flag 바이너리를 받으실 수 있습니다. ELF 64bit 실행파일이고, statically linked가 되어있네요. 그리고 stripped되어있습니다. stripped 되어있다는 것은 실행 가능한 이진 프로그램들과 목적 파일들로부터 모든 디버깅과 상징 정보가 지워졌다는 것을 의미합니다. 이로인해서 디버깅이 불가능한 상태입니다. gdb로 까봐도 소용없었습니다. checksec 으로 바이너리에 걸린 메모리 보호기법을 확인해보니 보통 보이지 않던 Packer라는것이 보였습니다. 내용은 UPX로 packed 되었다는군요. UPX(Ultimate Packer ..