[해커스쿨 LOB] Level11: Skeleton >> Golem 포스팅 썸네일 이미지

War Games/해커스쿨 LOB

[해커스쿨 LOB] Level11: Skeleton >> Golem

Level 11. Skeleton >> Golem Theme: Stack Destroyer 로그인 id : skeleton pw : shellcoder bash2 & 코드 확인 [skeleton@localhost skeleton]$ ls golem golem.c [skeleton@localhost skeleton]$ bash2 [skeleton@localhost skeleton]$ nl golem.c 1 /* 2 The Lord of the BOF : The Fellowship of the BOF 3 - golem 4 - stack destroyer 5 */ 6 #include 7 #include 8 extern char **environ; 9 main(int argc, char *argv[]) 10 {..

2020.07.26 게시됨

[해커스쿨 LOB] Level10: Vampire >> Skeleton 포스팅 썸네일 이미지

War Games/해커스쿨 LOB

[해커스쿨 LOB] Level10: Vampire >> Skeleton

Level 10. Vampire >> Skeleton Theme: argv hunter 로그인 id : vampire pw : music world bash2 & 코드확인 [vampire@localhost vampire]$ bash2 [vampire@localhost vampire]$ nl skeleton.c 1 /* 2 The Lord of the BOF : The Fellowship of the BOF 3 - skeleton 4 - argv hunter 5 */ 6 #include 7 #include 8 extern char **environ; 9 main(int argc, char *argv[]) 10 { 11 char buffer[40]; 12 int i, saved_argc; 13 if(argc..

2020.07.26 게시됨

[해커스쿨 LOB] Level9: Troll >> Vampire 포스팅 썸네일 이미지

War Games/해커스쿨 LOB

[해커스쿨 LOB] Level9: Troll >> Vampire

Level 9. Troll >> Vampire Theme: Check 0xbfff 로그인 id : troll pw : aspirin bash2 잊지마시고 코드 확인해봅시다. [troll@localhost troll]$ bash2 [troll@localhost troll]$ nl vampire.c 1 /* 2 The Lord of the BOF : The Fellowship of the BOF 3 - vampire 4 - check 0xbfff 5 */ 6 #include 7 #include 8 main(int argc, char *argv[]) 9 { 10 char buffer[40]; 11 if(argc < 2){ 12 printf("argv error\n"); 13 exit(0); 14 } 15 if..

2020.07.25 게시됨

[해커스쿨 LOB] Level8: Orge >> Troll 포스팅 썸네일 이미지

War Games/해커스쿨 LOB

[해커스쿨 LOB] Level8: Orge >> Troll

Level 8. Orge >> Troll Theme: Check argc + argv hunter 로그인 id : orge pw : timewalker bash2 입력해주시고, 코드를 확인해봅시다. [orge@localhost orge]$ bash2 [orge@localhost orge]$ nl troll.c 1 /* 2 The Lord of the BOF : The Fellowship of the BOF 3 - troll 4 - check argc + argv hunter 5 */ 6 #include 7 #include 8 extern char **environ; 9 main(int argc, char *argv[]) 10 { 11 char buffer[40]; 12 int i; 13 // here i..

2020.07.25 게시됨

[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 게시됨

[pwntools] Syntax error: invalid syntax 뜰 때 포스팅 썸네일 이미지

나의 고혈압걸리는 에러일기

[pwntools] Syntax error: invalid syntax 뜰 때

보통 Syntax Error라고 하면 내가 정말 코딩을 잘못한 것이다. 근데 문제는 아무리 생각해도 내가 잘못 짠 부분이 없다는거.. 다음은 내가 pwnable.kr에서 asm이라는 문제를 풀면서 작성한 exploit코드이다. from pwn import * context(arch='amd64', os='linux') p = remote('pwnable.kr', 9026) print p.recvuntil("challenge :)") print p.recvuntil("shellcode: ") filename = "this_is_pwnable.kr_flag_file_please_read_this_file.sorry_the_file_name_is_very_looooooooooooooooooooooooooooo..

2020.07.19 게시됨

[해커스쿨 LOB] Level7: Darkelf >> Orge 포스팅 썸네일 이미지

War Games/해커스쿨 LOB

[해커스쿨 LOB] Level7: Darkelf >> Orge

Level 7. Darkelf >> Orge Theme: Check argv[0] (Symbolic Link) 로그인 id: darkelf pw: kernel crashed bash2 필수필수~ [darkelf@localhost darkelf]$ bash2 [darkelf@localhost darkelf]$ nl orge.c 1 /* 2 The Lord of the BOF : The Fellowship of the BOF 3 - orge 4 - check argv[0] 5 */ 6 #include 7 #include 8 extern char **environ; 9 main(int argc, char *argv[]) 10 { 11 char buffer[40]; 12 int i; 13 if(argc < 2)..

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 게시됨