当前位置: 首页 > news >正文

SQL注入 ❤ ~~~ 网络空间安全及计算机领域常见英语单词及短语——网络安全(二)

SQL注入 ❤ + 学网安英语

  • 大白话讲SQL注入
    • SQL注入原理
      • 1. 用恶意拼接查询进行SQL注入攻击
      • 2. 利用注释执行非法命令进行SQL注入攻击
      • 3. 利用传入非法参数进行SQL注入攻击
      • 4. 添加额外条件进行SQL注入攻击
    • 时间和布尔盲注
      • 时间盲注(Time-Based Blind SQL Injection)
      • 布尔盲注(Boolean-Based Blind SQL Injection)
  • 没事儿读着玩儿

大白话讲SQL注入

就比如登录页面,输入用户名admin和密码123456,网页告诉服务器我的用户名和密码,服务器就会去问数据库,有没有这个用户名admin并且密码为123456的用户,服务器收到数据库的回答就回去告诉网页,有这个用户就登录成功,没有就登录失败。SQL注入就是在网页告诉服务器我的查询数据的时候做的手脚,攻击者在输入框中插入一些特殊的代码,以便欺骗数据库执行它不应该执行的操作。

SQL注入原理

1. 用恶意拼接查询进行SQL注入攻击

举个简单例子,用户在搜索框中输入一个关键字来查找用户信息。网站的后台代码可能会类似于以下的SQL查询

SELECT * FROM users WHERE username = '$input';

此时要是攻击者在搜索框中输入

' OR '1'='1

如果在没有适当的过滤和验证的情况下的话,查询语句会变成:

SELECT * FROM users WHERE username = '' OR '1'='1';

由于 ‘1’=‘1’ 总是成立的,仔细看引号,然后又是OR,只要一个为真就是真,这个查询会返回所有用户的信息。

2. 利用注释执行非法命令进行SQL注入攻击

举个简单例子,用户在搜索框中输入一个用户名和密码。网站的后台代码可能会类似于以下的SQL查询

SELECT * FROM users WHERE username = '$input_username' AND password = '$input_password';

攻击者可以在用户名和密码的输入框中输入恶意的注释,利用注释来修改查询语句。比如输入

' OR '1'='1' -- 

在这个输入中,‘–’ 是表示SQL的注释,它会导致后面的查询语句被忽略。因此,查询语句将变为以下

SELECT * FROM users WHERE username = '' OR '1'='1' -- ' AND password = '$input_password';

看到没?‘–’ 直接被注释掉了,然后' ' OR '1'='1'这条语句又成了真!所以将返回所有用户的信息。

3. 利用传入非法参数进行SQL注入攻击

举个简单例子,用户在搜索框中输入一个用户名和密码。

假设正常情况下,用户输入的用户名和密码是:
用户名:admin
密码:123456

那么正确的后台查询

SELECT * FROM users WHERE username='admin' AND password='123456';

数据库会验证用户名和密码是否匹配,然后返回登录成功或登录失败。

但是呢,攻击者在用户名那里直接输入' OR '1'='1

在这个句子中,’ OR ‘1’='1 是一个非法参数,它是用于进行SQL注入攻击的恶意输入。攻击者通过在用户名输入框中输入这样的参数来绕过密码验证,导致整个条件变为真,从而绕过了正常的身份验证。

这样查询语句就会变为

SELECT * FROM users WHERE username='' OR '1'='1' AND password='';

OR前面是空,但’1’=‘1’ 这个条件始终为真,而 ‘OR’ 和 ‘AND’ 之间的优先级会导致整个条件变为真,绕过了密码验证。因此,攻击者可以通过输入这样的用户名绕过密码验证,即使密码不正确。

4. 添加额外条件进行SQL注入攻击

在 SQL 语句中添加一些额外条件,以此来改变执行的行为。

举个简单例子,用户在搜索框中输入一个用户名和密码。网站的后台代码可能会类似于以下的SQL查询

SELECT * FROM users WHERE username = '$input_username' AND password = '$input_password';

攻击者可以在用户名输入框中输入

' OR '1'='1'; --

So

SELECT * FROM users WHERE username='' OR '1'='1'; --' AND password='$password';

OR前面是空,但’1’=‘1’ 这个条件始终为真,后面又是注释,So~

时间和布尔盲注

时间盲注(Time-Based Blind SQL Injection)

时间盲注是一种高级的注入技术,攻击者通过在恶意查询中添加等待时间函数,根据系统响应时间来判断条件是否成立。
举个简单例子,假设有一个登录页面,用户需要输入用户名和密码进行登录。后台的查询语句可能是这样的

SELECT * FROM users WHERE username = '$username' AND password = '$password';

攻击者输入的用户名

admin' AND IF(1=1, SLEEP(5), 0); --

这将会变为

SELECT * FROM users WHERE username = 'admin' AND password = '' AND IF(1=1, SLEEP(5), 0); --';

在这个例子中,条件 “1=1” 成立,SLEEP函数会引起5秒的延迟。攻击者可以观察登录页面的响应时间,如果登录页面在输入这个用户名后有明显的延迟,那么他们就可以推断出系统中存在用户名 “admin”。

布尔盲注(Boolean-Based Blind SQL Injection)

布尔盲注技术相对复杂,攻击者通过构造SQL查询,根据系统的True或False响应来逐位猜测数据。举个简单例子,上面的 3. 利用传入非法参数进行SQL注入攻击就是一个布尔盲注,实际的布尔盲注攻击可能会更加复杂,涉及更多的条件和查询,

还有堆叠查询注入(Stacked Queries Injection)、NoSQL注入、二次注入(Second-Order Injection)、基于错误的注入(Error-Based SQL Injection)、UNION查询注入也是比较常见的。时间不够了要睡觉了

偶尔搜到自己三年多前写的
https://blog.csdn.net/hanhanwanghaha/article/details/106583521
回想我三年前还是个小年轻勒~哈哈哈

现在听的歌曲的周杰伦的发如雪

没事儿读着玩儿

  1. normal:正常的
  2. abnormal:异常的
  3. distinguish from:区别于
  4. true positives and false positives :准确和误报
  5. concealment:隐蔽
  6. a variety of:多种不同的
  7. diverse:多样化
  8. overt:公然、明显、显眼的,特指那些不隐藏、不掩饰的攻击行为或攻击方式
  9. intervention:干预
  10. traverse:遍历,对图或数据结构进行逐个访问的操作
  11. attributes:特征、特性或属性
  12. pruned:修剪或剪裁
  13. adversarially:对抗性的
  14. robustness:鲁棒性
  15. serve:服务和提供
  16. substructures:子结构
  17. align:对准——》alignment
  18. threat intelligence:威胁情报
  19. benign:良性的
  20. clusters:具有相似特征或性质的数据或实体的集合
  21. entries:日志条目或记录
  22. cache:缓存
  23. incrementally :逐步增量地
  24. fixed:固定的
  25. anomaly:异常
  26. quantify :量化
  27. access:访问
  28. specifically:具体而言
  29. gaussian distribution:高斯分布
  30. tune:调整
  31. typically:通常情况下
  32. leverage:利用、借助、充分利用
  33. heterogeneity:异质性
  34. homogeneity:同质性
  35. CTI:cyber threat intelligence
  36. metaschema:元模式是一种描述数据模型的抽象结构,它定义了数据元素之间的关系、属性和约束。
  37. Risk Assessment:风险评估
  38. Zero Trust:一种安全模型,不信任内部或外部网络中的任何用户或实体,要求始终进行验证和授权。
  39. Trojan Horse:木马
  40. Lateral Movement:APT攻击者在受感染的网络中移动,以获取更多系统的访问权限。
  41. Social Engineering:社会工程学 ,是一种利用心理和人际交往技巧来欺骗、诱骗和伪装,从而获取用户信息、访问权限或其他机密信息的攻击方法。它利用人类的社会行为和心理弱点,而不是直接针对计算机系统的漏洞

