[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 |