软件安全测试按照测试点又细分了很多分支,而今天我们要讲的是安全测试之最常见的页面脚本攻击应向阳。脚本攻击有多种方式,今天给大家讲几种最常见的场景也是很多网站容易忽略测试的情况<br>第一种,在页面的输入框中植入一段js(javascript)脚本。不知道js的同学,请关注我们的公开课,或者自己去百度学习。<br>一般情况下我们在测试添加功能的时候都会根据需求文档进行测试,需求文档里可能会写明每一个字段的数据都有哪些限制条件,往往我们就会去测试这些限制条件是否都满足,但我们通常会忽略一种情况,尤其是我们不懂js,html这些前台页面技术的情况下。比如,现在我往老师昵称的输入框输入一段js网站安全测试:<script>alert(1)</script> ,输入其他数据后保存这条老师数据,然后回到老师列表就会发现出现了一个弹框,这个就是因为保存进去的昵称没有经过数据过滤处理,保存到表的数据是一段完整的js,然后这段js脚本被浏览器渲染后就出现了一个警告提示框,成功实现了攻击。<br>像这种情况还不算太恶劣,点击警告框的确定,警告框就会关闭,但是如果别人植入的是一段死循环代码,比如上面的脚本经过一个改造:<script>while(true){alert(“有本事你就把我关掉”)}</script>,然后往页面输入框输入以上脚本数据,保存后在列表页面就会弹出咱们设计的那个弹出框,并且想关都关不掉,关了以后立马又出现了。并且只要访问到这个列表页面就会出现这个弹框。<br>试想一下,如果你们的客户稍微懂一点技术,在做验收的时候输入了一段这样的脚本来测试,估计当场就会被气吐血,人家会觉得不仅你们开发人员技术不过关,你们测试人员技术也不到位,别人出钱的时候也不会那么干脆,更严重的情况是客户可能再也不会跟你们合作了,因为这么低级的一个bug,你们项目组都没有规避到。<br>第二种,在页面输入框中植入一段html代码。不知道html是什么东西的同学,请关注我们的公开课,或者自己去百度学习。<br>植入html代码又可以分几种情况,以下几种情况是测试中用的最多的,因为他们都可以指定一个路径,链接到第三方平台,而有些情况一经点击就可以跳到指定的第三方平台,而这种情况是很容易在第三方页面上做手脚盗取你网站的私密数据的。<br>1. 植入<img>图片,这个图片的链接指向第三方的图片,影响:第一,非一条正常数据,第二,对方可以利用你的漏洞捣乱,传上去一些非法图片。<br>2. 植入超链接:<a>,如果你的页面没有做html过滤就可能被植入一段超链接,点击就可以跳到第三方平台。影响:第一,非一条正常数据,第二,别有用心的人就可以利用你的漏洞去做一些非法的事情。<br>3. 植入iframe:<iframe>,如果你的页面没有做html过滤同样也有可能被别人直接植入一个iframe,嵌入一个第三方页面,直接显示在你的网站页面上,比如,我们现在通过iframe在我们的老师列表页面植入视频网站--优酷,这样我们就可以点击优酷上的视频来观看了。影响:第一,非一条正常数据,第二,同样别人可以通过这种方式直接植入不安全的第三方网站或者广告。<br>当然以上这些脚本攻击方式在你的项目网站上不一定都能重现,因为有些项目是做了过滤的,但是也有可能做的也不完全,可能某一种注入被规避了,还存在漏网之鱼,所以只有试过才知道,上面只是列举了几种常见的注入方式,大家可以去测试下,说不定有额外的惊喜。如果找到了这样的注入bug,请记得鄙视一下你们开发人员。哈哈。