Web Generic vulnerabilities File contains

admin 2022年9月23日14:04:21评论56 views字数 2150阅读7分10秒阅读模式

Web Generic vulnerabilities File contains

免责声明

本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.

文件包含漏洞

文件包含,是一个功能。在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件。

比如 在 PHP 中,提供了:

include()

include_once()

require()

require_once()

这些文件包含函数,这些函数在代码设计中被经常使用到。

大多数情况下,文件包含函数中包含的代码文件是固定的,因此也不会出现安全问题。

但是,有些时候,文件包含的代码文件被写成了一个变量,且这个变量可以由前端用户传进来,这种情况下,如果没有做足够的安全考虑,则可能会引发文件包含漏洞。

攻击着会指定一个“意想不到”的文件让包含函数去执行,从而造成恶意操作。 根据不同的配置环境,文件包含漏洞分为如下两种情况:

  1. 本地文件包含漏洞:仅能够对服务器本地的文件进行包含,由于服务器上的文件并不是攻击者所能够控制的,因此该情况下,攻击着更多的会包含一些固定的系统配置文件,从而读取系统敏感信息。很多时候本地文件包含漏洞会结合一些特殊的文件上传漏洞,从而形成更大的威力。
  2. 远程文件包含漏洞:能够通过 url 地址对远程的文件进行包含,这意味着攻击者可以传入任意的代码,这种情况没啥好说的,准备挂彩

因此,在 web 应用系统的功能设计上尽量不要让前端用户直接传变量给包含函数,如果非要这么做,也一定要做严格的白名单策略进行过滤。

「相关文章」

  • LFI、RFI、PHP 封装协议安全问题学习 - 骑着蜗牛逛世界
  • php 文件包含漏洞 | Chybeta
  • 文件包含漏洞
  • 文件包含漏洞(绕过姿势)
  • 文件包含漏洞原理分析
  • 文件包含漏洞总结 | 瓦都剋
  • 本地文件包含漏洞利用技巧
  • Directory Traversal, File Inclusion, and The Proc File System
  • Exploiting PHP File Inclusion - Overview | Reiners' Weblog
  • Local File Inclusion with Magic_quotes_gpc enabled - NotSoSecure
  • Positive Technologies - learn and secure : Another alternative for NULL byte
  • 远程包含和本地包含漏洞的原理 - Kevins 的天空
  • 聊聊安全测试中如何快速搞定Webshell

「相关案例」

  • IKEA官网本地文件包含(LFI)漏洞分析

「几种利用方法」

  • 常规利用

Payload: http://www.test.com/test.php?file=upload/hourse.jpg&x=phpinfo()

  • 文件协议读取

其前提是得知道网站应用的绝对路径(物理路径):

Payload: http://www.test.com/test.php?file=file://D:/Server/htdocs/test/upload/hourse.jpg&x=phpinfo()

结果和上面一样,只是地址栏链接不一样.

  • 压缩包文件读取

依然需要知道压缩包文件的绝对路径

Payload: http://www.test.com/test.php?file=zip://D:/Server/htdocs/test/upload/shell.zip%23shell.php&x=phpinfo())

  • phar:// 相对路径运行 PHP 文件

当我们想要运行自己的 PHP 文件,该咋做呐?通过文件包含(include,require 这类函数),首先构造一个这样的文件,将 webshell.php 添加到压缩文件 .zip,然后将压缩包后缀名改为 .jpg 反正合法的文件后缀即可(一般的操作是这样的,当只能上传图片的时候),最后使用 phar:// 按照相对路径读取并执行文件.

Payload:http://www.test.php?file=phar://upload/shell.jpg/shell.php?x=phpinfo()

  • 读取源码

当我们没法儿上传文件,但是又想读取文件的源码来寻找别的漏洞从而进一步利用该怎么做呐?同样的利用 php://filter/ 协议可以实现,要注意的是,因为编码问题,一般我们会将读取的文件先 Base64 编码一下输出:

Payload:http://www.test.com/test.php?file=php://filter/read=convert.base64-encode/resource=upload/shell.php

日志中毒攻击

log poisoning

「相关文章」

  • RCE with LFI and SSH Log Poisoning
  • Apache Log Poisoning through LFI
  • From Local File Inclusion to Remote Code Execution - Part 1 | Outpost 24 blog
  • SMTP Log Poisioning through LFI to Remote Code Execution


原文始发于微信公众号(猫因的安全):Web Generic vulnerabilities File contains

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年9月23日14:04:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Web Generic vulnerabilities File containshttp://cn-sec.com/archives/1312309.html

发表评论

匿名网友 填写信息