pwnable.kr blukat

在這裏插入圖片描述
老樣子連上看看
在這裏插入圖片描述
cat blukat.c

#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;
}


邏輯也很簡單,接受一個輸入的buf和讀取的password比較成功則將password解密flag
cat 一下password
在這裏插入圖片描述
告訴我們權限不足
我們仔細看一下password文件所屬的權限
在這裏插入圖片描述
有兩個用戶可讀,分別是root和blukat_pwn
我們來看一下我們當前的用戶所屬組,也是在裏面的,所以就沒有不可讀的道理
在這裏插入圖片描述
所以推測這句顯示出來掩人耳目的話就是password的真實內容
在這裏插入圖片描述
完成:)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章