本篇文章对于Web攻击方式与分类做了个简单的归纳,看完后能对Web安全方面有些成体系的印象。
只有2.1XSS、3.2.1SQL注入攻击、4.2.4CSRF有详细细节。我希望本文起的是大纲的作用,看右边的目录线也可以。
概述
- Web应用的核心部分包括Web服务器、Web客户端与HTTP协议。
- HTML基础
- Web服务器,如Apache、IIS、Tomcat、Nginx ...
- 浏览器
- HTTP协议基础
- 根据攻击目标的不同,Web应用攻击可分为 Web客户端攻击、Web服务器攻击、HTTP协议攻击。
I. Web客户端攻击
跨站脚本攻击 Cross-Site Scripting (XSS)
根据Web应用对注入的JavaScript或HTML代码的处理方式的不同 以及XSS攻击触发时机的不同,可分为:
- 反射型XSS,也即非持久型XSS
- 存储型XSS,也即持久性XSS
- DOM型XSS,利用的是Web网页中JS代码的逻辑漏洞
XSS可能被用于的攻击方式有Cookie窃取、会话劫持、网络钓鱼、信息刺探、网页挂马、XSS蠕虫 ……
⭐防范XSS:HttpOnly属性;安全编码,如PHP有安全编码函数htmlentities()和htmlspecialchars()等。
网络钓鱼
网页挂马
II. Web服务器攻击
网页篡改
代码注入攻击
SQL注入攻击
根据SQL注入点类型的不同:
- 字符型SQL注入。
- 数字型SQL注入。
根据注入时是否有错误信息输出:
- 基于错误信息SQL注入。如出现mysql_fetch_array()这一特殊函数,则后台一定是MySQL数据库系统。
- SQL盲注入。可以基于布尔值;基于时间。
SQL注入可能被利用来 绕过身份鉴别机制,识别数据库系统,提取数据库中的数据,执行命令,提升权限,写入木马程序 ……
⭐防范SQL注入:特殊字符转义,如PHP中有转义函数;输入验证和过滤,如数据类型验证/转换或基于正则表达式验证过滤;参数化方法,一般采用占位符或绑定变量。
程序代码注入攻击
命令注入攻击
数据注入攻击
文件操作控制攻击
III. HTTP协议攻击
HTTP头注入攻击
HTTP会话攻击
背景知识点:HTTP是无状态协议;一次网页会话包括会话ID和变量集。
HTTP会话攻击分类:
预测会话ID
⭐防范:采用编程语言内置的会话管理机制。
窃取会话ID
⭐防范:需有针对性。如针对XSS攻击导致的会话ID窃取,采用HttpOnly属性等。
控制会话ID
⭐防范:针对会话ID固定攻击,尽可能采用非会话采纳(Session Adoption)的Web环境;针对会话ID保持攻击,可通过强制销毁措施或用户登陆后更改会话ID来确保ID不能长期有效。
跨站请求伪造攻击 Cross-Site Request Forgery (CSRF)
CSRF攻击包含五个步骤:
🙃被攻击者:Grace. 😈攻击者:Evil.
📌 1. Grace🙃使用合法账户登录Web应用系统。
📌 2. Web应用系统在验证账户信息后,登录成功,并给Grace🙃返回一个会话ID = xxx,以表示登陆成功状态信息。
📌 3. Grace🙃在未退出Web应用系统的情况下,访问Evil😈所控制的恶意Web网页。
📌 4. Evil😈在返回的Web网页中嵌入恶意脚本,这段脚本能发起对Web应用系统的HTTP请求。
📌 5. 恶意脚本在Grace🙃的浏览器上执行,发送伪造的HTTP请求到Web应用系统,同时自动捎带会话ID = xxx,请求操作成功。
⭐防范CSRF:验证码;请求来源检查;增加参数的不可预测性等。
内容由m1llie创作,采用 知识共享署名4.0 国际许可协议进行许可,转载前请联系。
本文最后更新时间为: Dec 31, 2020
当你启程前往伊萨卡,但愿你的道路漫长,
充满奇迹,充满发现
我还以为上面的教程是实例emmmmm
所以标题里写的“概览”,开头写的“大纲”emmm,可能标签不够精准