Pikachu-Cross-Site Scripting(XSS)

反射型xss(get)

先尝试最简单的payload,发现不能输入了,查看html代码定位到这个输入框发现最大长度只能输入20

直接通过修改html源代码,将payload输入完毕,完成漏洞

反射性xss(post)

根据提示输入用户名和密码,此处的用户名和密码由之前的爆破得到

进入之后我们输入payload获取cookie

payload:<script>alert(document.cookie)</script>

存储型xss

直接输入payload

123123asdfasf
<img src="1" onerror=alert("attack")> 

DOM型xss

输入内容后发现这个就是下面的连接内容

使用与标签契合的payload,可以看到标签改变了,那么点击就能获取到cookie

payload:javascript:alert(document.cookie)

这题也可以使用闭合的方法,但是发现是单引号,这里我不太理解为什么是单引号,求各路大神指点指点

payload:'> <img src="1" onerror=alert(1)>

DOM型xss-x

这题就是在上一题的基础上多加了一个链接跳转,payload与上一题一样,无差别

xss盲打

直接在界面上输入payload,但是看不到任何效果,我们通过后台登录查看

登录后台查看,已经生效

xss之过滤

先输入一段payload看看有什么反应,好像是被过滤了

试试大小写绕过,成功

xss之htmlspecialchars

什么是htmlspecialchars?

htmlspecialchars(),函数功能就是把特殊符号,比如尖括号,引号转换成实体编码,这样就不会再输入的地方去干扰页面源代码。经过实体字符编码后,用户输入的特殊符号在源代码中就变成编码,但是在页面输出的时候,还是会显示成原来的样子。当输出位置在元素内容里面,并且被实体编码后,基本上就没有XSS的可能了。

先输入一段正常的payload,查看源代码

发现有些东西被转义成了html实体编码,我们避免输入这些,想办法进行绕过

可以看到这个是与标签有关的payload

payload:javascript:alert(1)

xss之href输出

先输入一段payload提交,看到是a标签

使用javascript:alert(1)

xss之js输出

先输入内容,查看源代码

接下来绕过

posted @ 2022-11-14 22:02  诗酒于人  阅读(42)  评论(0)    收藏  举报