【Basic】BUU LFI COURSE

文章目录

  • 前言
  • 一、BUU LFI COURSE
  • 二、知识点
    • PHP的危险函数
    • 路径遍历攻击
  • 解题感悟


前言

话不多说直接看题


一、BUU LFI COURSE

请添加图片描述
emmm什么提示也没给啊,那只能点开看一看线索了

请添加图片描述
okok咱们先分析一下这段php代码
请添加图片描述

<?php
/*** Created by PhpStorm.* User: jinzhao* Date: 2019/7/9* Time: 7:07 AM*/highlight_file(__FILE__);if(isset($_GET['file'])) {$str = $_GET['file'];include $_GET['file'];
}
?>

highlight_file(FILE):
这行代码会输出当前文件的内容,并进行语法高亮。(这不是重点下面才是)

if(isset($_GET[‘file’])) { … }:
判断这段代码检查是否存在名为 file 的GET参数。如果存在,则将其值赋给变量 $str,并且通过 include 函数包含该文件。

说人话就是检测你这个链接是不是包含file,如果包含file就会把file的值传给str并且执行。
那是不是意味着我们可以通过修改file的值来为所欲为了~好!试一试。

先简单传个1康一康

/?file=1

请添加图片描述
ok现在已经知道大概路径了,咱们开始找flag

/?file=../flag

请添加图片描述
www目录下没有找到flag,继续

/?file=../../flag

请添加图片描述
var目录下也没有找到flag,再来

/?file=../../../flag

请添加图片描述
旺德发…原来在根目录下…那我为什么不直接从/flag开始试!这个故事告诉我们先找根目录…

请添加图片描述
小小flag,拿下!

二、知识点

PHP的危险函数

include
require
include_once
require_once
eval(执行字符串中的PHP代码)
system(执行系统命令)
exec(执行系统命令)
passthru(执行系统命令并输出结果)
shell_exec(执行系统命令并返回输出)

本题中的危险函数是include。前四个危险函数是重点,要有敏感度。

路径遍历攻击

../ 是一个相对路径符号,用于指代当前目录的上一级目录。
例:如果当前目录是 /var/www/html,那么 
../ 就表示 /var/www。../flag 表示打开上一级目录的flag文件

解题感悟

这道题提示其实也挺明显的,通过代码分析锁定include危险函数就直接相当于告诉你flag的位置,所以只需要在他的路径下找一找就好了。

补充:
对了有的新手朋友可能会问URL中/?file=../../../flag 中?的作用是什么。在URL中? 用于分隔URL的路径部分和查询字符串部分,而且查询字符串部分需要紧跟在 ? 之后,由一个或多个键值对组成,每个键值对用 = 分隔,多个键值对之间用 & 分隔。

那么又有朋友问了每个键值对用 = 分隔是什么意思呢?就拿本题举例子 file就是键 /flag就是值,中间要用=分隔,说人话就是把一个值传给键,把/flag传给file。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/839117.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

哪类漏洞容易被攻破

这个取决于多种因素&#xff0c;包括漏洞的严重程度、攻击者的技术能力和资源、目标系统的安全配置等。然而&#xff0c;一些常见的漏洞类型由于其普遍性和严重性&#xff0c;往往更容易被攻破。 例如&#xff0c;跨站脚本&#xff08;XSS&#xff09;漏洞是一种非常常见的安全…

怎么安装django特定版本

要安装Django的特定版本&#xff0c;你可以使用Python的包管理工具pip。以下是在命令行中安装Django特定版本的步骤&#xff1a; 确保你的计算机上已经安装了Python和pip。如果没有安装&#xff0c;你可以从Python官方网站下载并安装最新版本的Python&#xff0c;pip通常会随Py…

【HCIP学习】RSTP和MSTP

一、RSTP&#xff08;Rapid Spanning Tree Protocol&#xff0c;快速生成树&#xff09; 1、背景&#xff1a;RSTP从STP发展而来&#xff0c;具备STP的所有功能&#xff0c;可以兼容stp运行 2、RSTP与STP不同点 &#xff08;1&#xff09;减少端口状态 STP:disabled\blockin…

线程的概念和控制

文章目录 线程概念线程的优点线程的缺点线程异常线程用途理解虚拟地址 线程控制线程的创建线程终止线程等待线程分离封装线程库 线程概念 什么是线程&#xff1f; 在一个程序里的一个执行路线就叫做线程&#xff08;thread&#xff09;。更准确的定义是&#xff1a;线程是“一…

2024中青杯数学建模C题:“X 疾病”在人群中的传播代码论文思路分析

2024中青杯数学建模C题论文和代码已完成&#xff0c;代码为C题全部问题的代码&#xff0c;论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求解&#xff08;问题1模型的建立和求解、问题2模型的建立和求解、问题3模型的建立和求解&#xff09;、模型的评价…

c++ queue容器

在C标准库中&#xff0c;std::queue 是一个容器适配器&#xff0c;它提供了队列&#xff08;FIFO - First In First Out&#xff09;的数据结构。队列是一种特殊的线性数据结构&#xff0c;只允许在表的前端&#xff08;front&#xff09;进行删除操作&#xff0c;而在表的后端…

nssctf(Web刷题)

