【Bugku CTF】web解题记录

记录我在Bugku CTF靶场中做的比赛真题,便于自己以后的复习

1.my-first-sqli

进入此关卡,发现参数有username和password

我们尝试在username上注入数字型、字符型参数,后面发现注入字符型的单引号的有报错语句,我们在username上注入下面内容,判断字段数,发现只有2个字段,我们再用联合注入的方式进行注入(密码随便填)

1' order by 3--+

1' union select 1,2--+

 得到以下flag

shellmates{SQLi_goeS_BrrRrRR} 

 

2.post-the-get 

首先,看到题目和题目中的提示,我们可以猜想本题目的是想通过更改提交方式。

 看到题目中post的方式不能提交,一我们可以通过BP抓包将GET的提交方式修改成POST,二我们可以通过修改网页中的源代码来进行提交。我们就第二种方式进行操作,F12查看网页源代码,我们发现form表单的method方式是GET,我们需要通过修改成POST;POST的value值是disable的,我们将disable去除之后,点击题目中的post即可

修改后如下图所示

 

3.baby lfi 

通过lfi的提示我们可以知道该题目考察的是文件包含漏洞,而且打开题目之后,我们通过include的提示也可以猜到是考察文件包含漏洞,题目还给出了使用language参数的提示,并且提示包含关键文件/etc/passwd

我们就可以构造payload

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

 

4.baby lfi 2

进入此关题目中的lfi依旧考察文件包含漏洞,提示有关键文件/etc/passwd,并且在此文件下有一个目录languages

我们就可以构造payload,这里的./表示的是当前目录的意思,而../是表示进入上一层目录的意思,默认情况下/etc/passwd是处于根目录下的,我们只有使用多的../跳转到根目录,从而获取到flag

http://82.157.146.43:16755/?language=./languages/../../../../etc/passwd

 

 

 5.lfi

依旧如此,本题考查文件包含漏洞,题目提示包含关键文件/etc/passwd,并且出现了一个str_replace的函数

意思是将language参数中出现的../替换为空,此时我们需要尝试进行绕过 

我们尝试用双写进行绕过../ 

http://82.157.146.43:17661/?language=....//....//....//....//....//etc/passwd

 6.nextGen 1

我们打开此关卡,发现没有任何有用的信息,查看网页的源代码,发现滑倒底下有个.js文件,打开它,发现出现以下提示

  1. xhttp.open("POST", '/request'); 这一行代码设置了即将发送的请求的类型和方法。POST是一个HTTP方法,用于向服务器发送数据。'/request'是请求的URL路径,表示请求将被发送到服务器上的/request这个端点。

  2. xhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 这一行设置了HTTP请求的头信息。Content-Type头告诉服务器发送的数据类型。application/x-www-form-urlencoded是表单数据的编码类型,通常用于提交表单数据。这意味着发送的数据将会被编码成URL编码格式,例如key=value&key2=value2

  3. xhttp.send("service=" + this.attributes.link.value); 这一行发送了实际的请求。send方法接受一个参数,这个参数是要发送到服务器的数据。在这个例子中,数据是"service="加上this.attributes.link.value的值。this指的是当前的作用域对象,attributes是该对象的一系列属性,link是其中一个属性的名字,value是这个属性的值。这个值被附加到字符串"service="后面,形成一个键值对"service=value",其中valuelink属性的值。这个键值对就是发送给服务器的数据。

接下来,我们通过BP抓包,构造如下图所示,将GET方式替换成POST,设置request为url请求路径,并设置给定的content-type以及设置service参数,对于设置service参数,使用file协议来获取本地信息。此关为典型的ssrf漏洞,通过利用file协议获取信息

 

7.nextGen 2 

进入此关,前面步骤跟上面题目一致,但是这道题进行了过滤,在service传参时,我们需要过滤

因为上面service的参数只出现了三个点,所以必须要是 xxx://xx.xx.xx/xxxxx 这种格式,常见替代:127.0.0.1 = 127.1 = 127.0.1


service=file://127.0.1/flag.txt

 

 

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

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

相关文章

【服务器08】之【游戏框架】之【加载主角】

首先简单了解一下帧率 FixedUpdate( ) > Update( ) > LateUpdate( ) 首先FixedUpdate的设置值 默认一秒运行50次 虽然默认是0.02秒,但FiexedUpdate并不是真的0.02秒调用一次,因为在脚本的生命周期内,FixedUpdate有一个小循环&…

大学计算机

项目一 了解计算机 1.1 了解计算机的诞生及发展阶段 1.2 认识计算机的特点、应用和分类 1.计算机的特点 1. 计算机的特点 2.计算机的应用 3.计算机的分类 4.数量单位 1.3 了解计算机操作系统的概念、功能与种类 1.操作系统概念 2.操作系统的作用 1&#xff0e…

感应电机转差速度估算

在感应电机矢量控制中,需要计算出感应电机的机械转差速度(同步速度和转子速度之间的差)。以下方程描述了感应电机磁场定向控制 (FOC) 中转差速度值的关系: 如果我们保持转子磁通恒定,并且 d 轴与转子磁通参考系对齐&am…

基于Java医院门诊互联电子病历管理信息系统设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,…

ubuntu 18.04 server源码编译安装freeswitch 1.10.7支持音视频通话、收发短信——筑梦之路

