攻防世界-fileinclude

题目信息

分析过程

题目说flag在flag.php中,通过ctrl+uc查看源码,考虑文件上传漏洞。源码如下图所示:
源码如下:

复制代码
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>

<br />
<b>Notice</b>:  Undefined index: language in <b>/var/www/html/index.php</b> on line <b>9</b><br />
Please choose the language you want : English or Chinese
<h1>Hi,EveryOne,The flag is in flag.php</h1><html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>

<?php
if( !ini_get('display_errors') ) {
  ini_set('display_errors', 'On');
  }
error_reporting(E_ALL);
$lan = $_COOKIE['language'];  //lan的值是cookies中key为language的值(因此要给lan赋值)
if(!$lan) //如果lan的值不为0
{
	@setcookie("language","english");
	@include("english.php"); //则执行english.php
}
else
{
	@include($lan.".php");
}
$x=file_get_contents('index.php');
echo $x;
?>
</html></html>

大意是取cookies中lan的值,如果不是0,则执行cookies中名为english的php

相关知识

  • php://filter

php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。 这对于一体式(all-in-one)的文件函数非常有用,类似 readfile()、 file() 和 file_get_contents(), 在数据流内容读取之前没有机会应用其他过滤器。

php://filter 目标使用以下的参数作为它路径的一部分。 复合过滤链能够在一个路径上指定。详细使用这些参数可以参考具体范例。

解题过程

1、使用burpsite进行抓包,观察到包中不存在cookies,因此考虑进行组装cookies


在此处设置,

Name:language

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

其中:

  • php://filter/read=执行文件读取功能(也就是规定读取的位置)
  • convert.base64-encode执行Base64编码功能
  • /resource=/var/www/html/flag填写flag.php所在的地址,本题在源码的第5行"language in /var/www/html/index.php"
  • 源码第23行的内容(@include($lan.".php"); ),在上传参数时代码会附带后缀.php,所以此处不需要写为 '/var/www/html/flag.php'

2、添加好cookies后,报文如下图所示:

3、组装好后,进行发送,下图为回显

4、对回显结果进行decode,可以看到flag

相关推荐
骥龙4 小时前
5.14、AI安全运维体系:构建企业级的“安全超脑”
运维·人工智能·安全
档案宝档案管理4 小时前
核心功能揭秘——档案管理系统如何破解档案管理难题?
大数据·数据库·安全·档案·档案管理
xuchaoxin13755 小时前
fail2ban@基本概念和配置使用介绍@封锁可疑恶意ip
安全·fail2ban·防爆破
吉普赛的歌5 小时前
【安全】网站如何防范上传导致后门漏洞
安全
jenchoi4136 小时前
【2025-12-01】软件供应链安全日报:最新漏洞预警与投毒预警情报汇总
网络·安全·web安全·网络安全·npm
-曾牛7 小时前
深入解析 XSS 漏洞:原理、分类与攻防实战
前端·安全·web安全·网络安全·渗透测试·xss·原理解析
物流可信数据空间7 小时前
专家解读 | 提升数据流通安全治理能力 促进数据流通开发利用【可信数据空间】
大数据·人工智能·安全
四川合睿达自动化控制工程有限公司7 小时前
水库安全监测系统
安全
Par@ish7 小时前
【局域网协议】为什么我们需要管理DNS?
安全·dns·domain
黑客思维者8 小时前
新能源物联网系统中硬件加密芯片的安全设计与实践
物联网·安全·新能源·国密·硬件加密