存储型xss
提交的信息都会存储到数据库中,请求页面后也会把这些数据都显示到页面上:
那么我们尝试让他存储payload,点击提交发现成功解析:
并且在之后内次访问这个页面的时候,这个payload都会被解析。
DOM型xss
DOM型xss就是利用js通过修改DOM节点来改变html的特点,payload传入后直接由js通过DOM来讲payload写入前端代码,实现解析,并不需要和服务器进行交互。
输入一些值,什么也没返回,只有一句话:what do you see?。尝试查看页面中输入框元素,发现有个提示:
我们在看一下what do you see元素,发现了提示中的代码,于是尝试按照提示中的闭合:
然后点击what do you see元素,发现成功弹出警示框,注入成功。
DOM型xss-x
这个不同于上一个的是,他是需要和服务器交互的,但是与上一个相同的点是,他也是利用js,通过DOM节点来改变前端html的内容,只不过他不是在客户端页面直接进行更改,而是在服务器端更改的。
我们尝试输入,发现多出了几句话,点击这几句话查看其代码,发现“就让往事都随风吧” 也是将输入内容放入href中,只不过其使用了domxss()这个函数。
尝试payload:
' onclick="alert('xss')"
点击“请说出你的伤心往事”提交之后,点击:“有些费尽心机····”出现“就让往事都随风吧”之后,查看这个元素就能看到payload已经插入到了代码里面,点击“就让往事都随风吧”,发现警示框已经弹出,成功注入。