首页 > 代码库 > 网络安全系列之二十三 XSS跨站脚本攻击1

网络安全系列之二十三 XSS跨站脚本攻击1

跨站脚本攻击(Cross Site Scripting)指的是恶意攻击者往Web页面里插入恶意脚本代码,当用户浏览该页之时,嵌入其中Web里面的脚本代码会被执行,从而达到恶意攻击用户的特殊目的。

为了与层叠样式表(Cascading Style Sheets)的缩写CSS区分开,跨站脚本攻击通常简写为XSS。

为了更好地理解XSS攻击,我们需要搭建一个php环境,这里仍然推荐使用NPMserv,软件下载地址:http://down.51cto.com/data/1886128。

我们首先编写一个简单的php脚本文件info.php:

wKioL1RZa5rSzC1kAABkfTZ2FIo797.jpg 

这段代码的意思是以get方法将参数name的值赋给变量username,然后再输出变量username的值。

将文件放到NPMserv下的www目录中,然后在客户端访问:

wKiom1RZa0OT4MnzAADLpCyrZco577.jpg 

正常情况下,用户会在URL中提交参数name的值为自己的姓名,然后该数据内容会通过以上代码在页面中展示,如用户提交姓名为“张三”:

wKioL1RZa7CiqsVFAADUKI0WyRI846.jpg 

但是如果用户提交的数据中包含有可能被Web服务器执行的代码,那么就构成了XSS攻击。如用户提交的name值为<script>alert(/我的名字是张三/)</script>:

wKiom1RZa1mzUkOnAAEpqfaFCM0432.jpg 

<script>……</script>是HTML中用于执行JavaScript语言的标记,因而只要黑客精心构造一些JavaScript语句,那么就可以达到相应的攻击目的了。

XSS攻击的原理和实现方法相比SQL注入要复杂一些,从攻击方式上分类,XSS主要有反射型和存储型。

反射型(外部攻击型)只对当前链接生效,需要用户点击恶意网站使得恶意脚本运行;

wKiom1RZa26g-HnpAAGMroPrTBg757.jpg 

存储型(内部攻击型)网页程序本身xss漏洞,只要用户请求该网页就会受到影响。

wKioL1RZa9vQKSoaAAFm1Z_ChWg100.jpg 

反射型一般需要用户自行去触发,比如我们刚才所进行的XSS攻击就属于是反射型。另外,黑客也可以像图示中那样,将构造好的URL链接发送给正常的用户,让这些用户去执行XSS,从而获取这些用户的信息,比如cookie等。

存储型则是直接将xss语句插入到网站的正常页面中(通常都是留言板),然后用户只要访问了这些页面,就会自动执行其中的xss语句。

关于存储型的跨站将在下篇博文介绍。

本文出自 “一壶浊酒” 博客,转载请与作者联系!

网络安全系列之二十三 XSS跨站脚本攻击1