- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
从黑客角度深入剖析跨站请求伪造
在对Web应用程序进行测试的过程中,我们使用的自动化工具有时候会漏掉一些非常严重 的安全漏洞。跨站请求伪造便是其中之一。因此,对于Web应用测试来说,通过人工方式 分析代码是非常重要的一种测试手段。
在近期的Web应用测试过程中,我利用手工方式发现了若干个CSRF漏洞,如果将其串联使 用,就能演变成更加严重的安全漏洞。下而,木文将详细介绍这些漏洞的发现过程,并演示 如何利用它们来控制受害者的账户。需要注意的是,为了保护客户信息,部分内容已经做了 模糊处理。
0X01艰难的发现之旅
为了展开跨站请求伪造攻击,首先要进行一些侦查工作。为此,我根据客户提供的低权限账 户登录了需要测试的Web应用。在这个网站上,大部分页面都要求预先知道帐户名、产品 序列号等信息。由于我对这些一无所知,所以只好转而考察账户简介页面。这个页而允许用 户更新他们的帐号信息,例如姓名、电子邮件地址、城市、省份,等等。
対于浏览器,我通常选择Firefox,这是因为可以使用TamperData插件來方便地操作表单的 字段,来观察是否发生有趣的事情。比如,我经常在引号或星号之间插入一些奇怪的数据, 来探索各种注入攻击。就本例而言,我发现了一个会随其他账户信息一同传输的隐藏表单字 段,这个字段的名称为-RequestVerificationTokeno我不断摆弄这个字段,但是就我观察而言, 并没有找到注入漏洞。但是,我却注意到了一个重要的事情,那就是这个站点好像并不在意 我对这个字段所做的各种修改。
Tamper Popup
co/201=0.9,7ProfileficatioiPost Parameter NameRequestVerificationToken PasswordChg Req u i red UsersName FirstName LastName Phone Phone Phone Ext Phone Ext City StateEmailAddress
co/201
=0.9,7
Profile
ficatioi
Post Parameter Name
RequestVerificationToken PasswordChg Req u i red UsersName FirstName LastName Phone Phone Phone Ext Phone Ext City State
EmailAddress
JobFunction JobFunction Password NewPassword ConfirmPassword
Anitian
Amtian
Amtian2
? ????
Winterville
AL
rick%40
Accounting
Accounting
这对我来说是非常奇怪的。根据这个字段的名称来看,它好像是用来验证每个提交的请求是 否來自该网站实际用户的一项安全措施。这通常是用来防止跨站请求伪造(CSRF)攻击的,但 是,这个页而看上去并没有验证这个令牌,这就意味着这个信息更新表单容易受到CSRF的 影响。
在默默记住这一点之后,我开始继续测试该网站的其他部分。我想,如果一个页面有这种漏 洞,那么英他页面也很可能有这种漏洞。不幸的是,事实并非如此。对于所有其他页面,只 要修改这个令牌就会导致服务器错误,并且表单也无法进行处理。也就是说,除了个人信息 页面之外,其他地方的大门都被堵上了。接下来,我们就要想办法利用它来进行更加邪恶的 事情。
0X02忘记密码
就像某些网站一样,这个站点也提供了一个“忘记密码”功能。这个功能的初衷,当然是为 哪些忘掉密码的用户提供帮助的。这个自动化系统非常简单,用户将其用户名输入到相应的 表单字段,然后点击提交按钮即可。如果用户名是有效的,系统就会给该用户的账户生成一 个新的随机密码,并将其发送至该用户账户绑定的电子邮箱中。这个功能不仅对于用户来说 非常简单,同吋,也为黑客提供了极大的方便。
我意识到,如果我可以利用CSRF漏洞把用户的电子邮件地址更新为自己的邮箱地址,那么, 我就能够利用忘记密码功能令系统把用户的密码发给我,而不是用户。不幸的是,我很快就 遇到了一个难题。
客户(这里指)提供给我的测试帐户所绑定的电子邮件地址中含有客户的域名, 如bob@0虽然系统允许将这个电子邮件地址改为我想要的地址,但是这里有 一个问题,当让系统向我的电子邮箱发送新密码时,实际收到的却是一个服务器错误。不知 道什么原因,它似乎只喜欢类似bob@这样的邮箱。
经过进一步的手工测试后,我发现它可以接受任何用户名,只要是以结尾即可。 我不知道到底为何会发生这种情况,因为在系统中的其他帐户包含了来自不同域的电子邮件 地址。我觉得,这背后肯定还进行了某些额外的安全验证,
文档评论(0)