文件包含漏洞利用和防御
文件包含漏洞
使用函数包含指定文件的代码,没对函数的参数进行过滤,可被用户控制包含恶意文件并执行代码
- 漏洞分类 本地文件包含:目录遍历、任意文件读取、包含日志文件getshell、图片马getshell、伪协议读取文件/命令执行、包含phpinfo上传的临时文件 远程文件包含:远程木马getshell(需要allow_url_fopen和allow_url_include都是on)
- 漏洞挖掘 URL参数名出现了page、file、filename、include等关键字;URL参数值出现了文件名,如xx.php、xx.html等
- 漏洞利用 发现漏洞->上传shell或读取敏感文件(FUZZ)->执行恶意代码
- 漏洞修复 PHP配置中的allow_url_fopen和allow_url_include改为off 禁用动态包含 过滤协议、目录字符 设置包含文件白名单
PHP相关函数
函数作用include包含并运行文件include_once只包含并运行文件一次,不重复包含require包含并运行文件,出错时终止运行require_once只包含并运行文件一次,出错时终止运行fopen打开文件或URLreadfile读取文件并写入输出缓冲highlight_file语法高亮一个文件show_source语法高亮一个文件file_get_contents把整个文件读入一个字符串file把文件读入一个数组中
PHP伪协议
协议作用file://访问本地文件系统http://访问HTTP(s)网址ftp://访问FTP(s) URLsphp://访问各个输入/输出流zlib://压缩流data://数据流glob://查找匹配的文件路径模式phar://PHP归档ssh2://secure shell 2rar://RARogg://音频流expect://处理交互式的流
版权归原作者 c1o22 所有, 如有侵权,请联系我们删除。