0X01DOM-XSS进阶之inner显式输出
首先我们先了解一下DOM型和和其他到底有什么区别
dom就是一个树状的模型,你可以编写Javascript代码根据dom一层一层的节点,去遍历/获取/修改对应的节点,对象,值。了解了这么一个知识点,你就会发现,其实dom xss并不复杂,他也属于反射型xss的一种(domxss取决于输出位置,并不取决于输出环境,因此domxss既有可能是反射型的,也有可能是存储型的),简单去理解就是因为他输出点在DOM。dom - xss是通过url传入参数去控制触发的)分析完dom-xss之后,再说说存储型xss,其实也很好理解,存储型xss,自然就是存入了数据库,再取出来,导致的xss。3,)反射型xss实际上是包括了dom - xss了,关键点仍然是在通过url控制了页面的输出(dom-xss也类似,只因为输出地点不同而导致结果不一致)。
DOM型XSS其实是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。
在网站页面中有许多页面的元素,当页面到达浏览器时浏览器会为页面创建一个顶级的Document object文档对象,接着生成各个子文档对象,每个页面元素对应一个文档对象,每个文档对象包含属性、方法和事件。可以通过JS脚本对文档对象进行编辑从而修改页面的元素。也就是说,客户端的脚本程序可以通过DOM来动态修改页面内容,从客户端获取DOM中的数据并在本地执行。基于这个特性,就可以利用JS脚本来实现XSS漏洞的利用。
可能触发DOM型XSS的属性:
document.referer属性
window.name属性
location属性
innerHTML属性
documen.write属性
······
然后我们百度一下这个函数
这意思是获取id=a的元素div的内容 这里内容是文本节点
那我们输入的就将会取代xxx
那我们如何在div标签中构造xss?
这里很明显不能直接script>这种形式了 因为inner.HTML是不支持直接插入js标签的 这里我们可以通过其他的来试试 比如
这里我们用img标签的onerror属性成功绕过
0X02DOM-XSS进阶之jQuery显式输出
我们来看看关键代码
u003cimg src=1 onerror=alert(/zhong/)u003e
做到这里我又开始不自信了 去百度了了一下xss攻击原理
Xss(cross-site scripting)攻击指的是攻击者往Web页面里插入恶意html标签或者javascript代码,当用户浏览该页或者进行某些操作时,攻击者利用用户对原网站的信任,诱骗用户或浏览器执行一些不安全的操作或者向其它网站提交用户的私密信息。
比如:攻击者在论坛中放一个看似安全的链接,骗取用户点击后,窃取cookie中的用户私密信息;或者攻击者在论坛中加一个恶意表单,当用户提交表单的时候,却把信息传送到攻击者的服务器中,而不是用户原本以为的信任站点。
诸如此类,唯一能完全杜绝xss攻击的方法,就是禁用script,img等,显然这是不靠谱的,用户需要丰富的页面内容;当然我们可以用一些方法预防xss攻击,尽量减少xss造成的危害
嗦嘎
那么这里我们是通过img标签的onerror函数来执行我们的恶意代码的
等以后我们学的多了 可能就会越来越了解XSS吧
0X03DOM-XSS进阶之js隐式输出
首先我们先来看看源码
百度百度
百度了一下午 现在是回来了 这个正则是表示从字符串第一个开始匹配 不包括第一个
这个函数为结尾的正则表达式不包括结尾
([^&]*)
这个的意思是匹配所有的值一直到结尾
https://www.cnblogs.com/xinkun/p/8182803.html
函数的介绍
http://www.w3school.com.cn/jsref/jsref_unescape.asp
意思是会对返回数组的第三个值进行unescape解码
所以我们需要提交变了码的
%3C%69%6D%67%20%73%72%63%3D%31%20%6F%6E%65%72%72%6F%72%3D%61%6C%65%72%74%28%31%29%3E
0X04DOM-XSS进阶之iframe构造XSS
看看源代码 这里的意思是提交一个值 并且过滤 一些字符 然后在把这个值放到iframe标签的src属性中去
那我们去了解一波iframe元素里面可以插入那些语法
百度由于同源限制所以不能访问
那在这里我们怎么进行js语言插入????
我们可以这样
%6A%61%76%61%73%63%72%69%70%74%3A%61%6C%65%72%74%28%32%39%29
进行攻击