本文主要内容

  • 存储型、反射型、DOM型造成XSS漏洞的简单原理、危害、攻击流程
  • 利用EasyAdmin极简版的实战测试案例
  • 几种XSS辅助测试工具

认识危害

0x01 发现XSS

1.1 XSS位置

  • 直接插入到SCRIPT标签里
  • 插入到HTML注释里
  • 插入到HTML标签的属性里
  • 插入到HTML标签的名字
  • 作为HTML标签的名字
  • 直接插入到CSS里
  • ……

1.2 手工发现

  • 参数中提交XSS payload代码

  • 在所有可以提交参数并能在页面返回的位置上

    • URL的每一个参数
    • URL本身
    • 表单
    • 搜索框
    • ……

1.3 常见业务场景

  • 重灾区:评论区、留言区、个人信息、订单信息等
  • 针对型:站内信、网页即时通讯、私信、意见反馈等
  • 存在风险:搜索框、当前目录、图片属性等

实战环境配置

0x01 存储型XSS实战

1.1 存储型XSS攻击流程

1.2 利用easyadmin进行测试

  • 利用img标签,<img src=x onerror=alert("xss")>进行测试存在漏洞的地方

  • 经测试,发现在添加标签时,出现弹窗

  • 发布后,当点击该帖子,即可弹窗

  • 点击开发者工具,可发现对添加的图片标签进行解析了,但并未解析出来,故执行了onerror事件,弹窗

0x02 反射型XSS实战

2.1 反射型XSS攻击流程

2.2 利用easyadmin测试

攻击者在URL中插入XSS代码,服务端将URL中的XSS代码输出到页面上,攻击者将带有XSS代码的URL发送给用户,用户打开后受到XSS攻击

  • 寻址存在URL的输入点,测试搜索栏

  • 闭合title,并测试弹窗


  • 寻找其他输入点

  • 尖括号闭合,测试"><script>alert("xss")</script>

0x03DOM型XSS实战

3.1 测试环境

  • ubuntu+docker+pikachu之xss平台

3.2 DOM型xss测试

  • DOM型xss-x初始化界面:

  • 步骤一:输入111,URL发生变化

  • 再点击新出现的,URL又发生变化

  • 步骤二:F12审查源码

  • 步骤三:审查domxss()函数

分析:JS代码,定义了一个domxss函数,利用 window.location.search 获取浏览器中URL的内容,然后赋值给 str,然后经过URL解码和字符串分隔,取出URL中的参数内容,再把 “+” 替换为 “ ”(空格),赋值给 xss最后把 xss 拼接到 a 标签中,然后写到 Id 为 dom 的 div 标签中;跟前面的DOM型xss不同的是,它的输入是从浏览器的URL中获取的,很像反射型XSS(get)
  • 步骤四:构造payload:#' onclick="alert('xss')">

  • 尝试payload:#'><img src="#" onmouseover="alert('xss')">

0x04 XSS辅助测试工具

4.1 BeEF

http://beefproject.com

4.2 XSS’OR

http://xssor.io

4.3 IE Tester

https://www.my-debugbar.com/wiki/IETester/HomePage

等等……..

参考链接