Cross-Site Scripting [XSS] Attack Lab
- 1 Overview
- 2 Lab Environment
- 3 Lab Tasks
-
- 3.1 Task 1: Posting a Malicious Message to Display an Alert Window
- 3.2 Task 2: Posting a Malicious Message to Display Cookies
- 3.3 Task 3: Stealing Cookies from the Victim’s Machine
- 3.4 Task 4: Impersonating the Victim using the Stolen Cookies
- 3.5 Task 5: Writing an XSS Worm
- 3.6 Task 6: Writing a Self-Propagating XSS Worm
1 Overview
跨站点脚本编制(XSS)是web应用程序中常见的一种漏洞类型。这个漏洞使得攻击者有可能将恶意代码(如JavaScript程序)注入受害者的web浏览器。使用这种恶意代码,攻击者可以窃取受害者的凭证,比如cookie。的访问控制政策(即同源策略)使用浏览器来保护这些凭据可以通过利用XSS漏洞绕过。这类漏洞可能会导致大规模的攻击。
为了演示攻击者利用XSS漏洞可以做什么,我们设置了一个基于web的留言板使用phpBB。我们修改了软件,引入了一个XSS漏洞在mes-sage board;这个漏洞允许用户向board发布任意消息,包括JavaScript项目。学生需要利用这个漏洞发布一些恶意的消息到message board;看到这些恶意信息的用户将成为受害者。攻击者的目标是发布伪造给受害者的信息。
2 Lab Environment
在这个实验室中,我们将需要三件东西:
- (1)Firefox web浏览器
- (2)apache web服务器
- (3)phpBB留言板web应用程序。
对于浏览器,我们需要使用LiveHTTPHeaders exten-sion用于Firefox检查HTTP请求和响应。预先构建的Ubuntu VM映像提供给您已经安装了带有所需扩展的Firefox web浏览器。
2.1 Starting the Apache Server
启动Apache服务器。apache web服务器也包含在预构建的Ubuntu映像中。但是,默认情况下web服务器不会启动。您必须首先使用以下两个命令:
2.2 The phpBB Web Application
phpBB Web应用程序。phpBB web应用程序已经在预先构建的Ubuntu中设置好了。我们还在phpBB服务器中创建了几个用户帐户。密码信息可以从首页的文章中获得。您可以使用以下URL访问phpBB服务器(需要先启动apache服务器):
进入网页,点击首页的由admin发布的帖子可以看到每个用户的密码和用户名一样
2.3 Configuring DNS
配置DNS。这个URL只能从虚拟机内部访问,因为我们有修改/etc/hosts文件,将域名(www.xsslabphpbb.com)映射到虚拟中国本地IP地址(127.0.0.1)。您可以映射任何域名到一个特定的IP地址使用的/etc/hosts.例如,您可以将http://www.example.com映射到本地IP地址将以下条目附加到/etc/hosts文件
因此,如果您的web服务器和浏览器运行在两台不同的机器上,则需要修改/etc/在浏览器的机器上托管相应的文件,以将www.xsslabphpbb.com映射到web服务器的IP地址。