web攻击基础知识笔记
一、跨站脚本攻击 (XSS)
特点
跨站脚本攻击(XSS,全称 Cross-Site Scripting)是指攻击者将恶意脚本注入到网站中,诱导其他用户执行这些恶意脚本。XSS 的核心在于利用目标站点的漏洞,将用户浏览器中的可信上下文转化为攻击者的执行环境。
- 攻击方式简单,范围广泛。
- 目标主要是用户浏览器或网站的访问者。
- 可窃取用户敏感信息,如 Cookies、会话令牌等。
分类与举例
-
存储型 XSS
-
恶意脚本永久存储在目标服务器上,其他用户访问时被动触发。
-
例子:攻击者通过评论区插入恶意 JavaScript 脚本,其他用户加载页面时触发该脚本,导致信息泄露。
<script>alert('XSS!');</script>
-
-
反射型 XSS
-
恶意脚本通过 URL 或输入参数传递,用户访问或执行某些操作时被触发。
-
例子:攻击者通过邮件或钓鱼页面发送恶意链接:
http://example.com/?search=<script>alert('XSS')</script>
-
-
基于 DOM 的 XSS
-
恶意脚本通过修改 DOM 环境直接执行,无需与服务器交互。
-
例子:用户输入被直接插入到页面中:
document.write(location.search);
-
二、跨站请求伪造 (CSRF)
特点
CSRF(Cross-Site Request Forgery)通过冒充用户的身份在目标网站执行未授权操作。它利用用户已登录的身份认证状态,向目标站点发送恶意请求,通常隐秘且难以察觉。
常见方式
-
CSRF DOM 攻击
-
通过嵌入恶意代码在用户的浏览器中构造请求。
-
例子:隐藏表单提交:
<form action="http://example.com/transfer" method="POST"> <input type="hidden" name="amount" value="10000"> <input type="hidden" name="to_account" value="attacker_account"> <input type="submit" value="Submit"> </form>
-
-
CSRF GET 攻击
-
恶意链接利用用户的已登录状态直接触发 GET 请求。
-
例子:攻击者构造如下 URL,通过社交工程诱导用户点击:
http://example.com/logout
-
三、注入攻击 (Injection)
特点
注入攻击指攻击者将恶意代码插入到用户输入中,使其被服务器、数据库或解释器执行。注入攻击本质上是利用了输入验证的不足,将数据转化为代码执行。
常见类型与举例
-
SQL 注入
-
例子:在登录表单中输入恶意语句:
' OR '1'='1对应查询语句变为:
SELECT * FROM users WHERE username = '' OR '1'='1';
-
-
命令注入
- 攻击者通过输入恶意内容使服务器执行系统命令。
- 例子:输入
; rm -rf /,触发删除命令。
-
模板注入
- 针对模板引擎(如 Thymeleaf)的注入攻击。
- 例子:输入 {% for item in [1,2,3] %}{{item}}{% endfor %},执行额外的模板语法。
四、服务器端请求伪造 (SSRF)
特点
服务器端请求伪造(SSRF,全称 Server-Side Request Forgery)是攻击者通过伪造请求,利用服务器访问本地或外部资源。由于服务器拥有更高权限,SSRF 通常会导致敏感数据泄露。
常见场景与举例
-
访问内网资源
-
攻击者通过 URL 注入,利用服务器访问内网服务。
-
例子:
http://example.com/?url=http://127.0.0.1/admin
-
-
文件读取或执行
-
使用 file 协议读取服务器上的敏感文件。
-
例子:
http://example.com/?url=file:///etc/passwd
-
五、拒绝服务攻击 (DoS 和 DDoS)
特点
拒绝服务攻击(DoS,全称 Denial of Service)通过消耗目标服务器资源(如 CPU、内存或网络带宽),导致服务无法正常响应。
分布式拒绝服务攻击(DDoS,全称 Distributed Denial of Service)则是利用多个来源同时发起攻击,威胁更大。
类型与举例
-
流量型 DoS
- 使用大规模流量占用目标带宽。
- 例子:向目标服务器发送大量无效数据包。
-
逻辑型 DoS
-
利用业务逻辑漏洞导致服务器资源消耗。
-
例子:递归请求导致资源溢出:
http://example.com/?redirect=http://example.com
-
-
应用层 DoS
- 模拟正常用户行为频繁访问特定接口。
- 例子:频繁触发登录请求。
总结
Web 攻击利用了系统或应用的漏洞,通过多种方式实施,如 XSS、CSRF、注入攻击、SSRF 以及 DoS 攻击等。这些攻击不仅威胁服务器,还可能窃取用户隐私,破坏业务系统的正常运行。