且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-09-13 07:50:08

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1571910