XSS学习笔记
Posted ceiling~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XSS学习笔记相关的知识,希望对你有一定的参考价值。
XSS形成原因
程序对输入和输出的控制不严格,导致攻击者构造的JavaScript代码,在前端时被浏览器当作有效代码解析执行产生危害
XSS漏洞分类
反射型
原理
攻击者在URL中插入xss代码,用户打开后受到xss攻击(xss代码经过服务器,输出到页面上)
存储型
原理
1.攻击者构造恶意代码,存储到数据库中
2.用户访问页面,页面调取数据,触发恶意脚本
DOM型
原理
攻击者在URL中插入XSS代码,用户打开受受到xss攻击(xss代码经过前端页面输出)
三种类型的差异点
存储型 | 反射型 | DOM型 | |
---|---|---|---|
触发过程 | 黑客构造XSS脚本;用户访问携带XSS脚本的页面 | 正常用户访问携带XSS脚本的URL | 正常用户访问携带XSS脚本的URL |
数据存储 | 数据库 | URL | URL |
谁来输出 | 后端的web应用程序 | 后端WEB应用程序 | 前端的JavaScript |
输出位置 | HTTP响应中 | HTTP响应中 | 动态构造的DOM节点 |
XSS测试流程
1.在目标站点上找到输入点,比如查询接口,留言板等(找输入点)
2.输入一组“特殊字符+唯一识别符”,点击提交后,查看返回的源码,是否有做过对应的处理(验证特殊字符是否被过滤)
3.通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行JS的条件(观察源码,闭合语句)
4.提交构造的脚本代码,看是否可以成功执行,如果成功执行则说明存在xss漏洞
例子
反射型
1.找输入点
2.是否过滤特殊字符
通过返回结果,可得到结论:没过滤字符
3.观察源码,闭合语句
4.通过结果判断是否存在xss漏洞
存储型
1.找输入点
2.是否过滤特殊字符
通过返回结果,可得到结论:没过滤字符
3.观察源码,闭合语句
4.通过结果判断是否存在xss漏洞
DOM型
1.找输入点
2.是否过滤特殊字符
通过返回结果,可得到结论:会过滤\'
3.观察源码,闭合语句
闭合语句:ss" onclick="alert(1)">
显然没有成功,只是大可不必403
在源代码里找 what do you see来确认格式
此段代码说明 用‘来闭合字符串
4.通过结果判断是否存在xss漏洞
存在注入点
测试
cookie获取
原理
手法
在xss8.cc选择攻击模块
复制生成的短链接
插入到目标站点
后台查看
POST型
构造代码
钓鱼攻击
键盘记录
javascript里的src是可以跨过同源策略来访问的
盲打
网站上不会显示我们输入的内容,内容被提交到了后台,后台这种可能管理员去看的时候会触发
以上是关于XSS学习笔记的主要内容,如果未能解决你的问题,请参考以下文章