pikachu+Cross-Site Scripting(XSS)

目录

3.2 反射型XSS(post)

3.3 存储型XSS

3.4 DOM型xss

3.5 DOM型xss-x

3.6 xss之盲打

3.7 xss之过滤

3.8 xss之htmlspecialchars

3.9 xss之href输出

3.10 xss之js输出


3.1 反射型XSS(get)

进入靶场,如图3.1.1

pikachu+Cross-Site Scripting(XSS)_第1张图片

图3.1.1

根据我们前面的测试流程,我们首先输入一些特殊字符和唯一识别字符,如图3.1.2

pikachu+Cross-Site Scripting(XSS)_第2张图片

图3.1.2

结果如下,如图3.1.3

pikachu+Cross-Site Scripting(XSS)_第3张图片

图3.1.3

输入测试代码查看是否有过滤,查看下源码。如图3.1.4

pikachu+Cross-Site Scripting(XSS)_第4张图片

图3.1.4

测试代码直接在p标签中输出,直接使用但发现对长度有限制,定位输入框直接修改长度,如图3.1.5

pikachu+Cross-Site Scripting(XSS)_第5张图片

图3.1.5

成功执行,如图3.1.6

pikachu+Cross-Site Scripting(XSS)_第6张图片

图3.1.6

3.2 反射型XSS(post)

进入靶场,如图3.2.1

pikachu+Cross-Site Scripting(XSS)_第7张图片

图3.2.1

先登陆 admin 123456,如图3.2.2

pikachu+Cross-Site Scripting(XSS)_第8张图片

图3.2.2

登入后直接输入payload: 触发弹窗,如图3.2.3

pikachu+Cross-Site Scripting(XSS)_第9张图片图3.2.3

3.3 存储型XSS

进入靶场,如图3.3.1

pikachu+Cross-Site Scripting(XSS)_第10张图片

图3.3.1

输入测试代码,查看是否有过滤,如图3.3.2

pikachu+Cross-Site Scripting(XSS)_第11张图片

图3.3.2

我们发现我们的留言会一直存在,而且从表现上我们输入的内容直接输出了,下面通过源码观察,如图3.3.3

pikachu+Cross-Site Scripting(XSS)_第12张图片图3.3.3

测试代码直接输出在了p标签中,可以直接输入,如图3.3.4

pikachu+Cross-Site Scripting(XSS)_第13张图片

pikachu+Cross-Site Scripting(XSS)_第14张图片

图3.3.4

3.4 DOM型xss

进入靶场,如图3.4.1

pikachu+Cross-Site Scripting(XSS)_第15张图片

 图3.4.1

输入测试代码,如图3.4.2

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55G2fndoeQ==,size_13,color_FFFFFF,t_70,g_se,x_16

图3.4.2

显示的内容和我们的输入的有所不同查看页面源码,如图3.4.3

pikachu+Cross-Site Scripting(XSS)_第16张图片 图3.4.3

getElementById获取标签id为text的值给str,str通过字符串拼接到a标签中。所以我们要闭合前面的标签,如图3.4.4

pikachu+Cross-Site Scripting(XSS)_第17张图片图3.4.4

点击what do you see,便会触发弹窗,如图3.4.5

pikachu+Cross-Site Scripting(XSS)_第18张图片图3.4.5

3.5 DOM型xss-x

进入靶场,如图3.5.1

pikachu+Cross-Site Scripting(XSS)_第19张图片

图3.5.1

点击请说出你的伤心往事就会弹出一句话,如图3.5.2

pikachu+Cross-Site Scripting(XSS)_第20张图片

图3.5.2

查看下页面源码,如图3.5.3

pikachu+Cross-Site Scripting(XSS)_第21张图片pikachu+Cross-Site Scripting(XSS)_第22张图片图3.5.3

domxss函数,使用window.location.search获取url的赋值值给str,经过url解码,取出的内容赋值给txss,将txss中的 “+” 替换为 “空格” 赋值给xss,最后将xss拼接到a标签中。和上面的方法相同,payload需要闭合标签,如图3.5.4

pikachu+Cross-Site Scripting(XSS)_第23张图片

图3.5.4

当鼠标移动到图片位置就会触发弹窗,如图3.5.5

pikachu+Cross-Site Scripting(XSS)_第24张图片图3.5.5

3.6 xss之盲打

进入靶场,如图3.6.1

pikachu+Cross-Site Scripting(XSS)_第25张图片

图3.6.1

输入常规的payload:,点击提交后发现这里提示一段文字,应该是直接打到后台了,如图3.6.2

pikachu+Cross-Site Scripting(XSS)_第26张图片

图3.6.2

找到后台,如图3.6.3

pikachu+Cross-Site Scripting(XSS)_第27张图片

图3.6.3

登录进去,如图3.6.4

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55G2fndoeQ==,size_20,color_FFFFFF,t_70,g_se,x_16图3.6.4

登陆到后台时就会遭受攻击,如图3.6.5

pikachu+Cross-Site Scripting(XSS)_第28张图片图3.6.5

3.7 xss之过滤

进入靶场,如图3.7.1

pikachu+Cross-Site Scripting(XSS)_第29张图片

 图3.7.1

输入下面的内容,如图3.7.2

pikachu+Cross-Site Scripting(XSS)_第30张图片

图3.7.2

查看后端源码,发现对 ,成功弹窗,如图3.7.4

pikachu+Cross-Site Scripting(XSS)_第32张图片图3.7.4

3.8 xss之htmlspecialchars

进入靶场,如图3.8.1

pikachu+Cross-Site Scripting(XSS)_第33张图片

图3.8.1

输入下面的内容,如图3.8.2

pikachu+Cross-Site Scripting(XSS)_第34张图片

图3.8.2

查看页面源码,如图3.8.3

pikachu+Cross-Site Scripting(XSS)_第35张图片

图3.8.3

可以看到<,>,“都做了转码,唯独”’"(单引号)没有进行转码,可以使用单引号构造payload,如图3.8.4

pikachu+Cross-Site Scripting(XSS)_第36张图片

图3.8.4

3.9 xss之href输出

进入靶场,如图3.9.1

pikachu+Cross-Site Scripting(XSS)_第37张图片

图3.9.1

输入下面的内容,如图3.9.2

pikachu+Cross-Site Scripting(XSS)_第38张图片

图3.9.2

查看页面源码,如图3.9.3

pikachu+Cross-Site Scripting(XSS)_第39张图片

图3.9.3

过滤了 ’,“,<,> 这时候我们可以尝试使用伪协议绕过,如图3.9.4

pikachu+Cross-Site Scripting(XSS)_第40张图片图3.9.4

3.10 xss之js输出

进入靶场,如图3.10.1

pikachu+Cross-Site Scripting(XSS)_第41张图片

图3.10.1

输入下面的内容,如图3.9.2

pikachu+Cross-Site Scripting(XSS)_第42张图片

图3.10.2

查看页面源码,如图3.9.3

pikachu+Cross-Site Scripting(XSS)_第43张图片

图3.10.3

输入的代码被生成再js中并赋值给$ms。既然我们的输入被带入到js中,可以闭合,如图3.10.4

pikachu+Cross-Site Scripting(XSS)_第44张图片图3.10.4

你可能感兴趣的:(pikachu靶场通关,xss,前端,web安全)