[pwnable.xyz] note v2
Wargame/pwnable.xyz
Note taking 102 Mitigation Analysis win() int win() { return system("cat flag"); } win()이 실행되도록 하면 플래그를 획득할 수 있다. struct note 노트의 정보를 담는 구조체이다. 최대 0x20바이트의 title과 노트의 내용이 저장된 메모리의 주소 content로 구성된다. main() 1. Make note case 1u: make_note(); break; make_note() int make_note() { note **v0; // rax int v1; // eax __int64 idx; // rcx int size; // [rsp+4h] [rbp-Ch] note *note; // [rsp+8h] [rbp-8h] if (..
[pwnable.xyz] nin
Wargame/pwnable.xyz
Make sure Trent likes your gift. Mitigation Analysis do_chat() void __noreturn do_chat() { reznor *reznor; // [rsp+0h] [rbp-120h] char *myMessage; // [rsp+8h] [rbp-118h] char message[264]; // [rsp+10h] [rbp-110h] BYREF unsigned __int64 v3; // [rsp+118h] [rbp-8h] v3 = __readfsqword(0x28u); reznor = 0LL; while ( 1 ) { memset(message, 0, 0xFFuLL); printf("@you> "); read(0, message, 0xFFuLL); myMess..
[pwnable.xyz] Hero Factory
Wargame/pwnable.xyz
Everybody got a gimmick now Mitigation Analysis win() int win() { return system("cat flag"); } win()이 실행되도록 하면 플래그를 획득할 수 있다. main() 1. create a superhero if ( OP != 1 ) goto LABEL_13; createHero(*(_QWORD *)&argc); createHero() if ( heroCount ) { puts("Br0, you already have a hero..."); return __readfsqword(0x28u) ^ v6; } ++heroCount; 전역 변수 heroCount의 값이 0이 아니면 이미 히어로가 존재하므로 함수를 종료한다. 그렇지 않으면 he..
[pwnable.xyz] executioner v2
Wargame/pwnable.xyz
A bit different from before. Mitigation Analysis Executioner 문제와 비슷한데, 달라진 부분들이 있다. solve_pow() x = 0; y = 0; printf("POW: x + y == 0x%x\n", buf); printf("> "); if ( (unsigned int)_isoc99_scanf("%u %u", &x, &y) != 2 || !x || !y ) { puts("error"); exit(1); } getchar(); if ( y + x != buf ) { puts("POW failed"); exit(1); } puts("Loading challenge... "); sleep(x * y); solve_pow()에서 두 수를 입력받는데, 이전 문제..
[pwnable.xyz] Dirty Turtle
Wargame/pwnable.xyz
''.join([i for i in 'Dirty Turtle Off-RoadS' if i.isupper()]) Mitigation Analysis win() int win() { return system("cat flag"); } win()이 실행되도록 하면 플래그를 획득할 수 있다. main() int __cdecl main(int argc, const char **argv, const char **envp) { char *addr; // [rsp+0h] [rbp-10h] unsigned __int64 val; // [rsp+8h] [rbp-8h] setup(argc, argv, envp); puts("Dirty Turtle Off-RoadS"); printf("Addr: "); addr = (char..
h0meb0dy_
'Wargame/pwnable.xyz' 카테고리의 글 목록 (8 Page)