XSS漏洞基础
Xss漏洞简介
跨站脚本(XSS)又称跨站脚本攻击,是一种针对程序的安全漏洞攻击,是代码注入的一种。它允许恶意的用户将代码注入网页,其他用户在浏览网页时就会收受到影响。恶意用户利用xss漏洞攻击成功后,可以得到被攻击者的Cookie信息
xss漏洞分成三种:反射型,存储型,和Dom型
Xss漏洞原理
反射型xss漏洞
反射性xss漏洞又称非持久性xss漏洞,这种攻击方式往往是一次性的
攻击方式:可以通过邮件将包含xss代码的恶意链接发送给目标用户。当用户访问该链接时,服务器会接收该目标用户的请求并进行处理,然后服务器把带有xss代码的数据发送给目标用户的浏览器,浏览器解析xss恶意代码后,就会触发
存储型xss漏洞
又称持久性xss漏洞,攻击脚本将被永久(未被管理员发现)地存放在目标服务器的数据库或文件中,具有很高的隐蔽性
攻击方式:多见于论坛,博客,留言版,攻击者发帖的过程中,将恶意脚本连同正常信息一起注入帖子内容,被服务器保存
。当其他用户浏览了这个被注入恶意脚本的帖子时,恶意脚本会在他们都浏览器中得到执行
<script>alert(/你已经被攻击/)</script>
这段代码表示,其他用户访问留言版时会跳出弹窗
DOM型xss漏洞
DOM(文档对象模型) 使用DOM语句动态访问和更新文档的内容,结构及样式
dom型xss漏洞是一种特殊型的反射型xss漏洞,它是基于dom文档对象的一种漏洞
攻击方式:用户请求一个经过专门设计的URL,它是攻击者提交,而且其中包含xss代码。服务器的响应不会以任何形式包含攻击者的脚本。当用户的浏览器处理这个响应时,DOM就会处理xss代码,导致存在xss漏洞
反射型xss漏洞攻击案列
输入,输出一致
#当输入下面代码时,出现弹窗
" ><img src=1 onerror=alert(/xss/) />
出现弹窗的原因
原来的代码
<input type="text" value="
是输出到页面的html代码变成
<input type="text" value=" "><img src=1 onerror=alert(/xss/) />">
<img src=1 onerror=alert(/xss/) />#这段代码中alert()的作用是让浏览器弹窗显示 /xss/
重点在意 输入的"闭合了",>闭合了< 导致输入的<img src=1 onerror=alert(/xss/) /> 变成了HTML标签
存储型xss漏洞攻击案例
存储型xss页面实现的功能包括:获取用户输入的留言信息,即标题的内容个,然后将标题和内容插入数据库中,并将数据库的留言信息输出到页面上
标题输入1,内容输入1
当输入标题为
<img src=x onerror=alert(/xss/) />
出现弹窗
DOM型漏洞攻击案例
DOM型漏洞攻击页面实现的功能是在输入框中输入信息,单击替换按钮时,页面会将这里显示输入的内容替换为输入的都信息,如输入
11后单击替换按钮,页面会将这里显示输入的内容替换为11
在输入了
<img src=1 onerror=alert(/xss/)>之后
会出现弹窗
>之后
会出现弹窗
#xss漏洞常用的测试语句有以下几种
<script>alert(1)<alert(1)>
<img src=x onerror=alert(1)>
<svg onload=alert(1)>
<a href=javascript:alert(1)>