看图说话:反射式XSS(跨站)漏洞示例
Posted 软件测试经验与教训
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了看图说话:反射式XSS(跨站)漏洞示例相关的知识,希望对你有一定的参考价值。
★安全测试之XSS漏洞(二)★
读书与实践是获取知识的主要渠道,学习的权力只掌握在每个人自己手中,让学习成为一种生活的习惯,这比任何名牌大学的校徽重要得多!
——张老师
张老师寄语
导图
1 反射型XSS漏洞是什么?
2.如何判断是否存在反射型XSS攻击风险?
3.反射型XSS漏洞攻击的场景?
4.怎么避免反射型XSS漏洞攻击?
1. 反射型XSS漏洞是什么?
上一篇文章中我们讲到了XSS漏洞有两种类型:存储型和反射型(实际上还有一种是基于DOM的XSS),也提到了反射型XSS漏洞的特点,即:恶意代码并没有保存在目标网站,而是通过引诱用户点击一个恶意链接来实施攻击。这类恶意链接有哪些特征呢?
主要有:
恶意脚本附加到 url 中,只有点击此链接才会引起攻击
不具备持久性,即只要不通过这个特定 url 访问,就不会有问题
xss漏洞一般发生于与用户交互的地方
举个例子,比如我们在访问一个链接的时候(http://102.3.203.111/Web/reflectedXSS.jsp?param=value...),这个URL中就带了参数(param=value...),如果服务端没有对参数进行必要的校验,直接根据这个请求的参数值构造不同的html返回,让value出现在返回的html中(JS,HTML某元素的内容或者属性)并被浏览器解释执行,就可能存在反射型XSS漏洞。
可能有人会问,用户怎么可能把value改成可以执行的恶意代码呢?这不是自己坑自己吗?而且用户也不知道怎么改成恶意代码啊?而且这个“恶意代码”又是怎么传递给其他用户呢?疑问暂且保留,我们继续往下看。
我们用一张图来解释XSS漏洞攻击的原理:
上图中,攻击者(黑衣人)骗取用户信任,构造一个带有跨站脚本的链接,诱骗用户点击(第2、3步),跨站脚本在服务端(WEB应用程序)上没有被过滤,直接返回用户浏览器(第4步),用户浏览器执行恶意脚本(第5步),后面发生的事情就像第6、7步描述的那样。
2. 如何判断是否存在反射型XSS攻击风险?
上面提到,反射型XSS漏洞的前提是可以在url中附加参数,那么问题来了:应该如何构造“恶意参数”呢?
是不是只要能懂得构造“恶意参数”,并且用它来完成测试,就可以判断出系统是否存在反射型XSS漏洞呢?
并非所有系统都支持在url中添加参数,那么不支持在url中添加参数的系统是否就代表不存在XSS漏洞呢?
思考了上面这几个问题,我想我们基本可以总结出做反射型XSS漏洞测试的思路了:
以上是关于看图说话:反射式XSS(跨站)漏洞示例的主要内容,如果未能解决你的问题,请参考以下文章