[SWPUCTF 2021 新生赛]gift_F12 打开题目是一个时间页面&#xff0c;不过看了一会儿发现没有什么用 直接F12打开网页源代码 CtrlF搜索flag 找到了flag NSSCTF{We1c0me_t0_WLLMCTF_Th1s_1s_th3_G1ft} [第五空间 2021]签到题 NSSCTF{welcometo5space} [SWPUCTF 2021 新生赛…

钉钉算是在线办公系统的设计标杆,尽管它依然很难用

不吹不黑&#xff0c;钉钉界面谁的的确简洁&#xff0c;无奈它面向的是场景复杂的办公领域&#xff0c;导致其越来越臃肿难用&#xff0c;反正我是该研究研究&#xff0c;但绝对不会用的。 举报 评论 1

Invoking “make cmake_check_build_system“ failed

前言&#xff1a; 在看过站内其他的方法且试过之后没奏效之后&#xff0c;偶然&#xff0c;无意间&#xff0c;随手整对了&#xff0c;然后后续在老赵的文档也找到了原因&#xff0c;对的上号&#xff0c;那在此我提出一种新的方法&#xff0c;且很简单的小tips。首先先来看看…

如何用电脑批量操作多部手机

如果你有很多手机&#xff0c;然后需要在这些手机上同时执行相同的操作&#xff0c;这个时候如果能有一种办法批量操作&#xff0c;将会大大提高效率&#xff0c;节省很多时间。本文将介绍基于uiautomator2实现的群控手机方案。 uiautomator2 是 一种 Android 自动化测试框架&…

数据挖掘与机器学习——机器学习概述

一、什么是机器学习 机器学习的英文名称叫Machine Learning&#xff0c;简称ML&#xff0c;该领域主要研究的是如何使计算机能够模拟人类的学习行为从而获得新的知识。 机器学习与数据挖掘的联系&#xff1a;简单来说&#xff0c;机器学习就是让计算机从大量 的数据中学习到相关…

yaml文件格式详解 及 k8s实战演示

目录 一 k8s 支持的语言格式 1&#xff0c;YAML 语法格式 2&#xff0c;查看 api 资源版本标签 二 k8s 运行nginx pod实例 yaml文件 具体讲解 1&#xff0c;写一个yaml文件demo 2&#xff0c;deployment 管理nginx 的yaml 文件 3&#xff0c;创建资源对象 4&#…

【四、性能测试】Linux stress 压力模拟测试工具

在做 CPU 问题解析之前&#xff0c;需要先了解一下压力模拟工具&#xff0c;可以将 CPU、MEM、IO 等进行压力模拟&#xff0c;可以在模拟压力的过程中进行问题解析 一、STRESS 模拟对CPU、Memory、IO、磁盘进行压力测试。可以使用 stress 工具&#xff0c;它是专门针对 linux…

mysql 多表关联查询性能优化-同一sql不同的执行计划

一、问题背景 相同的sql&#xff0c;不同的日期&#xff0c;执行的时间差异很大&#xff0c;执行计划不一样。执行快时&#xff0c;30ms左右。执行慢时&#xff0c;15s左右。 二、分析结论 1、经过分析&#xff0c;发现不同日期下&#xff0c;sql的执行计划不同&#xff0c;驱…

基于springboot+vue的学生考勤管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

实现mysql的主从复制、实现MySQL的读写分离与负载均衡

实验环境 &#xff08;注明&#xff09;以下的所有关于yum和rpm以及tar的软件需要自己准备&#xff0c;没有的话可以私信博主 实验目标&#xff1a; 1.实现mysql主从复制 2.实现mysql读写分离与负载均衡 实验一、搭建mysql主从复制 1.建立时间同步环境&#xff0c;在主节…

C++BuilderXE 如何让listView按文件名数字排序而非字母排序

int m_nDataColSort0; bool IsAsctrue; void __fastcall TForm1::RzListView4Compare(TObject *Sender, TListItem *Item1, TListItem *Item2, int Data, int &Compare) { if(m_nDataColSort0) { //按列表第二列排序 //CompareCompareText(Item1->SubItems-…

【MySQL精通之路】全文搜索-自然语言全文搜索

1.使用方法 默认情况下&#xff0c;或者使用IN NATURAL LANGUAGE MODE修饰符&#xff0c;MATCH&#xff08;&#xff09;函数对文本集合的字符串执行自然语言搜索。 1.1 集合 集合是FULLTEXT索引中包含的一个或多个列的集合。 1.2 搜索字符串 搜索字符串作为AGINST&#x…

高效定时器设计方案——层级时间轮

层级时间轮实现高性能定时器 此篇介绍时间轮&#xff0c;它的时间复杂度是最优的&#xff0c;插入、查找&#xff08;最小&#xff09;、删除都是O&#xff08;1&#xff09;&#xff0c;很恐怖的性能 这里示例一个三层时间轮&#xff0c;模拟时钟表盘的运作方式&#xff0c;…

力扣爆刷第142天之二叉树五连刷(构造树、搜索树)

力扣爆刷第142天之二叉树五连刷&#xff08;构造树、搜索树&#xff09; 文章目录 力扣爆刷第142天之二叉树五连刷&#xff08;构造树、搜索树&#xff09;一、106. 从中序与后序遍历序列构造二叉树二、654. 最大二叉树三、617. 合并二叉树四、700. 二叉搜索树中的搜索五、98. …