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
欢迎各位交流,一起进步。

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

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

相关文章

使用隧道HTTP时如何解决网站验证码的问题?

使用代理时,有时候会遇到网站验证码的问题。验证码是为了防止机器人访问或恶意行为而设置的一种验证机制。当使用代理时,由于请求的源IP地址被更改,可能会触发网站的验证码机制。以下是解决网站验证码问题的几种方法: 1. 使用高匿…

树和二叉树 --- 数据结构

目录 1.树的概念及结构 1.1树的概念 1.2树的表示 1.3树在实际生活中的运用 2.二叉树的概念及结构 2.1概念 2.2特殊的二叉树 2.3二叉树的性质 2.4二叉树的存储结构 1.树的概念及结构 1.1树的概念 树是一种非线性的数据结构,它是由n (n>0)个有限结点组成…

No primary or single unique constructor found for interface java.util.List

报错截图: 报错内容: 2023-08-04 15:46:32.884 ERROR 14260 --- [io-8080-exec-10] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing fa…

Android 版本 对应的 API版本

Android 14(开发者预览版) 如需详细了解平台变更,请参阅 Android 14 文档。 Android 13(API 级别 33) 如需详细了解平台变更,请参阅 Android 13 文档。 Android 12(API 级别 31、32&#xf…

模拟宕机后kafka的重新分区

直接停掉192.168.233.133:9092 (broker.id 5) 查看topic 分区 $ /data/kafka_2.13-3.0.0/bin/kafka-topics.sh --bootstrap-server 192.168.233.132:9092 --topic quickstart77-events --describe Topic: quickstart77-events TopicId: A7bNWYseSNqlGfs1XPhN9g PartitionCou…

2023年电赛---运动目标控制与自动追踪系统(E题)OpenART mini的代码移植到OpenMV

前言 (1)已经有不少同学根据我上一篇博客完成了前三问,恭喜恭喜。有很多同学卡在了第四问。 (2)我说了OpenART mini的代码是可行的。但是他们不会移植到OpenMV上,再次我讲移植之后的代码贴出来。 &#xff…

接口自动化测试-Postman+Newman+Git+Jenkins实战集成(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、Postman 创建…

Linux之 centos、Ubuntu 安装常见程序 (-) Mysql 5.7 版本和8.0版本

CentOS 安装 MySql 注意 需要有root权限 安装5.7版本 – 由于MySql并不在CentOS的官方仓库中,所以需要通过rmp命令: 导入MySQL仓库密钥 1、配置MySQL的yum仓库 配置yum仓库 更新密钥 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 安装…

c++函数模板

c函数模板 一.函数模板 1.关于模板的使用 template:定义模板的关键字 typename:定义模板类型的关键字 T 通用的类型标识符 使用如下 template<typename T> //这样就写了一个模板2.模板函数的作用 普通函数 int fun(int a, int b) {return a b; }这个函数只能进…

452. 用最少数量的箭引爆气球

452. 用最少数量的箭引爆气球452. 用最少数量的箭引爆气球 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points &#xff0c;其中points[i] [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。 一支弓箭可…

【Linux】Linux下git的使用

文章目录 一、什么是git二、git发展史三、Gitee仓库的创建1.新建仓库2.复制仓库链接3.在命令行克隆仓库3.1仓库里的.gitignore是什么3.2仓库里的git是什么 三、git的基本使用1.将克隆仓库的新增文件添加到暂存区(本地仓库)2.将暂存区的文件添加到.git仓库中3.将.git仓库中的变化…

中介者模式——协调多个对象之间的交互

1、简介 1.1、概述 如果在一个系统中对象之间的联系呈现为网状结构&#xff0c;如下图所示&#xff1a; 对象之间存在大量的多对多联系&#xff0c;将导致系统非常复杂&#xff0c;这些对象既会影响别的对象&#xff0c;也会被别的对象所影响&#xff0c;这些对象称为同事对…

深入了解 PostgreSQL 扩展插件

深入了解 PostgreSQL 扩展插件 在 PostgreSQL 数据库中&#xff0c;扩展插件是极具价值的工具&#xff0c;它们为我们提供了丰富多样的功能增强。本篇博客将深入介绍几个常用的 PostgreSQL 扩展插件&#xff0c;包括 pg_stat_statements、uuid、postgis 以及 postgis_raster。…

【JS代码调试技巧】你必须知道的Javascript技巧汇总

注&#xff1a;最后有面试挑战&#xff0c;看看自己掌握了吗 文章目录 使用控制台检查变量值控制台使用 type of 检查变量的类型捕获拼错的变量名和函数名捕获使用赋值运算符而不是相等运算符捕捉函数调用后缺少的左括号和右括号 &#x1f338;I could be bounded in a nutshel…

使用FreeMarker导出word文档(支持导出图片)

今天跟大家分享一下工作中比较实用的导出word 带图片的功能。 对于在idea开发中我们需要引入以下依赖&#xff1a; 2.对于eclipse 开发我们需要进入对应的jar包 这个必须放在lib下&#xff0c;同样也需要在当前项目的环境是加入该依赖 需要在MEAT-INF加入 首先制定word 导出…

ORACLE-DG总结

述 当主库的某些日志没有成功传送到备库,那么这时候就发生了归档裂缝(Archive Gap)。目前Oracle提供了两种日志GAP的检测和处理机制,分别是自动GAP处理(Automatic Gap Resolution)和FAL进程GAP处理(FAL Gap Resolution)。自动GAP处理即主库上的ARCn进程会每分钟检查备库…

如何隐藏开源流媒体EasyPlayer.js视频H.265播放器的实时录像按钮?

目前我们TSINGSEE青犀视频所有的视频监控平台&#xff0c;集成的都是EasyPlayer.js版播放器&#xff0c;它属于一款高效、精炼、稳定且免费的流媒体播放器&#xff0c;可支持多种流媒体协议播放&#xff0c;包括WebSocket-FLV、HTTP-FLV&#xff0c;HLS&#xff08;m3u8&#x…

Windows安装JDK和JRE的方法

原文网址&#xff1a;Windows安装JDK和JRE的方法_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Windows安装JDK和JRE&#xff08;Java8&#xff09;的方法。 下载 下载入口&#xff1a;https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html jdk-8…

计算机网络(2) --- 网络套接字UDP

计算机网络&#xff08;1&#xff09; --- 网络介绍_哈里沃克的博客-CSDN博客https://blog.csdn.net/m0_63488627/article/details/131967378?spm1001.2014.3001.5501 目录 1.端口号 2.TCP与UDP协议 1.TCP协议介绍 1.TCP协议 2.UDP协议 3.理解 2.网络字节序 发送逻辑…

Ansible之playbook剧本编写

一、playbook的相关知识 1.playbook简介 playbook是 一个不同于使用Ansible命令行执行方式的模式&#xff0c;其功能更强大灵活。简单来说&#xff0c;playbook是一个非常简单的配置管理和多主机部署系统&#xff0c;不同于任何已经存在的模式&#xff0c;可作为一个适合部署复…