社会工程学,好早好早之前就听过黑客利用心理学来实行攻击。

  1. Phishing:钓鱼;通过伪装合法机构或个人,欺骗受害者提供敏感信息的攻击方式
  2. Pretexting:预文本攻击;伪装成他人,以虚构的故事或理由获取目标信息
  3. Coercion:胁迫;使用威胁、恐吓或其他压力手段来迫使受害者执行操作
  4. Tailgating:尾随攻击;攻击者跟随合法用户进入安全区域,获取未经授权的访问权限
  5. Reverse Social Engineering:
  6. Baiting:引诱攻击;以吸引受害者点击链接或下载附件的方式,传送恶意软件或获取信息。
  7. Escaping:脱字符;对输入的特殊字符进行转义,以防止被误解为SQL指令。
  8. Attack Vector:攻击向量
  9. Malicious Queries:恶意查询
  10. Authentication Bypass:身份验证绕过,就比如上面开头的例子
  11. field:字段;通常指代一个数据存储单元或变量,它用于存储特定类型的数据。在数据库中,“field” 是指表中的一个列,用于存储特定类型的数据,比如用户名、密码、日期等。在应用程序中,“field” 可能是用户输入的数据,如表单字段、输入框等。
  12. By tampering with input data:通过篡改输入数据
  13. trick:一种欺骗性的手段或技巧,攻击者使用这些手段来迷惑系统、用户或安全防御机制,以实施恶意行为或绕过安全措施
  14. breaches:安全违规或数据泄露事件
  15. validate:验证和检查
  16. adversary :潜在的对手、攻击者或敌对实体
  17. craft :指精心设计和制作恶意代码、攻击载荷或恶意软件的过程
  18. Worm Virus:蠕虫病毒 一种能够自我复制并传播到其他计算机的恶意软件,通常通过网络传播
  19. Self-Replication:自我复制;蠕虫病毒具有自我复制能力,可以在感染一个系统后,自动复制并传播到其他系统
  20. Propagation:传播;蠕虫病毒通过利用网络、漏洞或其他系统弱点来传播到其他计算机或设备
  21. Infection:感染;
  22. Email Worm:邮件蠕虫
  23. Virus Signature:病毒特征;用于识别蠕虫病毒的独特代码、行为或特征,常用于防病毒软件中的检测
  24. Botnet:僵尸网络;由一组被感染的计算机或设备组成的网络,由蠕虫病毒控制,用于执行恶意活动,如传播垃圾邮件或发起分布式拒绝服务(DDoS)攻击
  25. Backdoor:后门;蠕虫病毒可能会在感染系统上留下后门,以便攻击者可以随时访问和控制受感染的系统

欢迎关注:https://blog.csdn.net/hanhanwanghaha
网安小白成长ing
欢迎各位交流,一起进步。

相关文章:

SQL注入 ❤ ~~~ 网络空间安全及计算机领域常见英语单词及短语——网络安全(二)

