前文:
Pikachu靶机系列之安装环境
Pikachu靶机系列之暴力破解(一)
Pikachu靶机系列之暴破(二):token防爆破
1.反射性XSS;
2.存储型XSS;
3.DOM型XSS;
要构造完整的payload可是长度不够,只能修改一些maxlength长度了
构造的payload为
<script>alert("hack")</script>
<script>alert("hack")</script>
输入后审看元素以发现我们在输入框输入的数据会被直接拼接在
标签所以只有闭合上a标签就能随意插入代码弹框
#' οnmοuseοver="alert(/xss/)">
unction domxss(){
var str = window.location.search;
var txss = decodeURIComponent(str.split("text=")[1]);
var xss = txss.replace(/\+/g,' ');
// alert(xss);
document.getElementById("dom").innerHTML = "就让往事都随风,都随风吧";
}
//试试:'><img src="#" onmouseover="alert('xss')">
//试试:' οnclick="alert('xss')">,闭合掉就行
老pyload测试,提交完后怎么搞??才发现还有个提示,点击提示
登录后台,看会发生啥?后台登录地址是/xssblind/admin_login.php
用大小写绕过即可
> ENT_COMPAT - 默认。仅编码双引号。
> ENT_QUOTES - 编码双引号和单引号。
> ENT_NOQUOTES - 不编码任何引号。
tmlspecialchars()函数把预定义的字符转换为 HTML实体。
预定义的字符是:
& 转为
&
" 转为"
’ 转为'
< 转为<
>
转为>
输入payload,6666666有味道了,那就”<>’/script(
审查源代码发现 " ,>和<都经过了编码,剩下的字符没有,的确单引号依然可以使用,payload如下
' οnclick=alert(‘hack’) '
javascript:alert(hack)
提交后查看源码,我们的输入在 a 标签的 href属性中, 此时点击我们的标签就会出现弹窗
那么,我们只需要考虑闭合,即可构造XSS,输入
Payload:'
,成功弹窗。