從乙個加密程式來看安全漏洞的問題

2021-04-07 00:55:58 字數 1206 閱讀 2615

剛才在網上搜東西,偶然發現下面這個程式,尤其是關於漏洞方面的注釋,很有用,就copy過來,以後有空再仔細研究一下.

verify_passwd.c

注意,這個範例讀取/etc/passwd的資料,不適用於使用shadow或已經使用pam

的系統(例如slackware,redhat及debian在不外加crypt plugin的狀況下,應

當相同)。此範例僅供叄考,做為了解crypt函式運作的情形,真正撰寫程式

時,應該避免類似的寫法。  

#include

#include

#include

typedef struct account;  

/* 注意! 以下的寫法,真實世界的軟體開發狀況下,千萬不要用! */  

int acc_info(char *info,account *user)  

int read_password(char *filename,account *users)  

fclose(fp);  

return n;  

}  void main(int argc,char **argv)  

else strcpy(username,argv[1]); /* 這是超級大安全漏洞 */  

if (argc<3) else strcpy(password,argv[2]); /* 這是超級大安全漏洞 */  

n = read_password("/etc/passwd",acc);  

for (i=0,done=0;i***) invalid;  

new_string = (char*)malloc(len+1);  

strcpy(new_string,incoming_username);  

your_own_operations...  

如此才能避免buffer overflow,萬萬不可濫做假設,切記切記,連許多數十年

經驗豐富的老手都會犯這個錯誤。  

與crypt函式相關者尚有以下三個:

void setkey (const char *key);  

void encrypt (char *block, int edflag);  

void swab (const char *from, char *to, ssize_t n);  

一般來說,除非您有特殊需求,你不會用到這三個。

關於CSDN的乙個安全漏洞

在瀏覽csdn的部落格是,偶然發現csdn的乙個安全漏洞,對於我們來可能沒有什麼攻擊的必要,但是如果不修復,還是有很大的隱患的,下面貼出來看看 如上圖所示,通常在web瀏覽頁面是,遇到不能訪問的頁面或者是目錄,程式應該給予乙個統一的錯誤提示,而且錯誤提示資訊必須要遮蔽所有可能造成攻擊的資訊。以上首先...

關於CSDN的乙個安全漏洞

在瀏覽csdn的部落格是,偶然發現csdn的乙個安全漏洞,對於我們來可能沒有什麼攻擊的必要,但是如果不修復,還是有很大的隱患的,下面貼出來看看 如上圖所示,通常在web瀏覽頁面是,遇到不能訪問的頁面或者是目錄,程式應該給予乙個統一的錯誤提示,而且錯誤提示資訊必須要遮蔽所有可能造成攻擊的資訊。以上首先...

關於CSDN的乙個安全漏洞

在瀏覽csdn的部落格是,偶然發現csdn的乙個安全漏洞,對於我們來可能沒有什麼攻擊的必要,但是如果不修復,還是有很大的隱患的,下面貼出來看看 如上圖所示,通常在web瀏覽頁面是,遇到不能訪問的頁面或者是目錄,程式應該給予乙個統一的錯誤提示,而且錯誤提示資訊必須要遮蔽所有可能造成攻擊的資訊。以上首先...