首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(远程) XSS如何工作(在CSRF中)?

(远程) XSS如何工作(在CSRF中)?
EN

Security用户
提问于 2016-11-03 07:42:23
回答 3查看 512关注 0票数 0

我刚读过一篇关于CSRF的文章,它提到了3种攻击矢量: XSS、操纵链接和本地攻击。

虽然最后两种方法似乎是可能的(对我来说),但我不确定XSS将如何在这里发挥作用。

基于我的理解,我想利用一个网站通过受害者,我没有选择,我可以使用XSS在这里。只有当我是做XSS的人时,我才能理解如何做,但在这种情况下,我不需要受害者,对吗?

我能想到的唯一选项是一个带有负载参数的欺骗URL,但那已经是向量2了。

编辑:现在我想我有了一个线索;攻击者会创建一个持久的XSS,当(任何)受害者访问合法的站点时,这个XSS就会被触发。

这个想法正确吗?

EN

回答 3

Security用户

发布于 2016-11-03 07:46:39

实际上,如果有XSS,CSRF令牌不提供任何保护。一旦您可以注入JavaScript,您也可以轻松地获取保护表单的令牌。

票数 4
EN

Security用户

发布于 2016-11-03 08:46:28

CSRF通常的工作方式是,您以某种方式欺骗受害者单击一个链接(或其他请求页面),该链接在目标站点上执行某些操作。例如,这可以通过一个名为evil.com的站点来实现,每当一个无辜的冲浪者绊倒它时,它就会自动向bank.com/transfer.php提交一个隐藏的表单。那是没有XSS的CSRF。

那么XSS在哪里出现呢?如果bank.com上存在XSS漏洞,攻击者可以从bank.com进行同样的操作,即每次受害者访问银行主页时都提交转账请求。这是更强大的,因为银行的客户在登录时访问bank.com的可能性比他们访问evil.com的可能性大得多。

如果考虑到XSS漏洞可以用于读取CSRF令牌(如果存在的话),那么情况就会更好,从而绕过防御。

现在我不确定我是否会叫这个第二次考试CSRF,因为这个请求不再是跨站点了。但我想这就是XSS辅助CSRF所指的。

票数 0
EN

Security用户

发布于 2016-11-03 22:33:35

您只需要一个通过受害者会话进行成功CSRF攻击的请求(GET、POST),就可以使用从服务器(例如img标记)请求资源的HTML标记,然后如果web应用程序中存在XSS漏洞,就可以注入如下内容:

代码语言:javascript
复制
<img src="http://mywebbank/transfer?account=12345678&quantity=1000000" />

这是一个关于使用XSS的CSRF的简单示例。现在,如果web应用程序使用令牌来验证合法请求,则需要一种获取该令牌的方法;大多数web应用程序都会在HTML表单中添加令牌,如下所示:

代码语言:javascript
复制
<input type="hidden" id="token" name="token" value="3343583489" />

您可以在token字段所在的同一个页面中注入XSS,这个XSS将获得该令牌,并将创建一个HTML元素,该元素将生成一个包含每个所需参数(包括令牌)的HTTP,例如:

代码语言:javascript
复制
<script>
var ifr = document.createElement("IFRAME");
ifr.src="http://mywebbank/transfer?account=12345678&quantity=1000000&token="+document.getElementById("token").value;
document.appendChild(ifr);
</script>

通过这种方式,您可以通过XSS进行CSRF攻击,并绕过基于令牌的保护;这只是一种方法,但您可以以另一种方式进行,您只需要具有创造性。

我希望这些信息对你有帮助。

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/141670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档