CTFer blogs--Web-fileinclude

本题来源攻防世界

解题思路:

首先分析代码,将cookie中‘language’的值传入lan

在后续又使用include调用了lan这个变量,因此可以从此处写入读取flag.php的payload

可以使用burpsuite进行抓包后添加cookie值

name:language

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

得到base64加密后再进行解码即可得到flag

 

 

第二题

fileinlucde

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 = flag.php  使用http://filter伪协议来获取源代码

file2 = hello ctf 想要让函数getcontent返回字符串,可以使用php://input伪协议绕过

因此可以构造如下payload

?file1=php://filter/convert.base64-encode/resource=flag.php&file2=php://input

同时在post中传入 hello ctf=hello ctf

因为post=传参是以键值对的形式进行传输的

之后打开burpsuite进行抓包,抓包后的结果去掉键只保留值 即 hello ctf 发送即可得到base64加密,解密即可得到flag

 

posted @   Heck1ng  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示