XSS跨站-输入输出-原理&分类&闭合
漏洞原理:接受输入数据,输出显示数据后解析执行,需要受害者触发到才能执行(包括触发条件,浏览器可能阻止,可能有一定鸡肋性)
基础类型:反射(非持续),存储(持续),DOM-BASE
拓展类型:jquery,mxss,uxss,pdfxss,flashxss,上传xss等
攻击利用:盲打,COOKIE盗取,凭据窃取,页面劫持,网络钓鱼,权限维持等
安全修复:字符过滤,实例化编码,http_only,CSP防护,WAF拦截等
测试流程:看输出,想输入在哪里, 更改输入代码看执行(标签,过滤决定)
XSS跨站-分类测试-反射&存储&DOM
数据交互的地方:
- get、post、headers
- 反馈与浏览
- 富文本编辑器
- 各类标签插入和自定义
数据输出的地方:
- 用户资料
- 数据输出
- 搜索框,评论区,留言板等
- 关键词、标签、说明
- 文件上传
反射型XSS:
常见情况是攻击者通过构造一个恶意链接的形式,诱导用户传播和打开,
由于链接内所携带的参数会回显于页面中或作为页面的处理数据源,最终造成XSS攻击。
例如:
1 | http://1.1.1.1/xss.php?x=<iframe sec="https://www.baidu.com"></iframe> |
使用嵌套,然后调整框框大小从而达到模拟钓鱼网站,反射型跨站,需要自己构造,需要发给对方钓鱼,别人不访问就不会上当,不发给就不会触发,需要自己主动发,用处不大,别人不看的话就没办法
存储型XSS:
存储型XSS是持久化的XSS攻击方式,将恶意代码存储于服务器
在qq空间,论坛有论坛系列的网站,发布攻击代码,每当有人访问就会触发,直到代码被删当其他用户再次访问页面时触发,造成XSS攻击。
需要考虑闭合和过滤,例如标签a,img等标签的闭合,然后是过滤
抓包看原代码的输出,然后看输入的标签和过滤在哪里,更改输入代码看执行(标签,过滤决定)
DOM-base型XSS:
通过修改原始的客户端代码,受害者浏览器的DOM环境改变,导致有效载荷的执行。
页面本身没有变化,但由于DOM环境被恶意修改,有客户端代码被包含进了页面并执行。
1 | http://1.1.1.1/domxss.html#http://www.baidu.com |
针对DOM树的操作,后面加上任意#就可以跳转了,取原文件里面的对网页的标题,数据,url信息进行更改和显示