[BuckeyeCTF 2024 / pwn] no_handouts
CTF
I just found a way to kill ROP. I think. Maybe?attachmentAnalysis문제에서 자체적으로 system()의 주소를 제공해 주고 [1], v1에 gets()로 입력을 받아 stack buffer overflow가 발생한다 [2].Exploitationsystem()의 주소를 이용하여 pop rdi; ret 가젯과 "/bin/sh"의 주소도 계산할 수 있다. Canary가 없기 때문에 그대로 ROP로 system("/bin/sh")를 호출하면 shell을 획득할 수 있다.ex.py
[BuckeyeCTF 2024 / beginner-pwn] color
CTF
What's your favorite color?AttachmentAnalysischar FAVORITE_COLOR[0x20];char FLAG[0x28];전역 변수 FAVORITE_COLOR와 FLAG는 메모리 상에서 인접해 있다.따라서 FAVORITE_COLOR를 0x20바이트만큼 가득 채우면,printf("%s!?!? Mid af color\n", FAVORITE_COLOR);마지막에 FAVORITE_COLOR를 출력할 때 FLAG까지 이어서 출력하게 된다.Exploitation
[BuckeyeCTF 2024 / beginner-pwn] runway1
CTF
Starting to ramp up!AttachmentAnalysisint win() { printf("You win! Here is your shell:\n"); system("/bin/sh");}int get_favorite_food() { char food[64]; printf("What is your favorite food?\n"); fflush(stdout); fgets(food, 100, stdin); printf("Hmmm..... %s...", food);}get_favorite_food()에서 64바이트 크기의 food에 100바이트를 입력받아 stack buffer overflow가 발생한다.ExploitationPIE와 canary가 없기 때문에..
[BuckeyeCTF 2024 / beginner-pwn] runway0
CTF
If you've never done a CTF before, this runway should help!Hint: MacOS users (on M series) will need a x86 Linux VM. Tutorial is here: pwnoh.io/utmAttachmentAnalysis#include #include #include int main() { char command[110] = "cowsay \""; char message[100]; printf("Give me a message to say!\n"); fflush(stdout); fgets(message, 0x100, stdin); strncat(command, message, 98); strn..
[pwnable.xyz] badayum
Wargame/pwnable.xyz
Let's count words.AttachmentAnalysisgenerate_me()는 strings에 저장된 10개의 문자열들 중 하나를 골라서 이어붙이는 과정을 20번 반복하여 me 문자열을 생성한다. strings에서 가장 짧은 문자열은 3바이트이고 가장 긴 문자열은 8바이트이기 때문에, me는 이론상 최소 60바이트에서 최대 160바이트까지 될 수 있다. me가 너무 길어지면 you에 입력을 받을 때 stack buffer overflow가 발생할 수 있다.ExploitationLeak canaryyou는 rsp+0x10부터 입력을 받기 때문에, me_len이 0x68 이상이면 canary의 null byte까지 채워서 canary를 leak할 수 있다.Leak PIEme_len이 0x77 이..
h0meb0dy_
'분류 전체보기' 카테고리의 글 목록 (4 Page)