pwnable/ctf14 2021 UTCTF writeup 전에 주말에 하길래 참여해봤다. 펀문제 위주로 풀었다 2021. 5. 7. [write-up]2018 secoon ctf - profile c++로 되어 있는 바이너리라 분석하기 좀 힘들었다. 그냥 원하는거 릭이 되고 공격벡터도 워낙 명확해서 바로 풀 수 있을 줄 알았는데 생각보다 오래걸렸다... 그 이유는 자꾸 bof가 나는 중간에 포인터를 free해주는데 그 포인터 값을 덮게 되어서 double free가 자꾸 났다 ㅎㅎ 그래서 environ이라는 libc에서 스택 가리키는 것이 있어서 environ 릭하고 얻은 스택으로 다시 canary 릭해서 rop로 풀었다. libc중 stack을 가리키는 것 environ 꼭 기억하자!!! 너무 졸린 상태에서 풀어서 익스 코드는 내가봐도 너무 더럽다.... payload # usr/bin/env python # ryuuu from pwn import * libc = ELF("./libc-2.23".. 2018. 11. 6. [write-up] 2018 SCTF - CowBoy 보호되어 있는 글 입니다. 2018. 7. 14. [write-up] 2017 defcon CTF - smashme 데프콘이 이제 얼마 안남아서 한번 풀어보는데 최저배점이라 그런지... 너무 쉽다... 그런데 다른건 너무 어렵다 ㅎㅎ 힙 문제가 많던데 이번 기회에 힙 좀 공부해야겠다... 먼저 문제를 보면 64비트 바이너리이다. 보호기법을 보면 아무것도 걸려있는게 없다. 그래서 쉘코드를 쓸 수 있어서 더 쉽다 main을 보면 그냥 gets 받아서 오버플로우 나게 생겼다 그런데 오버플로우가 나지 않아서 보니 중간에 인자에 Smash me outside, how bout dAAAAAAAAAAA와 입력한 값을 인자로 함수호출을 한다. 이 함수가 무엇인지 모르겠어서 디버깅을 해보니까 strstr인 것을 확인할 수 있었다. 그래서Smash me outside, how bout dAAAAAAAAAAA 뒤에 payload를 붙여주.. 2018. 5. 9. x64 systemcall execveat x64 systemcall 중 execveat이란 게 있어서 execve말고도 execveat으로도 쉘을 띄울 수 있다..... 이걸 몰라서 asis때 개삽질했다.... 이것만 알면 엄청 쉬운 문젠데..... 이런식으로 하면 쉘이 따진다.... 꼭 기억해놔야겠다... asis Tinypwn문제가 바로 이거가지고 rop하는 문제였다. payload # usr/bin/env python # ryuuu from pwn import * import sys s = process('./TinyPwn') #s = process(["strace","-i","./TinyPwn"]) print util.proc.pidof(s) pause() payload = '/bin/sh\x00'.ljust(0x128,'A') payl.. 2018. 5. 6. [write-up] 2018 ASIS CTF - Cat 먼저 바이너리를 보면 64비트 바이너리이다. 보호기법은 nx, 카나리가 걸려 있다. 실행시켜보면 pet을 create, edit, delete, 그리고 print해주는 메뉴가 존재한다. 그 중 먼저 create 부터 보면 별거 없고 그냥 구조체를 이용해 bss 영역에 동적할당을 해 값을 넣는 것을 확인할 수 있었다. 구조체 구조를 써보면 struct pet{ char pet_name[22]; char pet_kind[22]; int pet_age; } 이런식으로 되어있는 거 같았다. 그런데 edit을 보면 edit을 할지 안할지를 입력을 나중으로 미뤄놓고 일단 ptr에 동적할당을 해 수정할 값을 입력받는다. 그 후 그 후 안한다고 하면 free하는 것을 볼 수 있었다. 그런데 여기서 동적할당하는 길이가 .. 2018. 5. 2. 이전 1 2 3 다음