pikachu
DOM型xss
文档对象模型 (DOM) (Document Object Model)是 HTML 和 XML 文档的编程接口。它提供了对文档的结构化的表述,并定义了一种方式可以使从程序中对该结构进行访问,从而改变文档的结构,样式和内容。DOM 将文档解析为一个由节点和对象(包含属性和方法的对象)组成的结构集合。简言之,它会将 web 页面和脚本或程序语言连接起来。
一个 web 页面是一个文档。这个文档可以在浏览器窗口或作为 HTML 源码显示出来。但上述两个情况中都是同一份文档。文档对象模型(DOM)提供了对同一份文档的另一种表现,存储和操作的方式。 DOM 是 web 页面的完全的面向对象表述,它能够使用如 JavaScript 等脚本语言进行修改。我们用JavaScript对网页进行的所有操作都是通过DOM进行的。
思路
dom既然和html挂钩,那么F12,找到相应位置:
看到有一个函数表示出来了:
function domxss(){
var str = document.getElementById("text").value;
document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you see?</a>";
}
表示输入的text的值(value)赋值给str,然后将str放入<a href='"+str+"'>what do you see?</a>
最后在div的标签中执行,上图输入了asa后点击butten后function就执行了下面的那排what do you see就看的到,而这个str就成了一个超链接,名字就叫what do you see?
试试给的注释1,鼠标移到图片上(onmouseover的作用),就出现了alert:
试试出现的注释2,点击下方超链接(代码将超链接换成了onclick),出现了alert:
总结
目前还不知道xss的注入命令,比如注释上的'
不知道怎么来的,但没了它代码运行不起来
DOM型xss-x
思路
随便输入,onclick后发现输入的文本出现在了url一栏中的text=,F12中查看果然发现表单的method果然是get:
domxss中str为获取url的内容,经过url解码和字符串分离,取出text=后的内容赋值给txss,txss把+换成空格
容,经过url解码和字符串分离,取出text=后的内容赋值给txss,txss把+换成空格
并赋值给xss,最后拼接,注释1和2都可以放入表单中。