一,XSS含义及解释
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
--百度百科
个人理解为xss是注入攻击的一种,只不过它的注入是将html,或javascript等代码,在用户可控,可输入的点被当作代码执行了,结合实际环境实现自身希望实现的功能,从而扩大了用户原本的权限
二,XSS漏洞分类
1,反射性XSS
反射性XSS是在框中插入payload后,将数据发送给服务器后,服务器根据发送来的数据进行处理后,再将数据传回浏览器时,原来插入的payload就会被浏览器当作代码解析执行,从而触发XSS漏洞。
2,存储型XSS
存储型XSS同样是在框中插入payload,将数据发送到服务器,服务器进行响应,并将框中插入的payload存储到数据库中,当下次或者别的用户请求该资源的时候,从数据库中提取出来,传回用户浏览器时,被浏览器当作代码执行,触发XSS漏洞。
3,DOM型XSS
DOM型XSS是利用javascript代码来改变页面原本的DOM树结构,从而造成对页面的修改,此类型XSS不会将payload发送到服务器,而是直接由浏览器完成解析并执行产生得结果,触发DOM型XSS。
五,XSS危害
1,网站弹框:可以在具有XSS漏洞的网页插入弹框代码,显示其他网站的信息,达到引流量的效果。
2,网页挂马:在可注入的点,链接上攻击者准备的木马或病毒,当受害者访问网页时下载并在受害者终端自行启动。
3,钓鱼页面:攻击者复制用户原本需要访问的登录页面等,当受害者访问网页时跳转到攻击者构造的钓鱼页面,从而会将自身的认证信息发送到攻击者邮箱。
4,获取cookie:有的网站可能会将用户认证信息存储在cookie中,当攻击者获取到用户的cookie时,就可以使用cookie直接进行登录认证。
5,劫持用户浏览器:XSS漏洞结合beef,可以对受害者的浏览器进行控制
6,传播XSS蠕虫病毒: 了解不详
7,DOS攻击
六,XSS注入点
总结一点,凡是用户可控的地方都可插入。
七,XSS payload构造
1,标签闭合
2,使用html事件触发
常用事件:
3,使用javascript伪协议
通常在具有src属性得标签中使用
八,XSS绕过技巧
1,大小写混合绕过
2,双写绕过
3,编码绕过
url编码,hex编码,html实体编码,jsfuck编码,UTF-7编码
4,新生的标签
5,以上4中绕过方式可以混合搭配使用
九,XSS防御
对用户输入的内容进行严格把控,转义和过滤。