“
在网络安全领域,注入攻击是一种常见的攻击方式,攻击者通过向应用程序发送恶意数据来操控应用程序的行为。以下跟随博主通过具体样例一起来掌握以下五种知名的注入攻击类型。
1. SQL注入(SQL Injection)
SQL注入流程
1.1. 概述
SQL注入是最常见的注入攻击类型之一,攻击者通过在输入字段中插入恶意的SQL代码来改变原本的SQL逻辑或执行额外的SQL语句,来操控数据库执行未授权的操作(如拖库、获取管理员信息、获取 WebShell权限等)。
1.2. 攻击方式
攻击者可以通过输入特定的SQL查询语句,获取敏感数据、修改数据或删除数据。例如,在登录表单中用户名称中输入 admin' OR '1'='1
,可能导致绕过身份验证。
1.3. 防御措施
-
参数化查询:使用参数化查询(Prepared Statements)和存储过程,避免直接拼接SQL语句。
-
输入验证:对用户输入进行严格的验证和过滤。禁止在代码中或者存储过程中使用
exec
语句直接执行外部输入的参数或者使用外部输入拼接的SQL 语句。 -
最小化特权:限制数据库用户特权。
2. 脚本注入(Cross-Site Scripting, XSS)
XSS注入流程
2.1. 概述
XSS攻击允许攻击者在用户的浏览器中执行恶意脚本,通常用于窃取用户的会话信息、Cookies等。
“
应用程序包含反射式输入类型时容易出现跨站脚本攻击。比如弹出一个假的窗口骗取用户信息。
2.2. 攻击方式
攻击者将恶意JavaScript代码注入到网页中,当用户访问该网页时,代码会在用户的浏览器中执行。例如,攻击者在评论区输入 <script>alert('XSS');</script>
。
2.3. 防御措施
-
对用户输入进行HTML转义,避免执行恶意代码;
-
用户可控数据输出至http响应中时要对输出进行编码;
-
使用内容安全策略(CSP)限制可执行的脚本源。
3. 命令注入(Command Injection)
命令注入流程
3.1. 概述
命令注入攻击允许攻击者在服务器上执行任意命令,通常通过在输入字段中插入系统命令来实现。
3.2. 攻击方式
攻击者可以通过输入特定的命令,如 ; ls -la
,来执行系统命令。例如,在一个文件上传功能中,如果没有对输入进行有效过滤,攻击者可能上传恶意脚本。
3.3. 防御措施
-
使用安全函数:尽量不要从应用程序层代码中调用OS命令,如果实在要调用请使用封装后的安全函数;
-
输入过滤,避免执行未授权的命令:
-
对参数进行白名单校验,如验证输入只包含字母,没有其他语法关键字或空格等。
-
黑名单过滤,拦截命令注入特殊字符。
-
参数编码:对常见特殊字符进行转码,避免命令注入。
4. XML注入(XML Injection)
XML注入流程
4.1. 概述
XML注入攻击通过向XML数据中插入恶意内容,来操控XML解析器的行为。例如,攻击者可以插入额外的XML节点,导致数据泄露或系统崩溃。
4.2. 攻击方式
攻击者可以通过构造恶意的XML数据,影响后端系统的处理逻辑,主要有以下两种攻击方式:
-
普通注入:XML 注入攻击和SQL 注入攻击的原理一样,利用了XML 解析机制的漏洞,如果系统对用户输入
"<",">"
没有做转义的处理,攻击者可以修改XML 的数据格式,或者添加新的XML 节点,就会导致解析XML 异常,对流程产生影响。 -
外部实体注入:外 部 实 体 (XML External Entity,XXE) 注入攻击,由于程序在解析输入的XML 数据时,解析了攻击者伪造的外部实体而引发的攻击者利用站外脚部本实体的引用功能可实现对任意支件的读取。
4.3. 防御措施
-
对XML输入进行严格的验证和过滤;
-
使用安全的XML解析库,避免处理恶意构造的XML。
5. LDAP注入(LDAP Injection)
目录服务是一个集中式数据库,包含主体和客体的有关信息,如身份认证数据。许多目录服务都基于轻量级目录访问协议(Lightweight Directory Access Protocol,LDAP) 。比如,微软活动目录域服务(Microsoft Active Directory Domain Services,ADDS)就是基于LDAP的。
“
可以将 LDAP 目录看作是针对网络服务和资产的电话簿。用户、客户端和进程可以检索目录服务,从而定位所需系统或资源的位置。
5.1. 概述
LDAP注入攻击通过向LDAP查询中插入恶意代码,来操控LDAP服务器的行为。
“
LDAP注入原理类似SQL注入。
5.2. 攻击方式
攻击者可以通过输入特定的LDAP查询语句,获取未授权的用户信息。
例如,输入 *)(uid=*))
可能导致查询所有用户。
5.3. 防御措施
-
使用参数化查询来构造LDAP查询;
-
对用户输入进行严格的验证和过滤。
6. 总结
注入攻击是一种严重的安全威胁,了解各种注入类型及其防御措施对于保护应用程序的安全至关重要。开发者应始终遵循安全编码实践,确保应用程序能够抵御这些攻击。
黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图
攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。
(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取