小白从0学习ctf(web安全)

news2024/11/25 18:25:13

文章目录

  • 前言
  • 一、baby lfi(bugku-CTF)
    • 1、简介
    • 2、解题思路
      • 1、解题前置知识点
      • 2、漏洞利用
  • 二、baby lfi 2(bugku-CTF)
    • 1.解题思路
      • 1、漏洞利用
  • 三、lfi(bugku CTF)
    • 1、解题思路
      • 1、漏洞利用
  • 总结


前言

此文章是小白为了学习ctf所写的,此文章将会采用刷题的形式来记录ctf的解题思路,禁止用此技术进行非法攻击。

一、baby lfi(bugku-CTF)

1、简介

此关卡是在bugkuCTF平台写的https://ctf.bugku.com/

在这里插入图片描述

2、解题思路

1、解题前置知识点

首先看到此题目的名字lfi就知道是考察web安全中的文件包含漏洞的知识点了。lfi是本地文件包含漏洞检测。
漏洞简介
在web应用程序中,程序员为了减少代码的冗余,为了方便代码实现的逻辑性,常常会将文件进行包含。比如开发人员要频繁使用某一个函数,但是又不想在每一个文件都再重新编写一遍,这时就可以将重复使用的函数写在一个文件中,当某一个文件需要使用这些函数时直接包含写好的函数的文件就行了。最常见的php文件包含的是include函数。如果开发人员没有过滤文件包含的参数,攻击者可以包含任意文件达到读取敏感信息等等

2、漏洞利用

打开关卡页面发现有提示
在这里插入图片描述
翻译后如下
在这里插入图片描述
从提示可以看到我们可以包含/etc/passwd这个文件,这个文件可能有我们想要的flag。那么文件包含漏洞产生的重要条件之一是要有可控参数,刚好提示说使用language参数。那么我们猜想传参参数可能是language了。
最后思路知道了我们就可以尝试了。
我们在url地址加上参数language然后传参/etc/passwd就行了。
具体如下

http://82.157.146.43:10873/?language=/etc/passwd

最后得到flag
在这里插入图片描述

shellmates{10CA1_F11e_1Nc1US10n_m4y_r3ve4l_in7Er3st1nG_iNf0Rm4t1on}

二、baby lfi 2(bugku-CTF)

有了第一题的思路我们顺势做一个2.0版本的本地文件包含漏洞。

1.解题思路

1、漏洞利用

打开关卡页面如图所示
在这里插入图片描述
关卡提示到有一个languages的目录,但不会告诉我们这目录有什么。
那么此关卡肯定与languages目录有关了。我们的目的就是包含到/etc/passwd文件。这里我们尝试直接包含发现并不行。页面显示路径非法。
在这里插入图片描述
或者尝试这样
在这里插入图片描述

也是显示路径非法。我们想是不是得先访问languages目录再访问/etc/passwd目录呢,不然languages目录给的提示就用不上了是吧?
所以我们再尝试包含==./languages/etc/passwd==
在这里插入图片描述
发现页面不是显示路径非法,那么有戏。这个时候因为我们不知道languages目录距离根目录多远,所以就一个个试就行,本质是先访问languages目录然后再返回根目录去访问/etc/passwd文件,最后发现得返回五个上级才回到根目录,最后我们成功得到flag
在这里插入图片描述

shellmates{yOU_M4De_yOUr_waY_7hRough_iT} 

三、lfi(bugku CTF)

这一关是第三关,我们一起看看吧。、

1、解题思路

1、漏洞利用

进入页面发现提示是给了我们一部分页面源代码,str_replace('../', '',$_GET['language']) ;

在这里插入图片描述
有php基础的就知道这个是一个过滤关键字的函数,没有见过的也不要慌张,我们搜一搜就知道了。
在这里插入图片描述
本题过滤就是将用户传参的language参数的关键字…/替换为空了
因为这里只过滤了一次,我们可以双写绕过。比如…//过滤后变为…/
构造路径为…//…//…//…//etc/passwd
最后得出flag
在这里插入图片描述

