web安全实验:Attack1-6

本文详细介绍了六个Web安全攻击手法:Cookie盗窃、会话劫持、跨站请求伪造、辅助下的CSRF、SQL注入和Profile蠕虫。通过模拟攻击,解析了攻击原理和实施步骤,涉及Cookie操作、XSS漏洞利用、CSRF防护机制、SQL注入技巧以及传播型Profile蠕虫的构造。
摘要由CSDN通过智能技术生成

Attack 1: Warn-up exercise: Cookie Theft

开始网址
http://localhost:3000/profile?username=
评分员将提前以user1的身份登录bitbar,然后打开以上的开始网址
你的目标是偷取user1的会话cookie并且将cookie发送到
http://localhost:3000/steal_cookie?cookie=…cookie_data_here…
你可以在以下网址上查看最近被偷取的cookie
http://localhost:3000/view_stolen_cookie
请将你的答案写在warmup.txt中
提示:尝试添加一些随机字符串到开始网址后,观察这些随机字符会如何影响网页

首先验证是否存在xss漏洞

在这里插入图片描述
说明,js中的代码可以被执行,即存在xss漏洞。
所以我们只需要构造js代码来窃取cookie。

answer:

构造新对象Image,指定动作为向http://localhost:3000/steal_cookie?cookie=发送信息,发送的信息为函数document.cookie()的返回值(也就是当前cookie)。

获取cookie如下:
在这里插入图片描述

Attack 2: Session hijacking with Cookies

在本次试验中,你将会获得attacker的身份:用户名attacker,密码attacker。你的目的是伪装成用户user1登录系统
你的答案是一个脚本。当这个脚本在JavaScript console中执行时,bitbar将误认为你是以user1。请将这个脚本写到a.sh中
本次试验中,你可以使用Mechanize。Mechanize是一个Ruby的库函数, 它被用于与web应用实现自动化交互。在本次试验中,你必须要保存服务器发送的所有的cookie值。
提示:网站是如何保存会话的?网站是如何验证用户当前是否登录?网站是如何验证cookie的真实性的?

此次任务我卡了很久,主要是因为一直不理解该怎么对cookie进行构造。
在这里插入图片描述
从session生成cookie的大致步骤如上所示,但本次实验中的cookie构造却并没有这么复杂。按理来说构造过程简单是一件令人兴奋的事,这意味着更好被攻破,但因为自己水平的问题没有及时意识到这一件事,导致一直在死胡同里卡住。
和同学讨论后,使用mechanize库完成实验。
1.模拟登陆操作,获取cookie。

agent = Mechanize.new
url = "http://localhost:3000/login"

page = agent.get(url)
form = page.forms.first
form['username'] = form['password'] = 'attacker'
agent.submit form
cookie = agent.cookie_jar.jar['localhost']['/'][SESSION].to_s.sub("#{SESSION}=", '')

这一步没有什么过多解释的,mechanize库的使用方法就是先初始化一个对象agent,然后指定要访问的url,通过表单提交来获取cookie。
2.cookie解码

cookie_value, cookie_signature = cookie.split('--')
raw_session = Base64.decode64(cookie_value)
session = Marshal.load(raw_session)

由于我们无法直接修改cookie,所以我们需要先将cookie解码成我们能理解的字符串,再进行修改。首先通过”–”的提示将签名和信息两个字段分开,在这里我们不

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值