web攻击基础知识笔记

360 阅读4分钟

web攻击基础知识笔记


一、跨站脚本攻击 (XSS)

特点
跨站脚本攻击(XSS,全称 Cross-Site Scripting)是指攻击者将恶意脚本注入到网站中,诱导其他用户执行这些恶意脚本。XSS 的核心在于利用目标站点的漏洞,将用户浏览器中的可信上下文转化为攻击者的执行环境。

  • 攻击方式简单,范围广泛。
  • 目标主要是用户浏览器或网站的访问者。
  • 可窃取用户敏感信息,如 Cookies、会话令牌等。

分类与举例

  1. 存储型 XSS

    • 恶意脚本永久存储在目标服务器上,其他用户访问时被动触发。

    • 例子:攻击者通过评论区插入恶意 JavaScript 脚本,其他用户加载页面时触发该脚本,导致信息泄露。

      <script>alert('XSS!');</script>
      
  2. 反射型 XSS

    • 恶意脚本通过 URL 或输入参数传递,用户访问或执行某些操作时被触发。

    • 例子:攻击者通过邮件或钓鱼页面发送恶意链接:

      http://example.com/?search=<script>alert('XSS')</script>
      
  3. 基于 DOM 的 XSS

    • 恶意脚本通过修改 DOM 环境直接执行,无需与服务器交互。

    • 例子:用户输入被直接插入到页面中:

      document.write(location.search);
      

二、跨站请求伪造 (CSRF)

特点
CSRF(Cross-Site Request Forgery)通过冒充用户的身份在目标网站执行未授权操作。它利用用户已登录的身份认证状态,向目标站点发送恶意请求,通常隐秘且难以察觉。

常见方式

  1. 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>
      
  2. CSRF GET 攻击

    • 恶意链接利用用户的已登录状态直接触发 GET 请求。

    • 例子:攻击者构造如下 URL,通过社交工程诱导用户点击:

      http://example.com/logout
      

三、注入攻击 (Injection)

特点
注入攻击指攻击者将恶意代码插入到用户输入中,使其被服务器、数据库或解释器执行。注入攻击本质上是利用了输入验证的不足,将数据转化为代码执行。

常见类型与举例

  1. SQL 注入

    • 例子:在登录表单中输入恶意语句:

      ' OR '1'='1
      

      对应查询语句变为:

      SELECT * FROM users WHERE username = '' OR '1'='1';
      
  2. 命令注入

    • 攻击者通过输入恶意内容使服务器执行系统命令。
    • 例子:输入 ; rm -rf /,触发删除命令。
  3. 模板注入

    • 针对模板引擎(如 Thymeleaf)的注入攻击。
    • 例子:输入 {% for item in [1,2,3] %}{{item}}{% endfor %},执行额外的模板语法。

四、服务器端请求伪造 (SSRF)

特点
服务器端请求伪造(SSRF,全称 Server-Side Request Forgery)是攻击者通过伪造请求,利用服务器访问本地或外部资源。由于服务器拥有更高权限,SSRF 通常会导致敏感数据泄露。

常见场景与举例

  1. 访问内网资源

    • 攻击者通过 URL 注入,利用服务器访问内网服务。

    • 例子

      http://example.com/?url=http://127.0.0.1/admin
      
  2. 文件读取或执行

    • 使用 file 协议读取服务器上的敏感文件。

    • 例子

      http://example.com/?url=file:///etc/passwd
      

五、拒绝服务攻击 (DoS 和 DDoS)

特点
拒绝服务攻击(DoS,全称 Denial of Service)通过消耗目标服务器资源(如 CPU、内存或网络带宽),导致服务无法正常响应。
分布式拒绝服务攻击(DDoS,全称 Distributed Denial of Service)则是利用多个来源同时发起攻击,威胁更大。

类型与举例

  1. 流量型 DoS

    • 使用大规模流量占用目标带宽。
    • 例子:向目标服务器发送大量无效数据包。
  2. 逻辑型 DoS

    • 利用业务逻辑漏洞导致服务器资源消耗。

    • 例子:递归请求导致资源溢出:

      http://example.com/?redirect=http://example.com
      
  3. 应用层 DoS

    • 模拟正常用户行为频繁访问特定接口。
    • 例子:频繁触发登录请求。

总结

Web 攻击利用了系统或应用的漏洞,通过多种方式实施,如 XSS、CSRF、注入攻击、SSRF 以及 DoS 攻击等。这些攻击不仅威胁服务器,还可能窃取用户隐私,破坏业务系统的正常运行。