write-up(pwn)
![[pwnable.tw] calc write-up](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fsjkgs%2FbtsJEiJj0JS%2FAAAAAAAAAAAAAAAAAAAAAO1lsewT0ciU5ysJ_Vv2J2lERmwV8gBc3WXhZQ78fOil%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DrTsmPv9kkNYi%252BnCxCEpaS4foQ4c%253D)
[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](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fpwutu%2FbtsI8YYA1JA%2FAAAAAAAAAAAAAAAAAAAAACGVHkBC9-p_Tk7GfGFc7g8lNrs9_nxmQWsRM-3gJEsz%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DkWUQdOopcbI3XXMSBTOupZSMzo8%253D)
[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..