목록CTF's/tamuCTF (8)
ipwn
이번엔 pwn5문제다. static linked 컴파일 되어있고 nx가 걸려있다. 휴 733kb이길래 갑자기 왜 이렇게 함수가 많아진거지 했는데, 그냥 스태틱 링킹 방식으로 컴파일 한거였다.바로 풀러 가보자. int __cdecl main(int argc, const char **argv, const char **envp){ print_beginning(); return 0;} print_beginning함수를 호출해준다. int print_beginning(){ int result; // eax char v1; // [esp+Fh] [ebp-9h] puts("Welcome to the TAMU Text Adventure!"); puts("You are about to begin your journey ..
이번에 푼 문제는 pwn4이다. 바로 ida로 까보겠다. int __cdecl __noreturn main(int argc, const char **argv, const char **envp){ setvbuf(_bss_start, (char *)2, 0, 0); while ( 1 ) reduced_shell();} reduced_shell함수를 호출한다. int reduced_shell(){ char s; // [esp+Ch] [ebp-1Ch] puts("I am a reduced online shell"); puts("Your options are:"); puts("1. ls\n2. cal\n3. pwd\n4. whoami\n5. exit"); printf("Input> "); gets(&s); if ..
you can run, you can hide문제다. ssh로 접속하라고 한다. 접속하자. 그럼 이렇게 파일들이 있는데 딱 봐도 secrets는 페이크 같으니 .secret 디렉토리로 이동해보겠다. 근데 rbash에서 cd가 에러가 난다.그래서 bash쉘로 바꿔줬다. 그랬더니 cd가 된다. 그리고나서 .secret로 이동하고 ls -al로 숨김파일까지 보니, .dont_delete_me.txt파일이 있다.플래그가 적혀있을 것 같다. 그렇다 플래그가 있었다. gigem{TAMU_secret_society_qSD358OUYGcezTlFbqeh} 굳
이번에도 웹 문제이다. 접속해보겠다. 로봇이 춤춘다. 일단 코드를 보겠다. 사실 아까부터 짐작했지만 아무리 봐도 robots.txt에 뭔가 있을 것 같다. 진짜였다. html 들어가보자. 끝 gigem{craw1ing_bot$!} 굳
이 문제는 Veggies라는 문제인데, 웹 문제로 난이도가 쉽길래 한 번 풀어봤다. 사이트 접속하니까 이런 화면이 나온다. Cookies? 버튼을 눌러보겠다. 그리고 쿠키 보면 이런 값이 있다. 이 값을 base64 decode해보겠다. 그럼 플래그 나온다. 굳 gigem{CrAzzYY_4_CO0k!es}
이번엔 pwn3문제이다. NX가 안걸려있으니 shellcode를 때려박고, ret을 변조해 shell을 띄우면 된다. 일단 코드를 보자. int __cdecl main(int argc, const char **argv, const char **envp){ setvbuf(_bss_start, (char *)2, 0, 0); puts("Welcome to the New Echo application 2.0!"); puts("Changelog:\n- Less deprecated flag printing functions!\n- New Random Number Generator!\n"); echo(); return 0;} 또 echo함수를 호출한다. int echo(){ char s; // [esp+Ah] [e..
이번엔 pwn2 문제다. 난이도가 너무 낮아서 그냥 pwn3까지 하루에 다 올리겠다. int __cdecl main(int argc, const char **argv, const char **envp){ setvbuf(_bss_start, (char *)2, 0, 0); puts("I just love repeating what other people say!"); puts("I bet I can repeat anything you tell me!"); echo(); return 0;} echo함수를 호출한다. int echo(){ char s; // [esp+9h] [ebp-EFh] setvbuf(_bss_start, (char *)2, 0, 0); gets(&s); return puts(&s);} 이..
이번에 푼 문제는 pwn1 문제이다. 정말 쉽다. nt __cdecl main(int argc, const char **argv, const char **envp){ char s; // [esp+5h] [ebp-23h] int v5; // [esp+1Ch] [ebp-Ch] setvbuf(_bss_start, (char *)2, 0, 0); puts("This is a super secret program"); puts("Noone is allowed through except for those who know the secret!"); puts("What is my secret?"); v5 = 0; gets(&s); if ( v5 == 0xF007BA11 ) print_flag(); else puts("..