본문 바로가기

728x90

pwn

[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] blukat write up 어렵다면 숙련자라니.. 숙련자가 아니지만 뭔가 어려울 것 같은 느낌이 드는 문구입니다.. 3개의 파일이 있었습니다. blukat@prowl:~$ ls -l total 20 -r-xr-sr-x 1 root blukat_pwn 9144 Aug 8 2018 blukat -rw-r--r-- 1 root root 645 Aug 8 2018 blukat.c -rw-r----- 1 root blukat_pwn 33 Jan 6 2017 password 코드는 다음과 같습니다. #include #include #include #include char flag[100]; char password[100]; char* key = "3\rG[S/%\x1c\x1d#0?\rIS\x0f\x1c\x1d\x18;,4\x1b\x00\x.. 더보기
[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] asm write up asm을 풀어보겠습니다! shellcode를 작성하라고 되어있네요..! 일단 접속을 해봅니다! readme를 읽어보니 원격 접속으로 문제를 풀도록 되어있습니다. 플래그 파일은 되게 길어보이네요..! 소스코드는 다음과 같습니다. #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, SCMP_ACT_ALLOW, SCMP_SYS(open), 0).. 더보기
[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{.. 더보기
[pwnable.kr Toddler's Bottle] blackjack write up blackjack을 풀려고 보니 nc로 접속해서 해결하도록 되어있었습니다. 쓰여있는 주소로 일단 가서 소스코드부터 확인했습니다. 소스를 보고 취약점을 발견했습니다. 발견한 취약한 로직은 다음과 같습니다. int betting() //Asks user amount to bet { printf("\n\nEnter Bet: $"); scanf("%d", &bet); if (bet > cash) //If player tries to bet more money than player has { printf("\nYou cannot bet more money than you have."); printf("\nEnter Bet: "); scanf("%d", &bet); return bet; } else return b.. 더보기
[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.. 더보기

728x90