在web功能设计中,很多时候我们会要将访问的文件定义为变量,从而让前端的功能变的更加灵活,如果后台没有对前端传进来的值进行严格的安全考虑,则攻击者可能通过"…/"这样的手段让后台执行一些其他的文件。从而导致后台服务器上其他目录的文件结果被遍历出来,形成目录遍历漏洞
代码分析
pathc可控 传入scandir函数在进行输出,会造成目录遍历漏洞
?php
d
i
r
p
a
t
h
=
dir_path=
dirpath=_REQUEST[‘path’];
f
i
l
e
n
a
m
e
=
s
c
a
n
d
i
r
(
filename=scandir(
filename=scandir(dir_path);
var_dump($filename);
?>
遍历当前目录
192.168.1.8/06/test.php?path=./
上一级目录
192.168.1.8/06/test.php?path=…/…/
遍历根目录下的/var文件
192.168.1.8/06/test.php?path=/var
如果中间件设置不当也会造成目录遍历漏洞,这里如果只访问到dir下会把整个目录结构显示出来,如果由数据库备份文件可以下载下来