Exploit-Exercises nebule 旅行日誌(五)
阿新 • • 發佈:2018-07-08
str ring 。。 lib print unistd.h ces nis img
接著上次的路程繼續在ubuntu下對漏洞的探索練習,這次是level04了
先看下level04的問題描述:
(level4.c)
#include <stdlib.h> #include <unistd.h> #include <string.h> #include <sys/types.h> #include <stdio.h> #include <fcntl.h> int main(int argc, char **argv, char **envp) { char buf[1024]; intfd, rc; if(argc == 1) { printf("%s [file to read]\n", argv[0]); exit(EXIT_FAILURE); } if(strstr(argv[1], "token") != NULL) { printf("You may not access ‘%s‘\n", argv[1]); exit(EXIT_FAILURE); } fd = open(argv[1], O_RDONLY); if(fd == -1) { err(EXIT_FAILURE,"Unable to open %s", argv[1]); } rc = read(fd, buf, sizeof(buf)); if(rc == -1) { err(EXIT_FAILURE, "Unable to read fd %d", fd); } write(1, buf, rc); }
自己開始做的時候思路一直放在read 和 write上面,各種嘗試沒有成功,後來發現,其實檢測的是這個文件的名稱是否是token,雖然這個文件我們不能復制和改名,但是可以用軟連接啊。。。
所以:
相當於拿到flag04這個帳號的密碼了,進去就直接getflag,成功
Exploit-Exercises nebule 旅行日誌(五)