[pwnable.kr] blukat

2018. 8. 20. 00:15


으ㅏㅏㅏ 저번에 [Toddler's Bottle] 다 풀었다고 좋아했는데...

새로운 문제가 올라왔다.

심지어 벌써 100명이상 풀었다 ㅂㄷㅂㄷ...



문제를 보면 포너블 문제가 약간 이상하다고 한다.

그리고 힌트로 이 문제가 어렵다면 숙련된 사람일것이라는데... 뭐 일단 접속해서 문제를 보자.



흠... 별로 다를게 없어보이는데


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <fcntl.h>
char flag[100];
char password[100];
char* key = "3\rG[S/%\x1c\x1d#0?\rIS\x0f\x1c\x1d\x18;,4\x1b\x00\x1bp;5\x0b\x1b\x08\x45+";
void calc_flag(char* s){
    int i;
    for(i=0; i<strlen(s); i++){
        flag[i] = s[i] ^ key[i];
    }
    printf("%s\n", flag);
}
int main(){
    FILE* fp = fopen("/home/blukat/password""r");
    fgets(password, 100, fp);
    char buf[100];
    printf("guess the password!\n");
    fgets(buf, 128, stdin);
    if(!strcmp(password, buf)){
        printf("congrats! here is your flag: ");
        calc_flag(password);
    }
    else{
        printf("wrong guess!\n");
        exit(0);
    }
    return 0;
}
 
cs


변수가 다 전역변수로 선언되어있고, password를 읽어와서 그 값을 사용자가 입력한 값과 비교하여 맞다면, flag를 출력해줍니다.

음.. 그냥 보기에는 어려워 보입니다.



일단 key길이는 33으로 플래그길이도 그정도 되어보입니다.



일단 password는 Permission denied가 나는데...



!?

ㅇㅁ... 좀 해멨는데; 잘보니 그룹 권한에 blukat_pwn이 있었군여



그렇담... 이건;;



아닛.. 이렇게 낚시를....



마침 글자도 33글자...



으ㅡㅡ

점수가 낮은 이유가 있었군요


클리어입니다.

'Wargame > Pwnable.kr' 카테고리의 다른 글

[pwnable.kr] brain fuck  (0) 2018.09.24
[pwnable.kr] horcruxes  (2) 2018.08.20
[pwnable.kr] unlink  (0) 2018.08.01
[pwnable.kr] memcpy  (0) 2018.07.27
[pwnable.kr] asm  (0) 2018.07.27

+ Recent posts