SQL注入 ❤ + 学网安英语
大白话讲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' ANDIF(1=1, SLEEP(5),0);--
这将会变为
SELECT*FROM users WHERE username ='admin'AND password =''ANDIF(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
回想我三年前还是个小年轻勒~哈哈哈
现在听的歌曲的周杰伦的发如雪
没事儿读着玩儿
- normal:正常的
- abnormal:异常的
- distinguish from:区别于
- true positives and false positives :准确和误报
- concealment:隐蔽
- a variety of:多种不同的
- diverse:多样化
- overt:公然、明显、显眼的,特指那些不隐藏、不掩饰的攻击行为或攻击方式
- intervention:干预
- traverse:遍历,对图或数据结构进行逐个访问的操作
- attributes:特征、特性或属性
- pruned:修剪或剪裁
- adversarially:对抗性的
- robustness:鲁棒性
- serve:服务和提供
- substructures:子结构
- align:对准——》alignment
- threat intelligence:威胁情报
- benign:良性的
- clusters:具有相似特征或性质的数据或实体的集合
- entries:日志条目或记录
- cache:缓存
- incrementally :逐步增量地
- fixed:固定的
- anomaly:异常
- quantify :量化
- access:访问
- specifically:具体而言
- gaussian distribution:高斯分布
- tune:调整
- typically:通常情况下
- leverage:利用、借助、充分利用
- heterogeneity:异质性
- homogeneity:同质性
- CTI:cyber threat intelligence
- metaschema:元模式是一种描述数据模型的抽象结构,它定义了数据元素之间的关系、属性和约束。
- Risk Assessment:风险评估
- Zero Trust:一种安全模型,不信任内部或外部网络中的任何用户或实体,要求始终进行验证和授权。
- Trojan Horse:木马
- Lateral Movement:APT攻击者在受感染的网络中移动,以获取更多系统的访问权限。
- Social Engineering:社会工程学 ,是一种利用心理和人际交往技巧来欺骗、诱骗和伪装,从而获取用户信息、访问权限或其他机密信息的攻击方法。它利用人类的社会行为和心理弱点,而不是直接针对计算机系统的漏洞
社会工程学,好早好早之前就听过黑客利用心理学来实行攻击。
- Phishing:钓鱼;通过伪装合法机构或个人,欺骗受害者提供敏感信息的攻击方式
- Pretexting:预文本攻击;伪装成他人,以虚构的故事或理由获取目标信息
- Coercion:胁迫;使用威胁、恐吓或其他压力手段来迫使受害者执行操作
- Tailgating:尾随攻击;攻击者跟随合法用户进入安全区域,获取未经授权的访问权限
- Reverse Social Engineering:
- Baiting:引诱攻击;以吸引受害者点击链接或下载附件的方式,传送恶意软件或获取信息。
- Escaping:脱字符;对输入的特殊字符进行转义,以防止被误解为SQL指令。
- Attack Vector:攻击向量
- Malicious Queries:恶意查询
- Authentication Bypass:身份验证绕过,就比如上面开头的例子
- field:字段;通常指代一个数据存储单元或变量,它用于存储特定类型的数据。在数据库中,“field” 是指表中的一个列,用于存储特定类型的数据,比如用户名、密码、日期等。在应用程序中,“field” 可能是用户输入的数据,如表单字段、输入框等。
- By tampering with input data:通过篡改输入数据
- trick:一种欺骗性的手段或技巧,攻击者使用这些手段来迷惑系统、用户或安全防御机制,以实施恶意行为或绕过安全措施
- breaches:安全违规或数据泄露事件
- validate:验证和检查
- adversary :潜在的对手、攻击者或敌对实体
- craft :指精心设计和制作恶意代码、攻击载荷或恶意软件的过程
- Worm Virus:蠕虫病毒 一种能够自我复制并传播到其他计算机的恶意软件,通常通过网络传播
- Self-Replication:自我复制;蠕虫病毒具有自我复制能力,可以在感染一个系统后,自动复制并传播到其他系统
- Propagation:传播;蠕虫病毒通过利用网络、漏洞或其他系统弱点来传播到其他计算机或设备
- Infection:感染;
- Email Worm:邮件蠕虫
- Virus Signature:病毒特征;用于识别蠕虫病毒的独特代码、行为或特征,常用于防病毒软件中的检测
- Botnet:僵尸网络;由一组被感染的计算机或设备组成的网络,由蠕虫病毒控制,用于执行恶意活动,如传播垃圾邮件或发起分布式拒绝服务(DDoS)攻击
- Backdoor:后门;蠕虫病毒可能会在感染系统上留下后门,以便攻击者可以随时访问和控制受感染的系统
欢迎关注:https://blog.csdn.net/hanhanwanghaha
网安小白成长ing
欢迎各位交流,一起进步。
版权归原作者 宝藏女孩的成长日记 所有, 如有侵权,请联系我们删除。