总结

此文章是小白为了学习ctf所写的,感谢大家支持。

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

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

相关文章

【Redis】Redis 生产问题。如何确保缓存和数据库数据的一致性? 常见的缓存更新策略?

目录 缓存穿透 缓存穿透解决办法 缓存击穿 击穿解决办法? 缓存穿透和缓存击穿的区别? 缓存雪崩 雪崩解决办法? 如何确保缓存和数据库数据的一致性? 常见的缓存更新策略? 缓存穿透 定义:缓存穿透说…

npm mongoose包下载冲突解决之道

我在新电脑下载完项目代码后,运行 npm install --registryhttps://registry.npm.taobao.org 1运行就报错: npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: lowcode-form-backend1.0.0 npm …

rabbitMQ的基础操作与可视化界面

当你安装好RabbitMq时,可以 尝试一下,这些命令 启动rabbitMQ服务 #启动服务 systemctl start rabbitmq-server #查看服务状态 systemctl status rabbitmq-server #停止服务 systemctl stop rabbitmq-server #开机启动服务 systemctl enable rabbitmq-…

代码随想录——移动零(Leetcode283)

题目链接 使用快慢指针思想 class Solution {public void moveZeroes(int[] nums) {int slow 0;for(int fast 0; fast < nums.length; fast){if(nums[fast] ! 0){nums[slow] nums[fast];}}while(slow < nums.length){nums[slow] 0;}} }

Linux-3 yum和vim

目录 本节目标&#xff1a; Linux 软件包管理器 yum 什么是软件包 1.yum是什么&#xff1f;软件包&#xff1f; 2.Linux(centos)的生态 3.yum的相关操作 我怎么知道我应该安装什么软件&#xff1f; 4.yum的本地配置 关于 rzsz 查看软件包 Linux编辑器-vim使用 1.v…

Git合并利器:Vimdiff使用指南

使用 vimdiff 作为 Git 的合并工具确实可能会让新手感到困惑&#xff0c;但它是一个功能强大的工具&#xff0c;一旦掌握了它&#xff0c;就可以非常高效地进行代码合并和比较。以下是一个简短的教程&#xff0c;旨在帮助理解 vimdiff 的基本用法以及如何利用它来进行 Git 合并…

Adaboost集成学习 | Matlab实现基于BiLSTM-Adaboost双向长短期记忆神经网络结合Adaboost集成学习时间序列预测(股票价格预测)

目录 效果一览基本介绍模型设计程序设计参考资料效果一览 基本介绍 Matlab实现基于BiLSTM-Adaboost双向长短期记忆神经网络结合Adaboost集成学习时间序列预测(股票价格预测) 模型设计 股票价格预测是一个具有挑战性的时间序列预测问题,可以使用深度学习模型如双向长短期记忆…

嵌入式硬件中常见的面试问题与实现

1 01 请列举您知道的电阻、电容、电感品牌(最好包括国内、国外品牌) ▶电阻 美国:AVX、VISHAY威世 日本:KOA兴亚、Kyocera京瓷、muRata村田、Panasonic松下、ROHM罗姆、susumu、TDK 台湾:LIZ丽智、PHYCOM飞元、RALEC旺诠、ROYALOHM厚生、SUPEROHM美隆、TA-I大毅、TMT…

HarmonyOS 应用开发之FA模型与Stage模型应用组件

应用配置文件概述&#xff08;FA模型&#xff09; 每个应用项目必须在项目的代码目录下加入配置文件&#xff0c;这些配置文件会向编译工具、操作系统和应用市场提供描述应用的基本信息。 应用配置文件需申明以下内容&#xff1a; 应用的软件Bundle名称&#xff0c;应用的开发…

