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是可以跨过同源策略来访问的

盲打

网站上不会显示我们输入的内容,内容被提交到了后台,后台这种可能管理员去看的时候会触发

posted @ 2022-02-09 09:52  ceiling~  阅读(69)  评论(0编辑  收藏  举报