1、观察提示,是否为系统文件,如win.ini在windows系统的c:/windows/win.ini中,boot.ini在windows系统的c:/boot.ini中
linux里有:/etc/shadow /etc/passwd
2、带入文件,如果有后缀被自动加上,如果报错,尝试加入%00进行截断,如果报错,尝试加入绝对路径,比如c:/windows/win.ini%00,如果报错,尝试使用…达到256个字符进行截断,尝试加入…/,可以多加几个,因为在有的包含中代码中会加上一个路径前缀,所以我们必须通过…/来规避这个前缀,一般3-5个左右,一般就是%00截断、…256字符截断、绝对路径、相对路径等挨个尝试;
注意:
在Windows系统下,某些PHP版本的文件系统模块对于文件名后面所跟的“.”或者“./”或者“\”或者“/”或者“.”都会自动过滤而正常读写文件,或者通过增加%00进行截断,如Filename%00.php:
Filename///…(252个/)…/.php
Filename…(252个)….php
Filename./././…(126个./)…./.php
Filename…(126个)……php
Filename……(252个.)…………php
在Linux系统下,某些PHP版本的文件系统模块对于文件名后面所跟的“/.”或者“/”都会自动过滤而正常读写文件。据此可构造恶意的文件路径,又因为Linux下文件路径最大长度为4096,因此只需构造如下字符串即可路径截断:
Filename///…(4090个/)…/.php
Filename/././…(2045个/.)…/…php
3、apache的日志包含,