1. 程式人生 > >Exploit-Exercises nebule 旅行日誌(五)

Exploit-Exercises nebule 旅行日誌(五)

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];
  int
fd, 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 旅行日誌(五)