OpenHarmony实战:烧录Hi3516DV300开发板

前言 烧录开发板是每个开发者的必修课&#xff0c;每次对系统的修改务必进行烧录测试&#xff0c;确保修改正确和不会引入新问题。 本文基于 Windows10&#xff0c;以 Hi3516DV300 开发板为例&#xff0c;指导如何烧录 OpenHarmony 镜像&#xff0c;镜像也叫固件。 这块开发…

MySQL InnoDB 之 多版本并发控制(MVCC)

多版本并发控制&#xff08;MVCC&#xff0c;Multi-Version Concurrency Control&#xff09;是数据库管理系统中用于提供高并发性和在事务处理中实现隔离级别的一种技术。MVCC 允许系统在不完全锁定数据库资源的情况下&#xff0c;处理多个并发事务&#xff0c;从而提高了数据…

AcWing-木棍

167. 木棒 - AcWing题库 所需知识&#xff1a;dfs&#xff0c;剪枝 思路&#xff1a;首先&#xff0c;将木棍的长度从所有小木棍的最大值开始遍历&#xff0c;遇到的第一个能使所有的小木棍组合成长度相等的大木棍时&#xff0c;则为最优答案&#xff0c;如果想暴力做的话&am…

vscode初始化node项目

首先需要安装node环境&#xff0c;推荐直接使用nvm 安装node&#xff0c;方便切换node版本 1.npm init 初始化node项目 在命令行输入npm init指令 根据指令创建完成后会在当前目录下生成一个package.json文件&#xff0c;记住运行npm init执行的目录必须是一个空目录 2.创建…

YOLOv9改进策略 :主干优化 | ConvNeXtV2:适应自监督学习,让 CNN “再一次强大”?

💡💡💡本文改进内容:完全卷积掩码自编码器框架 ConvNeXt V2,它显著提高了纯convnet在各种识别基准上的性能,包括ImageNet分类,COCO目标检测和ADE20k分割。还提供了各种尺寸的预训练ConvNeXt v2模型,从而在ImageNet上具有76.7%精度的3.7M Atto model和88.9%精度的650…

PID算法控制5840-31ZY编码器直流减速电机旋转特定角度(一)

模块分析 在本工程中&#xff0c;使用stm32做主控芯片输出PWM波&#xff0c;TB6112做电源驱动带动5840-31ZY编码器直流减速电机旋转特定角度 有如下模块 TB6112驱动模块 TB6112是性能优于常见L298N的一款电机驱动芯片&#xff0c;体积更小效率更高发热少 其接线如图&#x…

手机真机连接USB调试adb不识别不显示和TCPIP连接问题

手机真机连接USB调试adb devices不显示设备和TCPIP连接 本文手机型号为NOVA 7 &#xff0c;其他型号手机在开发人员模式打开等方式可能略有不同&#xff0c;需根据自己的手机型号修改。 文章目录 1. 打开和关闭开发者模式2. 真机USB连接调试adb不显示设备问题的若干解决方法3…

K8S中部署yaml文件(如Java项目)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

容器安全与防御(德迅蜂巢)

通过容器可以快速的运行应用、迁移应用、快速集成、快速部署、也提高了系统的资源利用率&#xff0c;因此现在越来越多的企业把应用上云&#xff0c;来达到快速上线应用、方便运维的目的。容器安全也逐渐地被重视起来&#xff0c;了解容器如何检测当前企业环境内容器环境是否安…

web练习仿小米页面

效果图&#xff1a; HTML代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document…

绿联 安装PDF工具

这是一个强大的本地托管的基于 Web 的 PDF 操作工具&#xff0c;使用 docker&#xff0c;允许您对 PDF 文件执行各种操作&#xff0c;例如拆分、合并、转换、重组、添加图像、旋转、压缩等。这个本地托管的 Web 应用程序最初是 100% ChatGPT 制作的应用程序&#xff0c;现已发展…