本文主要内容
- 存储型、反射型、DOM型造成XSS漏洞的简单原理、危害、攻击流程
- 利用EasyAdmin极简版的实战测试案例
- 几种XSS辅助测试工具
认识危害
0x01 发现XSS
1.1 XSS位置
- 直接插入到SCRIPT标签里
- 插入到HTML注释里
- 插入到HTML标签的属性里
- 插入到HTML标签的名字
- 作为HTML标签的名字
- 直接插入到CSS里
- ……
1.2 手工发现
参数中提交XSS payload代码
在所有可以提交参数并能在页面返回的位置上
- URL的每一个参数
- URL本身
- 表单
- 搜索框
- ……
1.3 常见业务场景
- 重灾区:评论区、留言区、个人信息、订单信息等
- 针对型:站内信、网页即时通讯、私信、意见反馈等
- 存在风险:搜索框、当前目录、图片属性等
实战环境配置
EasyAdmin极简版安装:[下载链接](链接:https://pan.baidu.com/s/1mEIcBSoFBBjN9DgIDzyxcg
提取码:qpzn)下载后,本地windows+phpstudy,放置在WWW目录下
访问,之后创建数据库,即可完成配置
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
4.2 XSS’OR
4.3 IE Tester
https://www.my-debugbar.com/wiki/IETester/HomePage