危害级别:存储型>反射型>DOM型
形成XSS漏洞的主要原因是程序对输入和输出的控制不够严格,导致"精心构造"的脚本输入后,在输到前端时被浏览器当做有效代码解析执行,从而产生危害。
Tips:
从一个弹窗开始认识XSS漏洞!
环境:Firefox、pikachu
测试工具:Firefox+浏览器开发者工具
进入到pikachu页面—反射型xss(get):
提交,查看返回结果:
然后,分析源码(通过关键词找到返回结果输出位置):
尝试在该位置输入js代码:
上面发现,文本框对输入内容加了长度限制,前端代码加的限制可解除,解除限制:
使用开发者工具(F12),修改 maxlength=20000
,这样文本框中就可以输入更多字符:
提交:
说明,刚刚输入的代码直接执行了,即此处存在XSS(反射型)漏洞!
查看此时的源代码:
刷新页面,因为是反射型XSS漏洞,内容不会被保存。
url分析:
http://127.0.0.1/pikachu/vul/xss/xss_reflected_get.php?message=%3Cscript%3Ealert%281%29%3C%2Fscript%3E&submit=submit
通过该漏洞,可以发给服务器执行任何js代码!
GET是以url方式提交数据;
POST是以表单方式在请求体里面提交;
GET方式的XSS漏洞更加容易被利用,一般利用的方式是将带有跨站脚本的url伪装后发送给目标,而POST方式由于是以表单方式提交,无法直接使用url方式进行攻击,如何利用?
(adsbygoogle = window.adsbygoogle || []).push({});