본문 바로가기

728x90

BOF

[smashthestack - io] level8 write up level8@io:~$ ls -l total 28 -rw-r--r-- 1 level8 level8 27617 Jul 30 04:35 tags smashthestack의 io문제를 마저 풀어보겠습니다. -r-sr-x--- 1 level9 level8 6662 Jan 26 2012 level08 -r-sr-x--- 1 level9 level8 14343 Sep 17 2010 level08_alt -r-------- 1 level8 level8 2355 May 29 2016 level08_alt.cpp -r-------- 1 level8 level8 662 May 29 2016 level08.cpp 으악 또 cpp이군요.. 그래도 함 풀어봤으니 자신감을 갖고 해봤습니다.. // writen by bla for.. 더보기
[pwnable.kr Toddler's Bottle] horcruxes write up pwnable.kr에 있는 toddler's bottle의 마지막 문제 horcruxes입니다! ROP를 사용하라고 나와있습니다. ROP는 공부할때 봤던 사이트들을 링크 걸어두겠습니다. ...더보기 https://www.lazenca.net/pages/viewpage.action?pageId=16810141 https://shayete.tistory.com/entry/6-Return-Oriented-Programming 들어가보면 두개의 파일밖에 존재하지 않습니다. horcruxes@prowl:~$ ls -l total 20 -rwxr-xr-x 1 root root 12424 Aug 8 2018 horcruxes -rw-r--r-- 1 root root 131 Aug 8 2018 readme horcru.. 더보기
[pwnable.kr Toddler's Bottle] unlink write up unlink corruption을 exploit 하라고 되어있습니다! unlink@prowl:~$ 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 2016 unlink.c 바로 소스코드부터 봐야 알 것 같습니다. #include #include #include typedef struct tagOBJ{ struct tagOBJ* fd; struct tagOBJ* bk; .. 더보기
[pwnable.kr Toddler's Bottle] uaf write up Use After Free bug라서 uaf인가 보다. 들어가 보니 저한테는 끔찍한 일이 있었습니다. uaf@prowl:~$ ls -l total 24 -rw-r----- 1 root uaf_pwn 22 Sep 26 2015 flag -r-xr-sr-x 1 root uaf_pwn 15463 Sep 26 2015 uaf -rw-r--r-- 1 root root 1431 Sep 26 2015 uaf.cpp 저는 cpp을 잘 볼 줄 모릅니다.. hackctf도 g++로 풀어야 하는 거 건너뛰고 풀고 있었는데..! 그래도 일단 떨리는 손으로 침착하게 코드를 확인해봤습니다. #include #include #include #include #include using namespace std; class Human{.. 더보기
[smashthestack - io] level7 write up level7@io:~$ ls -l total 24 -rw-r--r-- 1 level7 level7 23261 Jul 25 22:33 tags level7은 사실 설마? 하고 풀었는데 맞아버렸습니다.. 코드는 아래와 같습니다. #include #include #include int main(int argc, char **argv) { int count = atoi(argv[1]); int buf[10]; if(count >= 10 ) return 1; memcpy(buf, argv[2], count * sizeof(int)); if(count == 0x574f4c46) { printf("WIN!\n"); execl("/bin/sh", "sh" ,NULL); } else printf("Not today so.. 더보기
[smashthestack - io] level6 write up level6@io:~$ ls -l total 96 -rw-r--r-- 1 level6 level6 97729 Aug 18 22:58 tags 오늘은 level6를 풀어보겠다. 확실히 pwnable.kr 보다는 아직 쉬운 수준입니다. level06.c의 소스코드는 다음과 같습니다. //written by bla //inspired by nnp #include #include #include enum{ LANG_ENGLISH, LANG_FRANCAIS, LANG_DEUTSCH, }; int language = LANG_ENGLISH; struct UserRecord{ char name[40]; char password[32]; int id; }; void greetuser(struct UserRecord u.. 더보기
[pwnable.kr Toddler's Bottle] mistake write up 오늘은 mistake문제를 풀어보았다. mistake@prowl:~$ ls -l total 24 -r-------- 1 mistake_pwn root 51 Jul 29 2014 flag -r-sr-x--- 1 mistake_pwn mistake 8934 Aug 1 2014 mistake -rw-r--r-- 1 root root 792 Aug 1 2014 mistake.c -r-------- 1 mistake_pwn root 10 Jul 29 2014 password 소스코드, 취약 파일, flag 외에 password라는 하나의 파일이 더 존재한다. 일단 mistake.c 소스코드부터 보도록 하자. #include #include #define PW_LEN 10 #define XORKEY 1 void x.. 더보기
[smashthestack - io] level5 write up 방금 smashthestack io를 하고 있었기 때문에 하던 것 이어서 일단 올려야겠다. C:\Users\XXX>ssh level5@io.netgarage.org ____ ____ ||i |||o || Welcome at IO! ||__|||__|| |/__\|/__\| If you have problems connecting please contact us on IRC. (irc.netgarage.org +6697) level5@io.netgarage.org's password: 접속해서 보니 level05.c 소스코드가 있어서 확인하니 다음과 같은 코드였다. level5@io:/levels$ cat level05.c #include #include int main(int argc, char **ar.. 더보기

728x90