原理:后端没有对信息的输入和输出进行处理。提交信息(精心构造的payload)后,页面实质是把信息通过URL传到后台,也就是说,每一次通过浏览器进行这个URL访问的时候都会执行我们刚刚提交的信息(精心构造的payload)攻击流程如下:
get方式的xss漏洞利用演示:
1.在页面输入我们构造的payload语句,我的是:
<script>alert('hello world!')</script>
效果图:
提交后:
2.把URL复制下来,在新页面再次访问这个URL,得到:
在这里我只是让它弹出一个窗口,同理,通过这个操作我们可以输入不同的payload进行你想做的任何事。但是,现在的一些浏览器的检查机制挺有用的,一般的payload都会被拦截下来:
所以推荐使用firefox(火狐)浏览器
一点小知识:通过前端对输入框进行限制其实是没用的,可以通过查看前端的代码找到对应的代码进行修改,如图: