XSS漏洞详解

  

Xss漏洞介绍:

  

跨站点脚本,简称为XSS或跨站脚本或者跨站脚本gongji。是一种针对网站或者应用程序的漏洞gongji技术,也是利用代码注入的一种。它允许恶意用户将代码注入网页,其他用户浏览网页时将会受到影响。
XSS gongji分为三类:反射型,存储型,DOM型

  

XSS漏洞原理及利用:

  

反射型XSS
反射型XSS又称非持久型XSS,gongji方式仅具有一次性。
gongji方式:gongji者通过包含XSS代码的恶意链接发送给受害者,当受害者访问该连接时,服务器接收该受害者用户的请求并进行处理,然后服务器把带有XSS代码的数据发送给受害者用户的浏览器,浏览器解析这段包含XSS代码的恶意脚本,就会触发XSS漏洞,完成gongji。
利用
我们用dvwa来展示基础的XSS利用
XSS漏洞详解
在输入框中输入,点击submit即可弹出
XSS漏洞详解
存储型XSS
存储型XSS又称持久型XSS,恶意脚本将被永久的保存在服务器的数据库或者文件中。
gongji方式:多见与论坛,博客以及网站留言板。gongji者在发帖,留言的过程中,将恶意XSS脚本连同正常信息注入内容,随着帖子,留言板被服务器存储下来,恶意XSS脚本也将保存在服务器中,当其他用户浏览帖子或者留言时,恶意XSS脚本会在他们的浏览器中执行。
利用
XSS漏洞详解
在message框中输入,点击sign即可弹出xss
XSS漏洞详解
此时查看页面源代码
XSS漏洞详解
可以看到我们的恶意代码成功保存在服务器上
DOM型XSS
全称Document Object Model,使用DOM可以使程序和脚本能够动态访问更新文档的内容,结构及样式。
DOM型XSS是一种特殊类型的反射型XSS,基于DOM文档对象模型的一种漏洞。
gongji方式:用户请求一个经过专门设计的链接,由gongji者提交且包含恶意XSS代码,服务器的响应不会以任何形式包含gongji者的脚本,当受害者的浏览器处理这个响应时,DOM对象就会处理XSS恶意代码。
利用
XSS漏洞详解
图中DOM型XSS例子为再输入框里输入内容点击替换,会在“这里会显示输入的内容”替换为输入的信息
XSS漏洞详解
我们在输入框中输入XSS漏洞详解

  <人力资源/>   

# #这里为DOM型XSS漏洞源码
& lt; html>
& lt; head>
& lt;元http-equiv=癈ontent-Type"内容=皌ext/html; charset=utf-8"/在
& lt; title> Test
& lt;脚本类型=拔谋?javascript"在
函数tihuan () {
. getelementbyid (“id1")。innerHTML=. getelementbyid (“dom_input") value;
}
& lt;/script>
& lt;/head>
& lt; body>
& lt; center>
& lt; h7 id=癷d1"在这里会显示输入的内容& lt;/h7>
& lt;表单动作=?“方法=皃ost"祝辞
& lt;输入类型=皌ext"id=癲om_input"价值=https://www.yisu.com/zixun/笔淙?>

& lt;输入类型=癰utton"value=https://www.yisu.com/zixun/"替换" onclick=" tihuan () ">
& lt;/form>
& lt; hr>

  
 <代码> & lt;/center>  
  

& lt;/body>
& lt;/html>

  <人力资源/>   

单击替换时会执行tihuan()函数,而tihuan()函数是一个DOM操作,通过文档,getElementById获取ID为id1的节点,然后将节点id1的内容修改成ID为dom_input中的值。

  

XSS常用语句及编码绕过

  

<代码> XSS常用测试语句:
& lt; script>警报(/XSS) & lt;/script>
& lt; img src=https://www.yisu.com/zixun/1 onerror=警报(/XSS)>
& lt; svg onload=警报(/XSS)在
& lt; a href=javascript:警报(/XSS)在
常见的XSS编码绕过有js编码,html实体编码,url编码
<代码> js编码代码
js提供了四种字符编码的策略
三位八进制数字,如果个数不够,在前面补0,例如“e"的编码为“145 \“
两位十六进制数字,如果个数不够,在前面补0,例如“e"的编码为“\ x65"

XSS漏洞详解