(实验基础:有php语言和html语言基础)
1、low
在Name里构造恶意脚本,写完10个字符后发现在输输不进去,此时按ctrl+u(火狐,Microsoft Edge,谷歌这三款浏览器都可用此快捷方式打开网页源码)可以查看网页源码,
发现Name可输的最大长度为10,Message可输的最大长度为50
可以在Message里构造恶意脚本
因为是存储型XSS,为了防止前面的实验影响,所以需清空数据库。
点击:
2、medium
使用low等级构造的恶意脚本攻击时发现失败,因此查看php源码
发现message被进行了htmlspecialchars限制且name被进行了str_replace限制,并且它们都被进行了字符个数限制,所以用Bp代理绕过前端防护即绕过name字数限制,因为htmlspecialchars无法绕过,所以只能从name入手。
代理浏览器用的是火狐,如何设置火狐和Bp代理请看我之前写的博客火狐浏览器代理设置:
https://blog.csdn.net/m0_56267052/article/details/122285632?spm=1001.2014.3001.5502
没改之前抓到的数据包
然后将其改成需执行的恶意脚本,放行
然后成功
name被进行了str_replace限制且没对大小写过滤,所以可用大小写绕过
也可用双写绕过即
中级测试做完后,清空数据库
3、high
用之前两次构造的恶意脚本攻击发现都没用,此时再次查看php源码
发现对name进行了preg_replace的限制且大小写忽略,继续用Bp代理绕过前端防护即绕过name字数限制所以用标签绕过
构造恶意脚本攻击:<body οnlοad=alert(1)> ---------->onload 事件会在页面或图像加载完成后立即发生。onload 通常用于 <body> 元素,在页面完全载入后(包括图片、css文件等等。)执行脚本代码。
/ <img src=1 οnerrοr=alert(1)>------------>图片加载不了时执行onerror对应的内容
然后将其改成需执行的恶意脚本(用body标签绕过),放行
用img标签绕过
XSS (Reflected)看我之前写的博客
https://blog.csdn.net/m0_56267052/article/details/122274720?spm=1001.2014.3001.5502