软件版本说明 ubuntu版本18.04:https://releases.ubuntu.com/18.04.6/ubuntu-18.04.6-live-server-amd64.iso freeswitch 版本1.10.7:https://files.freeswitch.org/freeswitch-releases/freeswitch-1.10.7.-release.tar.gz spandsp包:https:…

学习笔记——路由网络基础——路由汇总(路由聚合)

九、路由汇总(路由聚合) 1、路由汇总背景 子网划分、VLSM解决了地址空间浪费的问题,但同时也带了新的问题,路由表中的路由条目数量增加。为减少路由条目数量可以使用路由汇总。 对于一个大规模的网络来说,路由器或其他具备路由功能的设备势…

C#的Switch语句2(case后的值与模式匹配)

文章目录 switch语法结构case具体的值枚举值字符串const关键字 如果没有匹配的值default语句不一定要在最后 模式匹配与C的差异-case穿透(Fall-through)下一篇文章 switch语法结构 基础的语法结构,在上一篇文章已经写了,具体请看…

git 初基本使用-----------笔记

Git命令 下载git 打开Git官网(git-scm.com),根据自己电脑的操作系统选择相应的Git版本,点击“Download”。 基本的git命令使用 可以在项目文件下右击“Git Bash Here” ,也可以命令终端下cd到指定目录执行初始化命令…

6.20作业

1.已知网址www.hqyj.com截取出网址的每一个部分(要求,该网址不能存入文件中) echo www.hqyj.com | cut -d "." -f "1,2,3" 2.整理思维导图 3.将配置桥接网络的过程整理成文档,发csdn

条码工具 Dynamic Web TWAIN HTML5 版本的工作原理

Dynamic Web TWAIN 是一个专为Web应用程序设计的TWAIN扫描识别控件。你只需在TWAIN接口写几行代码,就可以用兼容TWAIN的扫描仪扫描文档或从数码相机/采集卡中获取图像。然后用户可以编辑图像并将图像保存为多种格式,用户可保存图像到远程数据库或者Share…

轻松搞定Python List 列表必备方法大全!

更多Python学习内容:ipengtao.com 在 Python 编程中,list(列表)是一种非常重要且常用的数据结构。列表可以存储不同类型的元素,并且提供了许多方便的内置方法来操作和处理这些元素。本文将详细介绍 Python 中 list 列表…

【笔记】HashMap的头插死循环问题

HashMap头插死循环是指在JDK1.7中,多线程环境下,HashMap进行扩容时由于多个线程一起执行扩容,可能会导致某一结点被错误插入头部并形成一个循环链表。 发生死循环的源码如下: // hashmap由数组链表构成 void transfer(Entry[] ne…

Android 13 修改系统导航默认值

Android 13 原生系统上,设置-系统-手势-系统导航 菜单,可以修改系统导航方式。 手势导航: 三按钮导航: adb 获取当前导航方式,手势导航 是 2 ,三按钮导航是 0 。 settings get secure navigation_mode 修…

电脑网络动态IP配置:步骤详解与实用指南

在构建和管理电脑网络时,IP地址的配置是一个关键步骤。IP地址是设备在网络中的唯一标识符,它决定了设备如何与其他设备进行通信。有两种主要的IP地址类型:静态IP和动态IP。静态IP是手动配置的,而动态IP则是由网络中的DHCP服务器自…

Android C++系列:内存知识整理

1. 控制C的内存分配 在嵌入式系统中使用C的一个常见问题是内存分配,即对new 和 delete 操作符的失控。 具有讽刺意味的是,问题的根源却是C对内存的管理非常的容易而且安全。具体地说,当一个对象被消除时,它的析构函数能够安全的释…

202406最新manjaro安装sogou输入法解决方案(采用aur本地package+sogou deb包解决方案)

本地执行安装方法 1.拉取源码 git clone https://gitee.com/liushuai05/fcitx-sogoupinyin.git cd fcitx-sogoupinyin 2.获取sogou下载地址并替换到源码中 - 下载地址:https://pinyin.sogou.com/linux/ - 点击立即下载->x86_64->下载,然后右键复…

LoRaWAN在嵌入式网络通信中的应用:打造高效远程监控系统(附代码示例)

引言 随着物联网(IoT)技术的发展,远程监控系统在各个领域的应用越来越广泛。LoRaWAN(Long Range Wide Area Network)作为一种低功耗广域网通信协议,因其长距离传输、低功耗和高可靠性等特点,成为…

407串口01发送

实验一: 工程。 链接:https://pan.baidu.com/s/1g8DV4yZWOix0BbcZ08LYDQ?pwd2176 提取码:2176串口1的使用。发送功能。 单片机发送信息到电脑。 通过串口进行通信。 首先单片机这边。 单片机这边,需要对单片机的串口模块进行使…

zctf2016_note2-堆利用-unlink

一、题目 题目:zctf2016_note2 题目描述:二、WriteUp (一)题目环境 glibc版本2.23 通过patchelf进行修改(二)信息收集 $ checksec note2Arch: amd64-64-littleRELRO: Partial RELRO # (.plt.got)段依…

Redis-HyperLogLog数据类型及其常用命令详解

1.Redis概述 2.HyperLogLog数据类型 HyperLogLog(HLL)是一种用于近似计算大数据集合中唯一元素数量(基数)的概率性数据结构。 概率数据结构: HyperLogLog 使用的是一种概率算法,它可以在极少的内存消耗下估…