最近在研究法师的《代码审计》,找了一些web漏洞来研究,今天来研究一下目录遍历漏洞。通过实际的操作,加深对这个漏洞成因的理解。
PHP文件包含漏洞的产生原因是在通过PHP的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入。php的文件包含可以直接执行包含文件的代码,包含的文件格式是不受限制的,只要能正常执行即可。
文件包含函数有:include(),include_once()//在文件包含时即使遇到错误,下面的代码依然会继续执行;require(),require_once()//在文件包含时即使遇到错误,则会直接退出程序。1.本地文件包含(LFI),顾名思义,只能包含本机文件的文件包含漏洞。
测试网页是1.php,源码如下
放在网站根目录下,并且在同目录下phpinfo.php写入代码:?phpphpinfo();?请求