SQL注入 ❤ 学网安英语 大白话讲SQL注入SQL注入原理1. 用恶意拼接查询进行SQL注入攻击2. 利用注释执行非法命令进行SQL注入攻击3. 利用传入非法参数进行SQL注入攻击4. 添加额外条件进行SQL注入攻击 时间和布尔盲注时间盲注(Time-Based Blind SQL Injection&#xf…...

【外卖系统】新增菜品

需求分析 在后台中,通过新增功能来添加一个新的菜品,在添加菜品时需要选择当前菜品所属的菜品分类,并且需要上传的菜品图片。 代码开发 需要添加的类和基本接口:实体类DishFlavor、Mapper接口DishFlavorMapper、业务层接口Dish…...

使用docker搭建GPT服务

不用ChatGPT账号,不用API,直接免费使用上官方原版的GPT4.0! 这个操作主要使用的是GitHub上的一个开源项目freegpt。 通过docker把这个项目打包到本地电脑上,直接就能使用上原版GPT4.0。 第一步:下载Docker 下载网址:docker.com 根据自己的电脑系统下载对应的版本即可 下…...

Qt项目---简单的计算器

在这篇技术博客中,我们将介绍如何使用Qt框架实现一个简单的计算器应用。我们将使用C编程语言和Qt的图形用户界面库来开发这个应用,并展示如何实现基本的算术操作。 项目设置 首先,我们需要在Qt Creator中创建一个新的Qt Widgets应用程序项目…...

Flutter游戏引擎Flame系列笔记 - 1.Flame引擎概述

Flutter游戏引擎Flame系列笔记 1.Flame引擎概述 - 文章信息 - Author: 李俊才(jcLee95) Visit me at: https://jclee95.blog.csdn.netEmail: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/article/details/132119035 【介绍】…...

基于SpringBoot+Vue的地方美食分享网站设计与实现(源码+LW+部署文档等)

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…...

在java中操作redis_Data

1.引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> 2.配置Redis数据源 redis:host: ${sky.redis.host}port: ${sky.redis.port}password: ${sk…...

嵌入式开发学习(STC51-14-时钟)

内容 在数码管上显示时间&#xff0c;时分秒&#xff0c;格式为“XX-XX-XX”&#xff1b; DS1302时钟芯片介绍 简介 DS1302是DALLAS公司推出的涓流充电时钟芯片&#xff0c;内含有一个实时时钟/日历和31字节静态RAM&#xff0c;通过简单的串行接口与单片机进行通信&#xf…...

ES新特性部分

文章目录 Symbol创建使用拓展对象的方法直接添加 控制对象控制类型检查控制是否展开 遍历迭代器自定义遍历 生成器函数&#xff08;实现异步编程&#xff09;解决回调地狱 Promise连续读文件 SetMap类静态属性继承ES5ES6 GET与SET 数值Object方法模块化导入另一种导入 babel ES…...

数据结构——搜索二叉树

文章目录 一. 概念二. 二叉搜索树的操作1.查找2.插入3.删除&#xff08;重点&#xff09;4.遍历5.拷贝构造与析构 三.二叉搜索树的递归实现1.递归查找2.递归插入3.递归删除 四.二叉搜索树的性能分析五.二叉树搜索的应用六.源码 前言&#xff1a; 本章我们将认识一种新的二叉树—…...

3.3 Makefile的嵌套包含

一、Makefile包含子Makefile的示例 下面是一个示例Makefile和sub.mk的内容。 首先是sub.mk文件的内容: VAR := Hello from sub.mksay_hello:@echo $(VAR)然后是Makefile文件的内容: include sub.mkall: say_hellosay_hello:@echo "Hello from Makefile"在这个例…...

爬虫获取电影数据----以沈腾参演电影为例

数据可视化&分析实战 1.1 沈腾参演电影数据获取 文章目录 数据可视化&分析实战前言1. 网页分析2. 构建数据获取函数2.1 网页数据获取函数2.2 网页照片获取函数 3. 获取参演影视作品基本数据4. 电影详细数据获取4.1 导演、演员、描述、类型、投票人数、评分信息、电影海…...

网页版Java(Spring/Spring Boot/Spring MVC)五子棋项目(二)前后端实现用户的登录和注册功能【用户模块】

网页版Java五子棋项目&#xff08;二&#xff09;前后端实现用户的登录和注册功能【用户模块】 在用户模块我们要清楚要完成的任务一、MyBatis后端操作数据库1. 需要在数据库创建用户数据库1. 用户id2. 用户名3. 密码4. 天梯积分5. 总场数6. 获胜场数 2. 创建用户类User和数据库…...

2023年华数杯数学建模A题思路代码分析 - 隔热材料的结构优化控制研究

# 1 赛题 A 题 隔热材料的结构优化控制研究 新型隔热材料 A 具有优良的隔热特性&#xff0c;在航天、军工、石化、建筑、交通等 高科技领域中有着广泛的应用。 目前&#xff0c;由单根隔热材料 A 纤维编织成的织物&#xff0c;其热导率可以直接测出&#xff1b;但是 单根隔热…...

阿里云二级域名配置

阿里云二级域名配置 首先需要进入阿里云控制台的域名管理 1.选择域名点击解析 2.添加记录 3.选择A类型 4.主机记录设置【可以aa.bb或者aa.bb.cc】 到时候会变成&#xff1a;aa.bb.***.com 5.解析请求来源设置为默认 6.记录值 设置为要解析的服务器的ip地址 7.TTL 默认即…...

Webpack5 动态导入按需加载

文章目录 一、 什么是动态导入和按需加载&#xff1f;二、 具体用法示例二、 总结 一、 什么是动态导入和按需加载&#xff1f; 传统上&#xff0c;在Webpack中&#xff0c;我们使用import语句可以在代码中静态地导入模块。这意味着所有的模块都会在构建时被打包到bundle中。然…...

【Linux操作系统】Ubuntu和center两个Linux发行版本中指令的区别

Ubuntu和center是Linux的两个发行版本&#xff0c;本文将详细介绍两个发行版的使用命令区别&#xff0c;分析两者的优缺点。 文章目录 常见的区别&#xff1a;细节差异&#xff1a;两个发行版本各自的优点和缺点Ubuntu 的优点&#xff1a;Ubuntu 的缺点&#xff1a;CentOS 的优…...

c++基本数据结构

void insert(const node *head, node *p) {node *x, *y;yhead;do{xy;yx->next;} while ((y!NULL) && (y->value < p->value);x->nextp;p->nexty; } 二.栈 (1) 栈的实现! 操作规则&#xff1a;先进后出&#xff0c;先出后进。 int stack[N], top0; /…...

路由器DHCP实验

拓扑图 配置 # 配置ip地址并开启dhcp [Huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip addr 192.168.1.1 255.255.255.0 [Huawei-GigabitEthernet0/0/0]dhcp enable## 配置dns地址 [Huawei-GigabitEthernet0/0/0]dhcp dns-list 192.168.1.5## 指定某个接口开通DHCP 功能…...

Linux 电源子系统之充电、放电、低功耗

在嵌入式产品中,有三个重要模块:充电、放电、低功耗。 1、充电 charging 1、开关电源基本原理 2、线性充电和开关电源硬件电路图分析 3、Battery_Charging_v1.2 spec 4、typec spec 5、typec-PD spec 6、Uevent 在 Android 层的实现 7、battery service 监听 uevent 事件以…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...