2016-08-05 7 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