网络攻防-XSS攻击实验

本文介绍了如何在预设的Elggweb应用中利用XSS漏洞执行恶意代码,包括显示警告窗口、窃取cookies、成为好友以及编写自我复制的XSS蠕虫。同时,也讨论了CSP如何作为防御措施来防止XSS攻击。
摘要由CSDN通过智能技术生成

一、题目内容

        跨站点脚本(XSS)是一种常见于web应用程序中的计算机安全漏洞。此漏洞使攻击者有可能将恶意代码(如JavaScripts)注入受害者的web浏览器。

        为了演示攻击者可以做什么,我们在预先构建的Ubuntu VM映像中设置了一个名为Elgg的web应用程序。我们已经注释掉了Elgg的一些保护方法,故意使其容易受到XSS攻击。学生们需要利用这些漏洞发动攻击,就像Samy Kamkar在2005年通过臭名昭著的Samy蠕虫对MySpace所做的那样。此攻击的最终目标是在用户之间传播XSS蠕虫,这样无论谁查看受感染的用户配置文件都会受到感染,无论谁受感染都会将您(即攻击者)添加到他/她的好友列表中。

二、实验步骤及结果

Task1:Posting a Malicious Message to Display an Alert Window

1.在个人资料中添加一个JavaScript程序,当查看个人资料时,回显示一个警报窗口。在Alice的简要概括中插入以下JavaScript程序。

2.保存之后,可以看到个人简介页面出现了一个警示窗口,显示了我们想要展示的内容。

Task2:Posting a Malicious Message to Display Cookies

1.回到编辑界面,使用document.cookie方法获取用户的cookie,并将其使用任务一中的方法在警示窗口中展示出来。

2.回到个人信息界面,可以看到警示窗口已经显示出了个人的cookie信息。

Task3:Stealing Cookies from the Victim’s Machine

1.在攻击者的电脑上使用nc -lknv 指令对对应的端口进行监听。

2.使用插入图片的方式使得服务器可以对链接发起访问,将连接修改为攻击者的主机IP地址和对应的端口。并且向该主机发送cookie信息。

3.保存修改的信息后,可以看到监听的端口返回了连接信息,并且展示了获取的cookie信息。

Task4:Becoming the Victim’s Friend

1.首先需要获取添加好友的HTTP请求格式,所以我们使用Alice的用户对samy发起添加好友操作,使用HTTP Header Live插件获取HTTP请求信息。然后删除好友samy。

2.查看对应的url。

3.将获取到的信息补充到JavaScript代码框架中的sendurl中。然后登录samy的账户,将这段代码复制到about me中,注意要在html编辑模式。

4.登录alice的账户,此时Alice没有好友。

5.点击进入samy的个人简介页面。

6.此时刷新后可以看到samy已经编程alice的好友了。

说明ts和token两行的目的,为什么需要它们?

站点存在了CSRF防御机制,用户访问页面有个服务器下发的token值,直接构造添加朋友的url是不够的,因为不知道对方的token是多少。

如果Elgg应用程序仅为“关于我”字段提供编辑模式,不能切换到文本模式,你还能发动成功的攻击吗?

攻击点有很多,Brief description,Location等字段,都可以注入Script代码。

Task5:Modifying the Victim’s Profile

1.与上一个任务相同,首先我们需要获取编辑个人信息的HTTP请求的详细信息。对samy的个人信息进行修改,然后使用HTTP Header Live插件获取HTTP请求信息。

2.在请求信息中可以看到post的格式如下:

3.由获取的信息可知,接口的url地址,post提交数据的方式,使用这些信息填入JavaScript框架的对应信息中。然后添加到samy的个人简介中,注意要使用HTML编辑模式。

4.登录Alice的账号,此时Alice还没有简要概括。

5.点击进入samy的个人信息界面。退出后可以看到Alice的简要概括已经发生改变。

为什么要使用if判断语句?

如果不添加If判断,如果时samy自己进入个人简介,也会触发JavaScript代码,但是因为post的about me字段为空,那么这段JavaScript代码将会被清空,所以需要加上这段if判断,这样当当前用户是samy时,不会触发。

Task6:Writing a Self-Propagating XSS Worm

1.在传播病毒的同时,将病毒也复制在about me中,这样这段代码就会一直存在,所有访问都在自己的about字段添加这段代码,这样就能一直传第下去。在task5中,我们看到about me的字段名为description。DOM型蠕虫,就是自己创建一段js,然后复制自己,传递给description字段。需要给自己命名一个节点。将这段JavaScript代码复制到samy的about me 字段中。

2.保存,登录Alice账户,并且访问samy的个人信息界面。

3.刷新界面。

4.返回,可以看到Alice的就简要概括已经发生了变化。

5.查看Alice的个人信息,发现about me字段也已经发生变化,添加了我们编写的JavaScript代码。

6.登录Charlie的账户,并且查看Alice的个人信息界面。

7.返回可以看到Charlie的简要概括也已经发生变化。

8.查看Charlie的好友,发现Charlie已经添加了samy为好友。

9.进入Charlie的个人信息界面,可以看到Charlie的about me字段也发生了改变。 

Task7:Defeating XSS Attacks Using CSP

1.查看www.example32a.com

2.查看www.example32b.com

3.查看www.example32c.com

4.修改apache_csp.conf,在可以接受访问的名单中添加我们的节点example60.com。

5.重新建立和打开容器,再次访问网站,可以看到5,6都显示OK。

6.修改phpindex.php文件,在可接受的访问节点中添加我们的节点example60.com。

7.再次访问网站可以看到1,2,4,5,6都显示OK。

解释为什么CSP可以防御XSS攻击?

CSP使用的是类似报名单的机制,向客户端指明那些外部资源是可以进行加载的。

  • 39
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
xss跨站脚本攻击实验实验结果与分析如下: 在进行xss跨站脚本攻击实验时,我们首先构造了一个含有恶意脚本的注入网页,然后将该网页作为输入传递给目标网站。实验结果显示,攻击者成功将恶意脚本注入到目标网站中,当其他用户访问该目标网站时,恶意脚本会被执行,从而使得攻击者可以获取用户的敏感信息或进行其他不良行为。 对于实验结果的分析,可以得出以下几个结论: 1. 实验结果表明目标网站存在xss漏洞。这种漏洞的产生一般是因为目标网站未对用户输入进行充分的过滤和验证。攻击者通过在注入网页中插入恶意脚本,利用目标网站对用户输入的不当处理来实现攻击。因此,目标网站需要加强用户输入的过滤和验证,以避免类似的攻击。 2. 实验结果暴露了用户的敏感信息泄漏风险。通过成功注入恶意脚本,攻击者可以获取用户在目标网站的敏感信息,如用户名、密码等。这对用户的隐私安全构成了潜在威胁。 3. 实验结果提醒我们加强xss防护措施。为了避免类似的攻击,目标网站应当采取一系列的安全措施,包括对用户输入进行过滤和验证、设置合适的CSP(内容安全策略)等。此外,用户也应当保持警惕,避免点击可疑的链接,提高自身的网络安全意识。 在实施xss跨站脚本攻击的实验中,我们能够深入了解这种攻击的原理和危害,同时也提醒我们加强安全意识和措施,以保护自身和网站的安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值