목록War Game/Pwnable.xyz (50)
tmxklab
1. 문제 nc svc.pwnable.xyz 30027 1) mitigation 확인 2) 문제 확인 계속 입력을 받을 수 있고 score가 계속 깎이고 있다. 3) 코드흐름 파악 3-1) main() __int64 __fastcall main(__int64 a1, char **a2, char **a3) { init_func(); puts("Yolo yada yada - Play with me!"); puts("==========================================="); start_main(); return 0LL; } 3-2) start_main() unsigned __int64 start_main() { size_t v0; // rax size_t v2; // rax char ..
1. 문제 nc svc.pwnable.xyz 30026 1) mitigation 확인 2) 문제 확인 3) 코드흐름 파악 3-1) main() int __cdecl __noreturn main(int argc, const char **argv, const char **envp) { int v3; // eax int v4; // [rsp+0h] [rbp-20h] size_t n; // [rsp+8h] [rbp-18h] void *s; // [rsp+10h] [rbp-10h] unsigned __int64 v7; // [rsp+18h] [rbp-8h] v7 = __readfsqword(0x28u); setup(argc, argv, envp); puts("Secure login."); printf("User ..
1. 문제 nc svc.pwnable.xyz 30025 1) mitigation 확인 2) 문제 확인 3) 코드흐름 파악 3-1) main() int __cdecl main(int argc, const char **argv, const char **envp) { _QWORD *v4; // rax int i; // [rsp+0h] [rbp-20h] int fd; // [rsp+4h] [rbp-1Ch] setup(argc, argv, envp); solve_pow(); puts("Shellcode executioner"); fd = open("/dev/urandom", 0); if ( fd != -1 ) { read(fd, key, 0x7FuLL); close(fd); printf("Input: "); re..
1. 문제 nc svc.pwnable.xyz 30024 1) mitigation 확인 2) 문제 확인 이름을 입력하고 캐릭터를 선택한다. 이후에 어떤 값을 넣으면 이름을 출력하고 종료된다. 3) 코드흐름 파악 3-1) main() int __cdecl main(int argc, const char **argv, const char **envp) { size_t v3; // rax unsigned int v5; // [rsp+0h] [rbp-10h] unsigned int v6; // [rsp+4h] [rbp-Ch] unsigned __int64 v7; // [rsp+8h] [rbp-8h] v7 = __readfsqword(0x28u); setup(argc, argv, envp); motd_select_c..
1. 문제 nc svc.pwnable.xyz 30023 1) mitigation 확인 2) 문제 확인 name을 저장하고 수정하고 출력할 수 있는 프로그램인 것 같다. 3) 코드흐름 파악 3-1) main() int __cdecl main(int argc, const char **argv, const char **envp) { int v3; // eax int i; // [rsp+Ch] [rbp-14h] int j; // [rsp+10h] [rbp-10h] int v7; // [rsp+18h] [rbp-8h] int v8; // [rsp+1Ch] [rbp-4h] setup(argc, argv, envp); while ( 1 ) { while ( 1 ) { print_menu(); v3 = read_int..
1. 문제 nc svc.pwnable.xyz 30022 1) mitigation 확인 2) 문제 확인 3) 코드흐름 파악 3-1) main() int __cdecl main(int argc, const char **argv, const char **envp) { setup(argc, argv, envp); puts("PvP - Programmatically vulnerable Program"); while ( 1 ) { print_menu(); switch ( (unsigned __int64)(unsigned int)read_int32() ) { case 0uLL: return 0; case 1uLL: if ( dword_6026A8 ) short_append(); else puts("Message is..
1. 문제 nc svc.pwnable.xyz 30021 1) mitigation 확인 2) 문제 확인 3) 코드흐름 파악 (참고로, 변수 이름을 조금 수정했음) 3-1) main() int __cdecl main(int argc, const char **argv, const char **envp) { setup(argc, argv, envp); init_login(); puts("Web bookmarks."); while ( 1 ) { print_menu(); switch ( (unsigned __int64)(unsigned int)read_long() ) { case 0uLL: return 0; case 1uLL: printf("Password: "); if ( password == (int)read_..
1. 문제 nc svc.pwnable.xyz 30019 1) mitigation 확인 2) 문제 확인 Read와 Write 2개의 메뉴가 보이며 Read에서는 어떤 주소에 있는 값을 읽는 것 같고 Write는 어떤 주소에 값을 쓰는 것 같다. 3) 코드흐름 파악 3-1) main() int __cdecl main(int argc, const char **argv, const char **envp) { int v3; // eax const char *v5; // rdi char *s; // [rsp+10h] [rbp-10h] setup(argc, argv, envp); puts("Read Write Sleep Repeat."); do { while ( 1 ) { while ( 1 ) { print_menu..
1. 문제 nc svc.pwnable.xyz 30018 1) mitigation 확인 2) 문제 확인 인사했는데 안받아줬다 3) 코드흐름 파악 3-1) main() int __cdecl main(int argc, const char **argv, const char **envp) { setup(argc, argv, envp); printf("> "); read(0, &input, 0x404uLL); fclose(&input); return 0; } read를 통해 input에 0x404byte만큼 입력 값을 받음 fclose(input) 전역변수) input : 0x601260 2. 접근방법 fsop(file stream oriented programming)를 통해 익스 FSOP를 위한 fclose()..
1. 문제 nc svc.pwnable.xyz 30017 1) mitigation 확인 2) 문제 확인 message에 값을 저장하고 2번 메뉴를 통해 출력할 수 있으며 1번 메뉴를 통해 수정할 수 있다. 하지만 3번메뉴를 선택하면 아무런 출력이 없다. 3) 코드흐름 파악 3-1) main() int __cdecl main(int argc, const char **argv, const char **envp) { int v3; // eax char v5; // [rsp+10h] [rbp-30h] unsigned __int64 v6; // [rsp+38h] [rbp-8h] v6 = __readfsqword(0x28u); setup(argc, argv, envp); puts("Message taker."); p..