1.原理
指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响的HTML语句或JS脚本,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。通过在用户端注入恶意的可执行脚本,若服务器对用户的输入不进行处理或处理不严,则浏览器就会直接执行用户注入的脚本。
容易出现在数据交互的地方,例如点赞/评论,博客等数据交互的地方。
2.分类
2.1 反射型(非持久)
- 攻击方式:这种xss,需要攻击者提前构造好,让被攻击者点击才能实现。
- 攻击条件:反射型xss利用条件比较苛刻,首先你要知道谁是管理员,接着你要将构造好的连接发送给管理员,然后还要确保xss链接能够成功触发(现在有的浏览器有一定保护机制,如:我们拦截了某些功能)。
- 分类:可以分为两种,一种是可以在url框内直接构建xss攻击链接的,另一种是需要通过抓包然后修改信息来构建成xss攻击连接。
2.2 存储性(持久性)
存储性xss,一般是直接写入到数据库之中,常见的地方如评论区,日志,留言板等地方,危害性极大。
2.3 dom型
接受数据输入和输出都是利用JS语言在前端进行数据交互,构造是在html代码中,所以我们如果要挖掘漏洞,要对html代码有一定掌握。(存储型和反射型则是前段和后端的交互)