[pwnable.kr] horcruxes(7 pts) :: Write-Up 포스팅 썸네일 이미지

War Games/pwnable.kr

[pwnable.kr] horcruxes(7 pts) :: Write-Up

Voldemort concealed his splitted soul inside 7 horcruxes. Find all horcruxes, and ROP it! author: jiwon choi ssh horcruxes@pwnable.kr -p2222(pw: guest) 와 toddler's bottle 마지막 문제네요. 대놓고 ROP라고 주어져있네요. 봅시다 일단 readme를 보니 9032로 들어가서 익스하라고하네요. 아무튼 그렇고, 아이다로 열어봅시다. main함수입니다. 음 저기있는 함수들을 확인해 보았을 때, init_ABCDEFG()는 랜덤값을 할당해주는 함수였고, seccomp_* 함수들이 있는데, 이는 찾아보니 프로그램을 보호하기 위해 샌드박스 안에서 실행이 될 수 있도록 하는 함수라고 하..

2020.10.09 게시됨

[pwnable.kr] unlink(10 pts) :: Write-Up 포스팅 썸네일 이미지

War Games/pwnable.kr

[pwnable.kr] unlink(10 pts) :: Write-Up

Daddy! how can I exploit unlink corruption? ssh unlink@pwnable.kr -p2222 (pw: guest) 음 저는 이문제를 unsafe unlink라고 생각했는데, 뭔가 느낌이 다르더라구요? 제가 요점을 못찾은거일수도 있지만, 일단 봅시다. unlink@pwnable:~$ ls -l total 20 -r--r----- 1 root unlink_pwn 49 Nov 23 2016 flag -rw-r----- 1 root unlink_pwn 543 Nov 28 2016 intended_solution.txt -r-xr-sr-x 1 root unlink_pwn 7540 Nov 23 2016 unlink -rw-r--r-- 1 root root 749 Nov 23 2..

2020.10.02 게시됨

[pwnable.kr] asm(6 pts) :: Write-Up 포스팅 썸네일 이미지

War Games/pwnable.kr

[pwnable.kr] asm(6 pts) :: Write-Up

Mommy! I think I know how to make shellcodes ssh asm@pwnable.kr -p2222 (pw: guest) 쉘코드 만들기..? 일단 들어가봅시다. 플래그 파일이 심상치않네요. 우선 c코드부터 봅시다. asm@pwnable:~$ cat asm.c #include #include #include #include #include #include #include #include #define LENGTH 128 void sandbox(){ scmp_filter_ctx ctx = seccomp_init(SCMP_ACT_KILL); if (ctx == NULL) { printf("seccomp error\n"); exit(0); } seccomp_rule_add(ctx, S..

2020.07.22 게시됨

[pwnable.kr] uaf(8 pts) :: Write-Up 포스팅 썸네일 이미지

War Games/pwnable.kr

[pwnable.kr] uaf(8 pts) :: Write-Up

Mommy, what is Use After Free bug? ssh uaf@pwnable.kr -p2222 (pw: guest) Use After Free라.... bof만 다루다가 바로 heap문제가 나와서 당황스럽지만, 아무튼 해봅시다. Use After Free에 대한 글: https://dokhakdubini.tistory.com/35?category=809542 [Heap Exploit] UAF(Use After Free)기법 이론설명 Heap Exploit UAF(Use After Free)기법 이론설명 당분간은 Heap의 취약점 분석을 할 것인데요, 오늘은 UAF(Use After Free)기법입니다. UAF기법을 들어가기 전에, Heap구조가 무엇인지 알아야겠죠? 모른다면, 공부. dok..

2020.07.20 게시됨

[pwnable.kr] cmd2(9 pts) :: Write-Up 포스팅 썸네일 이미지

War Games/pwnable.kr

[pwnable.kr] cmd2(9 pts) :: Write-Up

Daddy bought me a system command shell. but he put some filters to prevent me from playing with it without his permission... but I wanna play anytime I want! ssh cmd2@pwnable.kr -p2222 (pw: flag of cmd1) cmd1 플래그 복사 안해놔서 한참 고생했네요. 아무튼 들어가면 대충 cmd1과 비슷한 맥락이네요. 우선 delete_env()함수를 통해 외부 환경변수를 모두 제가하고, PATH를 /no_command_execution_until_you_become_a_hacker로 바꾸고, filter함수로 =, PATH, export, /, `, flag를..

2020.07.19 게시됨

[pwnable.kr] cmd1(1 pts) :: Write-Up 포스팅 썸네일 이미지

War Games/pwnable.kr

[pwnable.kr] cmd1(1 pts) :: Write-Up

Mommy! what is PATH environment in Linux? ssh cmd1@pwnable.kr -p2222 (pw: guest) 환경변수 관련한 문제인가 보네요. 접속합시다. 우선 PATH라는 환경변수에다가 /thankyouverymuch를 집어넣고, argv[1]을 filter함수에 넣어서 함수의 리턴값이 0이여야 하네요. filter함수는 들어온 문자열에 flag, sh, tmp가 있는지 확인합니다. 그러면 putenv("PATH=/thankyouverymuch");가 실행되면서 일어나는 일에 대해서 생각해봅시다. 우선 왜 환경변수를 이용할까요? 환경변수는 일종의 즐겨찾기입니다. 우리가 가장 많이 쓰는 리눅스 명령어인 cat, ls, 등등은 모두 bin이라는 폴더 안에있는 명령입니다...

2020.07.18 게시됨

[pwnable.kr] coin1(6 pts) :: Write-Up 포스팅 썸네일 이미지

War Games/pwnable.kr

[pwnable.kr] coin1(6 pts) :: Write-Up

Mommy, I wanna play a game! (if your network reponse time is too slow, try nc 0 9007 inside pwnable.kr server) Running at : nc pwnable.kr 9007 보니까 진짜 동전은 무게가 10이고, 가짜 동전은 무게가 9인데, 무게의 합을 통해 가짜 동전을 찾아달라는 게임이네요. 두개씩 비교를 한다면 N/2번 비교를 해야하지만, 주어지는 C는 N/2보다 터무니없이 값이 작습니다. 따라서 이원탐색, Binary Search를 사용하면 좋을 것 같네요. Binary Search에 대한 기본적인 내용은 다음과 같습니다: https://dokhakdubini.tistory.com/175?category=847037 [..

2020.07.12 게시됨

[pwnable.kr] shellshock(1 pts) :: Write-Up 포스팅 썸네일 이미지

War Games/pwnable.kr

[pwnable.kr] shellshock(1 pts) :: Write-Up

Mommy, there was a shocking news about bash. I bet you already know, but lets just make it sure :) ssh shellshock@pwnable.kr -p2222 (pw:guest) bash에 대한 문제인가봅니다. #include int main(){ setresuid(getegid(), getegid(), getegid()); setresgid(getegid(), getegid(), getegid()); system("/home/shellshock/bash -c 'echo shock_me'"); return 0; } 단순히 bash를 실행시킨 후, 명령어를 실행합니다. shellshock를 실행시켜 얻은 bash권한으로 flag를..

2020.07.09 게시됨