Xss漏洞实战:
一、XSS漏洞(反射型):
low等级:
进入dvwa靶场将等级调为low 进入xss反射型漏洞模块
尝试使用简单的JavaScript语句在输入栏中进行xss攻击
代码:<script>alert('XSS')</script>
成功弹窗出XSS
发现low等级对XSS漏洞攻击没有任何防御措施
Medium等级:
将靶场难度调成medium等级
使用low等级的简单的JavaScript语句攻击方式 发现<script>部分被过滤掉了通过查看网页后端代码发现medium等级过滤了<script>标签
此时可以尝试将<script>标签更换大小写尝试绕过
代码格式:<SCript>alert('XSS')</SCript>
成功弹窗
同时针对过滤<script>标签的方式尝试使用双写<script>来绕过
格式:<scr<script>ipt>alert(‘xss’)</script>
弹窗成功
high等级:
在high等级中 尝试使用low等级和medium等级的攻击手段发现都失败
通过查看后端代码发现high等级使用的replace函数对<script>进行了彻底的过滤 并且针对/符号也进行了过滤
此时可以尝试换种方式使用img标签进行xss攻击
代码:
弹窗成功
Impossible等级:
使用了htmlspecialchars函数:将/ & < > 等特殊的字符全部过滤使得xss攻击不能实现
二、XSS漏洞(存储型):
low等级:
进入low等级的xss存储型模块
尝试通过简单的JavaScript语句进行攻击
发现存储型xss的name输入栏有着字符限制
通过网页检查找到页面中name输入栏的代码字段 并进行修改(实验中将数值修改为了100 可以自定义 够用就好)
name输入栏可以输入长度为100的字段 没有字符限制了
注:也可以使用Temper Date之类的浏览器插件进行前端绕过 具体情况具体分析
使用简单的JavaScript语句 注入成功 发现low等级的反射性xss基本没有任何防御措施
Medium等级:
使用low等级的攻击方式 发现<script>被过滤:
通过查看后端代码发现同存储型xss相同 也是过滤了<script>标签
注:此时要重新修改name输入栏的长度限制进行绕过
同样使用双写或者大小写穿插的方式 成功弹窗(同反射型XSS防御手段基本相同 注入的JavaScript命令也相同)
high等级:
注:此时要重新修改name输入栏的长度限制进行绕过
在high等级使用low等级和medium等级的攻击方式都不能成功
同反射性xss相同 在存储型xss注入high等级中 同样使用了replace函数对<script>标签进行了彻底的过滤
尝试img标签进行攻击
代码:
弹窗成功
版权归原作者 川阿川 所有, 如有侵权,请联系我们删除。