网络攻防实验-XSS攻击-基于Elgg-Task1-4

                                                              网络攻防实验报告

                                                                                      ——XSS攻击

何为XSS攻击?

XSS即Cross-site scripting跨站脚本,它是一种经常在web应用中出现的漏洞,攻击者可以使用该漏洞注入一些恶意代码以实现对受害者的攻击。

一、实验环境

SEEDUbuntu12.04

VMware Workstation 10.0.1

Elgg web application

Firefox with LiveHTTPHeaders extension

二、实验一

Part-1

(一)实验步骤

1.开启apache服务器

sudo service apache2 start

 

2.访问Elgg并以alice身份登入

    网络攻防实验-XSS攻击-基于Elgg-Task1-4_第1张图片

3.修改alice的profile并注入script

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第2张图片

 

4.alice退出,samy身份登入并访问alice的profile

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第3张图片

Part-2

实验内容:使用脚本文件而不是直接注入代码

1.配置DNS即修改/etc/hosts文件

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第4张图片

2.配置Apache server,在/etc/apache2/site-available/default中添加如下代码:

 

3.在/www目录下添加Example目录并在此目录下添加如下文件:

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第5张图片

4.访问www.example.com以测验是否可正常访问

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第6张图片

5.访问Elgg,以samy身份登入并修改samy的profile,在Location中添加如下代码:

 

6.访问Elgg,以alice身份登入并访问samy的profile

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第7张图片

四、实验二

实验内容:注入恶意代码来实现显示受害者的Cookies

实验步骤:

1.访问Elgg以alice身份登入,并修改Alice的profile,  添加如下代码:

 

2.访问Elgg以samy身份登入,并访问alice的profile

  网络攻防实验-XSS攻击-基于Elgg-Task1-4_第8张图片

五、实验三

1、实验内容:窃取受害者的cookies

2、实验步骤:

Step-1:从SEEDLABS下载tcp server,编译并运行,此时本机的5555端口接受的数据会被tcp server获取

 

Step-2:访问Elgg,以alice身份登入并修改她的profile,在Location项中添加如下代码:

 

Step-3:访问Elgg,以samy身份登入并访问alice的profile

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第9张图片

此时会发现tcp server已获取cookie并输出到了命令行

 

六、实验四

1.实验内容:使用窃取的Cookies进行会话劫持

会话劫持的具体任务是:当某个user访问alice的profile时,攻击者就会获取此user的cookie以及__elgg_ts,__elgg_token,然后在本地利用窃取的内容发起会话,将charlie加为该user的好友,这里假设user为samy.

2.实验步骤:

Step-1:以alice身份登入Elgg并在profile的Location项中添加如下代码:

 

网络攻防实验-XSS攻击-基于Elgg-Task1-4_第10张图片

 

Step-2:访问Elgg以samy身份登入系统

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第11张图片

Step-3:启动监听程序,以获取受害者的cookie,__elgg_ts,elgg_token.(注后面两个参数在每次与服务器交互后都不同).

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第12张图片

Step-4:samy访问alice的profile

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第13张图片

这时监听程序获取到cookie,__elgg_ts,__elgg_token:

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第14张图片

攻击者开始发起攻击,系统CentOS6.3

Step-5:修改/etc/hosts文件,如下:

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第15张图片

Step-6:使用Live HTTP headers观察Elgg中添加好友时的HTTP请求头的各部分内容

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第16张图片

Step-7:编写java代码,发送伪造的添加好友的HTTP请求

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第17张图片

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第18张图片

网络攻防实验-XSS攻击-基于Elgg-Task1-4_第19张图片

 

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第20张图片

Step-8:编译并运行此java文件以发起攻击:

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第21张图片

根据结果发现:Http返回码为200,内容是html文档

Step-9:查看samy的好友信息,发现此时charlie已经成为他的好友了.

攻击之前:

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第22张图片

攻击之后:

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第23张图片

任务完成。

七、实验五

1.实验内容:写一个非自繁殖的XSS蠕虫,其在受害者本地浏览器中伪造Http请求,发送给服务器以实现修改受害者的profile同时添加samy为受害者的好友。

2.实验步骤:

Step-1:首先使用Live HTTP headers查看Elgg用户在修改自己的profile时发送的http请求的具体格式,如下:

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第24张图片

Step-2:使用Ajax编写js脚本文件以实现修改受害者的profile.如下:

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第25张图片

Step-3:以boby身份登入Elgg并修改其profile,在Location项中添加如下代码:

 

注:www.example.com配置如下:

1.修改/etc/hosts

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第26张图片

2.修改/etc/apache2/site-available/default

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第27张图片

3.在/var/www下新建Example项目

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第28张图片

Step-4:以charlie身份登入Elgg,查看自己的profile

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第29张图片

Step-5:访问boby的profile,再次查看charlie的profile

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第30张图片

网络攻防实验-XSS攻击-基于Elgg-Task1-4_第31张图片


 

由上图可看出,受害者的所有原有的profile信息都丢了,只剩下了攻击者留下的about me信息。如果想修改其他部分可以修改上面的JS脚本中content内容,当然还要满足Elgg的格式要求。

如果想同时让受害者添加samy为好友,可以参考上面的格式,以及上一个实验的内容展开。只需在上面的JS脚本中添加加samy的好友的代码即可.

Done!!

八、实验六

1.实验内容:编写一个可自繁殖的XSS蠕虫

实验要求可以使用两种方式,但使用ID Approach是必须的,但我几经尝试后都没成功,所以我使用第二种方法即Src Approach实现这个可自繁殖的XSS蠕虫.

2.实验步骤:

Step-1:编写实现此蠕虫的JS脚本文件xss_worm.js

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第32张图片

网络攻防实验-XSS攻击-基于Elgg-Task1-4_第33张图片

Step-2:以Boby身份登入Elgg,并修改其profile,在Location项中添加:


Step-3:以charlie身份访问Elgg,并访问boby的profile

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第34张图片

这是查看charlie的profile:

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第35张图片

Step-4:以alice身份登入Elgg,并访问charlie的profile:

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第36张图片

咦,怎么没有什么内容??

此时在以charlie身份登入Elgg,访问自己的profile,点击一次Edit profile,再点击save,然后退出,再以alice登入,访问charlie的profile:

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第37张图片

好吧,现在有了,这是为什么?我也不知!!

此时查看alice的profile:

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第38张图片

已被修改!

好吧,只能说并未百分百的完成这个Task.

九、实验七

1、实验内容:激活Elgg中的反XSS策略

2、实验步骤:

Step-1:以admin身份登入Elgg

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第39张图片

Step-2:点击Plugins,激活HTMLawed 1.8

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第40张图片

Step-3:登入Elgg,访问任一个受害者的profile

我以boby身份登入Elgg,访问了boby的profile,如下:

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第41张图片

我也访问了alice的profile,同样没有什么现象发生.

Step-4:解除text.php、tagcloud.php等文件中的htmlspecialchars方法调用的注释.

text.php:

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第42张图片

tagcloud.php:

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第43张图片

......

Step-5:访问任一个受害者的profile

以boby(xss worm的制造者)身份登入Elgg,访问他的profile,发现他的profile中Location项中的js代码消失了.

 

在访问charlie(受害者)的profile,如下:

 网络攻防实验-XSS攻击-基于Elgg-Task1-4_第44张图片

蠕虫代码被显示了出来。

Done!

以上是所有的XSS攻击的全部Task.

具体实验要求访问http://www.cis.syr.edu/~wedu/seed/Labs_12.04/Web/Web_XSS_Elgg/



你可能感兴趣的:(信息安全)