2016-08-05 23 views
-3

科學。當輸入有附加擴展時利用fopen

說我有下面的代碼:

<?php 
$filename = $_GET['filename'] . '.csv'; 
$handle = @fopen($filename); 

我們知道,空字節漏洞早已不復存在,但有可能得到解決的.csv上述追加,爲了讀取一個文件另一個擴展?非常有創造力的靈魂存在。

正在讀取遠程文件,文件名= http://example.com/some.csv(.csv自動附加)。

+0

以何種方式利用漏洞?你對這個文件/句柄做了什麼? – Eiko

+1

不知道,會不會'example.pdf?ommit.csv'工作? –

+0

啊,我應該補充一點。處理程序將文件讀​​取爲CSV文件,但即使文件不是實際的CSV(逗號或分號),該過程也可能會吐出信息。 – Michael

回答

1

如果查詢http://example.com/some.pdf?csvfopen會盡量收集pdf文件...

而是使用正則表達式來驗證$_GET(你應該總是驗證您輸入):

/(\.csv)$/g會幫助你驗證擴展名是否爲.csv

+0

好點,這絕對是避開它的一種方法。 – Michael