任意文件下載

任意文件下載漏洞的成因:

一些網(wǎng)站的業(yè)務(wù)需求,提供的有文件下載的功能,這個時候考慮到代碼的靈活性開發(fā)者會單獨(dú)寫一個實(shí)現(xiàn)文件下載功能的文件,只需要傳入一個文件名如果服務(wù)器存在該文件就可以下載。但是如果沒有對傳入的這個文件名做限制,用戶可以控制這個文件名,那么就有可能會下載站點(diǎn)上的源碼文件,配置文件等等,這個時候就形成了任意文件下載漏洞。

兩種文件下載的方式

11. 直接下載:<a href= “xxxx.rar”> 下載</a>

比較安全

2. 文件名變量

<?php

$filename = $_GET[‘filename’];


header(‘Content-Length: ’.filesize($filename));

header(‘Content-Disposition: attachment; filename=’?.$filename);


//Content-Disposition: attachment是告訴瀏覽器文件是可以當(dāng)做附件被下載,下載后的文件名是file_name該變量的值。


readfile($filename);

?>

在鏈接后綴修改可以下載不同的文件。使用../跳出當(dāng)前的目錄。

任意文件下載漏洞的危害

可以下載服務(wù)器任意的文件,如腳本代碼,服務(wù)以及系統(tǒng)配置文件等等??梢韵螺d網(wǎng)站資源代碼進(jìn)行白盒審計,發(fā)現(xiàn)其他web漏洞,如SQL注入,文件包含,xss等等。


任意文件下載漏洞防御

禁止使用文件名的方式訪問網(wǎng)站目錄的文件

php.ini中配置open_basedir訪問的文件名必須限制在規(guī)定的目錄內(nèi),禁止越權(quán)使用別的目錄。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容