목록War Game/hitcon training (15)
tmxklab
1. 문제 1) mitigation확인 statically linked 파일 2) 문제 확인 한 번의 입력 값을 받고 종료, rop관련 문제인듯 하다.(걍 문제이름이 simple rop이길레..) 3) 코드흐름 파악 3-1) main함수 int __cdecl main(int argc, const char **argv, const char **envp) { int v4; // [esp+1Ch] [ebp-14h] puts("ROP is easy is'nt it ?"); printf("Your input :"); fflush(stdout); return read(0, &v4, 100); } 입력을 받는 v4변수는 [ebp-0x1c]에 위치하며 read함수에서 100bytes까지 입력을 받을 수 있으므로 bof..
1. 문제 1) mitigation확인 2) 문제 확인 음,,,, segmenatation fault가 뜬 것을 보니 잘못된 주소를 참조한 것 같다. 3) 코드흐름 파악 3-1) main함수 int __cdecl main(int argc, const char **argv, const char **envp) { char **v3; // ST04_4 int v4; // ST08_4 char src; // [esp+12h] [ebp-10Eh] char buf; // [esp+112h] [ebp-Eh] _DWORD *v8; // [esp+11Ch] [ebp-4h] puts("###############################"); puts("Do you know return to library ?"); p..
1. 문제 1) mitigation확인 2) 문제 확인 입력 값을 2번 받고 종료됨 3) 코드흐름 파악 3-1) main함수 int __cdecl main(int argc, const char **argv, const char **envp) { char s; // [esp+1Ch] [ebp-14h] setvbuf(stdout, 0, 2, 0); printf("Name:"); read(0, &name, 0x32u); printf("Try your best:"); return (int)gets(&s); } read함수에서 입력 값을 저장하는 name변수는 bss영역에 존재함 gets함수에서 입력 값을 받는 s변수를 통해 bof가능 → ret조작 가능 2. 접근 방법 그냥 name변수에 쉘 코드 작성하여 실행..
1. 문제 1) mitigation 확인(orw.bin) 2) 문제 확인(orw.bin) 2-1) main함수 int __cdecl main(int argc, const char **argv, const char **envp) { orw_seccomp(); printf("Give my your shellcode:"); read(0, &shellcode, 200u); ((void (*)(void))shellcode)(); return 0; } orw_seccomp()를 호출하고 shellcode변수에 입력 값을 받아 shellcode를 실행시킴 → shellcode변수에 쉘 코드 저장시켜서 실행시키는 듯 2-2) orw_seccomp함수 unsigned int orw_seccomp() { __int16 v..
1. 문제 1) mitigation 확인 2) 문제 확인 2-1) main함수 int __cdecl main(int argc, const char **argv, const char **envp) { setvbuf(_bss_start, 0, 2, 0); get_flag(); return 0; } 2-2) get_flag함수 unsigned int get_flag() { int buf; // [esp+8h] [ebp-80h] int v2; // [esp+Ch] [ebp-7Ch] unsigned int i; // [esp+10h] [ebp-78h] int fd; // [esp+14h] [ebp-74h] char v5; // [esp+19h] [ebp-6Fh] char v6; // [esp+1Ah] [ebp-6..