Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

xiaof 2020-02-12

XSS(跨站脚本)概述
    Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:
        1.反射性XSS;
        2.存储型XSS;
        3.DOM型XSS;

危害: 存储型>反射型>DOM型

1.反射型XSS(get)

Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

随便输入,  输入   ‘  "  <>  特殊字符都可以原封不动得输出      可以发现没有任何过滤,

 

Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

只是限制了输入字符的长度,F12修改一下即可  因为一般 前端中得输入框 会做一个长度得限制,  我们将他修改为20000

Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

<script>  alert("你好,我是一个警告框!") ;</script>    //   弹窗得语法

Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本                    Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

查看后台代码,发现 后台代码并没有对你输入得东西 做任何修改 只是原封不动得输出了

Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

总结:  随便输入,可以发现没有任何过滤,只是限制了输入字符的长度,F12修改一下即可, 

           后台不会存储数据,  刷新后 不会弹窗!

输入kobe     会生成链接     http://192.168.50.100/pikachu/vul/xss/xss_reflected_get.php?message=kobe&submit=submit#

Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

2.反射型XSS(post)

Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

admin  123456  登陆成功后 显示 

Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

输入 kobe  会以post方式提交请求  http://192.168.50.100/pikachu/vul/xss/xsspost/xss_reflected_post.php#

Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

这种情况下 无法将恶意代码 发送到后端  

Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

提前写好  html页面 发送给用户 和用户点击 就可以获取cookie值

Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

3.存储型XSS

Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

提交留言后刷新  会一直存储在留言板上  后台有数据  这就是 和反射型xss一个区别

‘ " <> ?   6666666   输入特殊字符 发现没有过滤  

查看前端代码

Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

我们输入  <script>  alert("xss") </script>   会出现一个弹窗

   Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

我们查看后台代码

判断message是否存在 并且 message不为空

进行了转义 防止sql注入

插数据库的时候 做了对应的转义 防止数据库的注入  把massage 插入到表中  存下来 存到后台

Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

将存储得留言 都显示出来

Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

4.DOM型XSS

    DOM学习链接:   https://www.w3school.com.cn/htmldom/index.asp

Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

 你可以理解为DOM为一个一个访问html的标准编程接口

输入1111

Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

 

初步观察,点击 click me! 后会出现 what do you see? 的链接按钮,
其指向是 当前目录/you_input 审查元素时发现onclick后会执行函数 domxss() ,其作用是读取input的值并将其拼接到新创建的link节点中,

查看代码

有一段script的代码  他获取了id=text的值  输出了  通过字符串拼接方式 

Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

 Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

 构造闭合方式

"<a href=‘  "+str+"  ‘>     what do you see?</a>";

"<a href=‘    ‘  >             what do you see?</a>"

"<a href=‘ #‘   onclick="alert(111)">    ‘   what do you see?</a>"

                    #‘ onclick="alert(111)">

实际会出现<a href=‘ #‘   闭合

剩下  >‘what do you see?  显示到下方

点击  onclick="alert(111)"会出现弹窗    111

 

Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

5.DOM型XSS-X

 Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本输入后显示   Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

查看源代码,发现代码获取的是url的text  值

Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

"<a href=‘  "+str+"  ‘>就让往事都随风,都随风吧</a>"

"<a href=‘    ‘  >          就让往事都随风,都随风吧</a>"

"<a href=‘ #‘   onclick="alert(111)">    ‘  就让往事都随风,都随风吧</a>"

                    #‘ onclick="alert(111)">

   构造 #‘ onclick="alert(111)">

弹窗

 Pikachu漏洞平台---XSS(Cross-Site Scripting) 跨站脚本

6.XSS之盲打

7.XSS之过滤

8.xss之htmlspecialchars

9.xss之href输出

 

 

10xss之js输出

相关推荐