115,【7】 攻防世界 web fileinclude

进入靶场

试着访问了几个文件,都没得到信息,f12看看源码

 

 

还真有

<?php
// 检查是否开启了错误显示功能
// ini_get 函数用于获取 PHP 配置选项的值,这里检查 'display_errors' 选项是否开启
if( !ini_get('display_errors') ) {
    // 如果错误显示功能未开启,则使用 ini_set 函数将其开启
    // 'On' 表示开启错误显示,这样在代码执行过程中出现的错误会直接显示出来,方便调试
    ini_set('display_errors', 'On');
}

// 设置错误报告级别为 E_ALL
// E_ALL 表示报告所有的错误和警告信息,这样可以捕获到代码中可能存在的各种问题
error_reporting(E_ALL);

// 从客户端的 Cookie 中获取名为 'language' 的值,并赋值给变量 $lan
$lan = $_COOKIE['language'];

// 检查 $lan 是否为空
if(!$lan)
{
    // 如果 $lan 为空,说明客户端没有设置 'language' 这个 Cookie
    // 使用 setcookie 函数设置一个名为 'language' 的 Cookie,值为 'english'
    // @ 符号用于抑制可能出现的错误信息
    @setcookie("language","english");
    // 包含并执行当前目录下的 'english.php' 文件
    // 这样可以加载英文语言相关的内容或逻辑
    @include("english.php");
}
else
{
    // 如果 $lan 不为空,说明客户端已经设置了 'language' 这个 Cookie
    // 动态包含并执行以 $lan 的值加上 '.php' 扩展名的文件
    // 例如,如果 $lan 的值为 'chinese',则会包含 'chinese.php' 文件
    @include($lan.".php");
}

// 使用 file_get_contents 函数读取当前目录下 'index.php' 文件的内容,并赋值给变量 $x
// 该函数会将文件的内容作为一个字符串返回
$x = file_get_contents('index.php');

// 输出变量 $x 的值,即 'index.php' 文件的内容
echo $x;
?>

       得知传参的名字为language,而且是在cookie处传,还会在传的值后面直接加上.php

再加上题目名称暗示了文件上传

传个最常见的上去,而且只写文件名就行

php://filter/read=convert.base64-encode/resource=flag

f12修改cookie并传参

顺利得到base64编码后的flag

解码

 

flag到手

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值