Loading... ##简介: ####目录遍历(directory traversal): 通过修改URL中的参数导致读取到网站根目录以外的目录里的文件。 漏洞根源:服务器路径权限不严格。 ####文件包含(File include): 对服务器对输入限制不严格导致include函数包含了不必要的系统文件。有LFI(本地文件包含漏洞),RFI(远程文件包含漏洞)两种。 <b> </b> 实际上两者利用方式差不多。(以下认为两种漏洞为同一种) ##特征: 可能调用 include 函数的特征信息: ```html ?page=a.php ?home=b.html ?file=*** ``` 类似这种包含了另一个页面的语句可能会包含文件包含漏洞。 (RFI 需要 web server 开启 allow_url_include 这一选项。存在于 php.ini 文件中。) ##利用: ####经典测试方法: ```html ?file=../../../../etc/passwd ``` 这是通过Linux中的一个特殊目录“..”来进行文件包含。这个目录的意思是上一级目录。 ```html ?page=/etc/passwd ``` 这是通过绝对路径来访问。 ```html ?page=file:///etc/passwd //这里必须为绝对路径。 ``` 这是通过文件系统访问路径。 ####其他方法 注入点不仅仅在URL中有,还可能在Cookie中存在。 ##绕过过滤: 一些服务器可能会对用户输入进行过滤。如在不以.php结尾的文件名自动加上.php。这是可以利用一些漏洞来绕过。如: 在PHP5.3之前可以通过在文件名后面加上一个“.”来绕过。 但更多时候是通过编码来绕过。 如通过“%00”来绕过这种限制。PHP在检测到%00后会认为已经输入完了,后面即使有也不读取。 ##随便写写 所有变量都要查看。漏洞不是只在常规的地方出现,它可能在各种意想不到的地方出现。 include函数存在漏洞,但这个漏洞是因为程序员过滤不严格导致的。~~(废话)~~但是做好安全工作的include还是一个很好的东西,可以减少需要的服务器资源等作用。 最后修改:2019 年 07 月 03 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