如何进行安全测试-XSS篇

XSS分为三类:Stored XSS、Reflected XSS、Dom-Base XSS

(1)Stored XSS,即存储式跨站攻击,存储式跨站攻击简单来说就是攻击者提交给网站的数据会提交并永久保存到服务器的数据库或者是文件系统等其他地方,之后不做任何编码操作就会显示在web页面上。这是最厉害的攻击方式。这种攻击方式影响比较大,影响的用户范围广

例如1:在一个网站的一些留言板或者新闻等可以输入的地方,输入一下代码:

<script>alert(document.cookie)</script> 或者其他功能更强大的js 
  • 1

因为这个是留言板上或者评论等的内容,会被读取并且存储到服务器上,如果不作任何处理,当其他用户访问这个网页的时候,就会弹出一个关于cookie的警告信息。

例如2:在评论的时候输入<script type="text/javascript">alert("you are a foolish person")</script>,如果不进行处理,这个信息会被当做正常的留言存储到服务器,那个接下来每个访问这个页面的用户都会收到you are a foolish person的alert信息,会造成很大的影响。(可用于窃取密码,用户信息等)

(2)Reflected XSS,即反射跨站脚本攻击,这是最常见的攻击方式。所谓反射,就是等着服务器所给的返回。我们在进行测试时依据的就是在自己页面上的简单注入。在web客户端提交了数据后,服务端马上给这个请求生成返回结果页,如果结果中包含了未验证的客户端输入数据,那就表示会允许客户端脚本直接注入到页面里,也就出现了这样一个漏洞。简单举个例子,在搜索引擎里边,我们如果搜索了一个包含html代码的字符串,如果返回的字符串仍然没被编码,那么搜索的内容就不是整个html代码了,而是只想过这个html代码,那就是存在XSS漏洞了。

(3)Dom-Base XSS,即基于DOM的XSS攻击,它是修改页面DOM节点数据信息而形成的XSS跨站脚本攻击,该漏洞多见于客户端脚本,意思就是如果一个js访问需要参数的url,并且需要把信息作用于自己当前的页面,信息又未被编码,就会出现该漏洞。

例如:好多网站在网址后边带个参数(?XXX的),当看到这种情况时候,我们可以在参数后边加个,如果加了这个参数之后,这段script代码不被编码就输出,那就证明它具有这么一个漏洞。 在某个参数中输入以下内容:

><script>alert(document.cookie)</script>

=’><script>alert(document.cookie)</script>

<script>alert(document.cookie)</script>

<script>alert(vulnerable)</script>

<script>alert(’XSS’)</script>

"onfocus="alert(document.cookie)

<imgsrc=/uploadfile/2015/0301/20150301105236644.png” nerror=”alert(’XSS’)”>

<divstyle=”height:expression_r(alert(’XSS’),1)” />(这个仅限 IE 有效)

对于自身的网站最好可以借助一下工具:http://www.freebuf.com/sectool/43194.html

快速、直接的XSS漏洞检测爬虫 – XSScrapy

XSScrapy的XSS漏洞攻击测试向量将会覆盖

Http头中的Referer字段
User-Agent字段
Cookie
表单(包括隐藏表单)
URL参数
RUL末尾,如 www.example.com/<script>alert(1)</script>
跳转型XSS

http://www.cnblogs.com/TankXiao/archive/2012/03/21/2337194.html
时间: 2024-10-03 22:42:05

如何进行安全测试-XSS篇的相关文章

Android开源项目第四篇——开发及测试工具篇

本文为那些不错的Android开源项目第四篇——开发工具篇,主要介绍Android开发工具和测试工具相关的开源项目. Android开源项目系列汇总已完成,包括: Android开源项目第一篇——个性化控件(View)篇 Android开源项目第二篇——工具库篇 Android开源项目第三篇——优秀项目篇 Android开源项目第四篇——开发及测试工具篇 Android开源项目第五篇——优秀个人和团体篇 1.Buck facebook开源的Android编译工具,效率是ant的两倍.主要优点在于

【MIG专项测试组】移动应用电量消耗测试入门篇

如何评价我们开发出来的应用是耗电还是不耗电,如何测试?这就是我们今天讨论的主题--电量测试,一个在移动应用中新出现的测试类型. 移动设备从之前的诺基亚.摩托罗拉等功能机到现在android.iOS等智能机,手机已经越来越普及,功能越来越丰富,但电池技术基本上却停滞不前,逐渐显现出功能机时代没有出现的续航短板,续航待机时间短一直是用户吐槽的焦点,而许多厂商也坦承电池成了制约手机发展的最大障碍之一.手机的其他模块越来越小,而电池的体积越来越大,已经成为了一个不争的事实.早前的功能机电池容量基本都小于

