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学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

Web安全学习笔记 XSS漏洞分析上

xss漏洞学习笔记

XSS学习笔记

安全牛学习笔记XSS- 键盘记录器和反射型XSS

前端Hack之XSS攻击个人学习笔记

学习笔记之xss原理篇