xss场景与挖掘思路
只要用户的输入最终返回到浏览器上,则就有可能被当成javascrip解析,从而造成xss。
xss分类
存储型
用户的输入将会保存在数据库中。比如常见的评论,用户昵称都会保存在数据库中,当此类数据没有进行过滤,直接返回到浏览器上,则可能会当成javascript执行。
盲打:只有特定人员才能看到用户录入的信息,比如意见反馈管理员,盲打原理比如通过img的src,通过是否访问构造的链接进行判断是否触发了xss
反射型
与存储型的区别在于,此类信息并不会保存在数据库中,到达服务器后,又传回到了浏览器。比如有些搜索功能,会在页面显示输入的字符串。
DOM型
用户的输入,被站点本身的javascript使用,比如更新标签的值,或创建新的节点。
xss场景总结
存储型常见场景
- 用户账号、昵称、评论、留言板、文章标题、文章正文
- 意见反馈
反射型常见场景
- 搜索功能
DOM型常见场景
早些年会通过javascript直接进行跳转
window.location.assign("https://www.runoob.com");
window.location.replace("https://www.runoob.com");
window.location.href = "https://www.runoob.com";
于是可以通过javscript触发
var h = "javascript:alert(1)";
window.location.replace(h);
触发DOM总结
document.write("<svg