测试方案篇

测试计划:排时间节点,从管理角度对整个测试活动进行规划和控制. 测试方案:罗列测试范围.测试类型.使用到的测试方法.工具,保证测试全面,从技术角度进行规划和控制. 测试策略:属于测试方案里的内容之一,描述你执行哪些类型的测试,怎样组织测试. 此篇解答两个问题:1.在测试过程中,测试方案起到什么作用? 2. 如何编写测试方案? ------------------------------------------------------------华丽分割线---------------------

by python3-XSStrike 测试XSS

一.概述: XSStrike是一个Cross Site Scripting检测套件,配备四个手写解析器,一个智能有效载荷生成器,一个强大的模糊引擎和一个非常快速的爬虫. XSStrike不是像其他工具那样注入有效负载并检查其工作,而是通过多个解析器分析响应,然后通过与模糊引擎集成的上下文分析来保证有效负载.以下是XSStrike生成的有效负载的一些示例: }]};(confirm)()//<A%0aONMouseOvER%0d=%0d[8].find(confirm)>z </tiTlE

selenium测试框架篇,页面对象和元素对象的管理

前期已经做好使用Jenkins做buildhttp://www.cnblogs.com/tobecrazy/p/4529399.html 做自动化框架,不可避免的就是对象库. 有一个好的对象库,可以让整个测试体系: 更容易维护 大大增加代码重用 增加测试系统的稳定性 这里先了解一下我所说的对象库: 所谓的页面对象,是指每一个真是的页面是一个对象. 比如zhihu的登陆页面是一个页面对象,http://www.zhihu.com/#signin 这个页面对象主要包含一个输入邮箱的输入框(一个元素对

EarlGrey iOS自动化UI测试(集成篇)

目前针对iOS开发,很少会有UI方面的自动化测试. 目前Xcode提供了UI Automation,UI Testing Bundle,两者的优势都是可以通过录制真实的模拟器或者真机操作自动生成测试代码.而且不需要额外环境,只是需要xcode即可.但是缺点也很明显,就是自动生成的code可执行性,和可维护性很差.页面上的细微改动,都会导致case无法正常work. EaryGrey是google提供的一套ios ui测试框架,基于Unit Testing Bundle,可以通过matcher和c

php性能优化(一)压力测试工具篇

ab使用 Apache附带的压力测试工具ab,非常容易使用,并且完全可以摸你各种条件对Web服务器发起测试请求.ab可以直接在Web服务器本地发起测试请求,这对于需要了解服务器的处理性能至关重要,因为它不包括数据的网络传输时间以及用户PC本地的计算时间.. 要执行 1000 次的 connection, 20 次的 concurrent (并行, 同时): 语法: ab -n 1000 -c 20 www.baidu.com 产生出来的结果. 要注意的是以下几个: § Time taken fo

测试的艺术--通用测试案例篇

ps:针对通用测试点,只说明测试的关注点和方向. 对于具体的项目测试,细化为相关case即可. 常用测试用例设计方法: 1. 边界值 2. 等价类 3. 场景法 4. 错误推测法 5. 针对参数测试 1. web页面通用测试 case 测试点 case关注点 UI/UE 原则: 页面元素的显示   和  界面,提示的友好性 ] 页面元素的对齐 图片,文案等元素 左右对齐,还是上下对齐(文案过长过短时对齐): ] 页面遮挡 文案过长过短时,页面显示是否遮挡: 所有的下拉框等是否不恰当的遮挡了其他元

埋点测试基础篇--什么是站包

站点包,是说用测试站点打的包, 正式站点编号和测试站点编号对应的字段都是std,在埋点SDK初始化的时候由APP传入,主站APP正式站点编号是XX2016_311210,数据上报至正式环境mmm.xx.com:使用测试站点:cs09 ,数据会上报至测试环境 luna.xx.com,使用cs09的目的是使埋点数据方便验证,支持实时查看逐条上报的日志数据,同时,测试数据单独落地,不影响线上数据,且查询效率高 如上所述,站点包和正式包的差别,只在于埋点时一个字段传入的参数值不同简单说下现在这么做的考虑