长亭百川云 - 文章详情

从虚假的XSS到放弃RCE再到Self-RCE

学蚁致用

61

2024-07-13

文章开始前,说点题外话,接上次转发的文章(端内钓鱼,反制蚁剑)后台反馈下来的消息看,大家普遍都没整明白这波是什么操作,所以蹭着这一波的热度,再和大家先聊聊蚁剑的安全问题:

1. 有攻有防, 我们不会回避安全问题, 除了修复漏洞之外,并且每次我们还会将漏洞的详情、EXP 都会公开,方便大家能够从历史漏洞当中学到审计还未被挖掘到的漏洞。

2. 当然作为一个插件开发者,dhtmlx 文档里未提到的一些属性明明是按 html 渲染的,结果给这个属性取了一个迷惑的名字 text (比如 Tree、Grid组件),这些坑你翻文档都是翻不到的,看漏洞报告就能知道了。当然这个后期我抽空整理一下贴文档里吧。为啥dhtmlx 都 v7 了蚁剑用的还是 v4 的?收费用不起

3. 有关漏洞提交,我还是希望大家能在第一时间能与开发组联系,使用蚁剑内的「报告漏洞」功能,或者是直接给我发邮件也是OK的。

Github 的 issue 功能是公开的,不适合漏洞报告披露的准则,所以尽量还是用上面的形式吧。

4. CVE 或者 CNVD 编号申请这块,如果大家有需要,我们是积极配合的,请放心去冲

讲道理,蚁剑能跑到厂商列表里,我也是挺意外的

5. 蚁剑作为自身出现了安全问题,不会耻辱吗,还可以继续使用吗?

    的确,作为一款网站管理软件,自身出现安全漏洞,确实影响我们日常维护网站的站长的心态,请务必及时更新。

    没有一个系统是安全的,蚁剑的历史漏洞大多都是因为开发过程中疏忽,这也正是大部分的安全漏洞产生的通病, 欢迎更多的大佬可以参与到帮AntSword找漏洞的计划中来,蚁剑会因为你的细心变得更优秀。

本文来自 cc7v@校长 的知识星球,文章中部分内容「学蚁致用」会略做修改

学蚁致用


0x01 前言

中午在学校午休,就看了 @忍酱 的反制Goby, @暗羽师傅 的反制Burpsuite还有 @先知社区 里的反制蚁剑, @f4ltJ4y 的蚁剑复现,挑起了我想反制的心!

蚁剑版本: 2.1.12


0x02 虚假XSS

蚁剑是自带浏览器的,用的是Chrome!本想着暗羽师傅的那篇可以用得到,发现版本不对

发现它调用了dhtmlx框架,可以解析HTML

<img src=1 onerror=alert(1)>

正是因为这个虚假的XSS,更加激发了我想RCE的心!我们可以参考:

https://xz.aliyun.com/t/8167

批注: 「浏览网站」模块中,创建 Window 的时候,禁止了 Node 上下文支持,并且开启了沙箱,所以即便有 XSS 也不会引发 RCE。

学蚁致用


0x03 放弃RCE

我在想既然有内置浏览器,那么Chromium浏览器版本是否存在漏洞呢? 我们先得获取Chromuim版本

# Console

如上图,谷歌浏览器的产品代号为"Mozilla"

"5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) antsword/2.1.12 Chrome/69.0.3497.106 Electron/4.0.3 Safari/537.36"

上图已知,Chrome/69.0.3497.106 Electron/4.0.3 我们查找相对应的远程代码执行的漏洞!已关闭沙箱

通过万能的百度我找到一个 Google Chrome < = 87.0.4280.88 远程代码执行

# 参考文档:

尝试后,我实在是想不明白这个DevTools怎么搞,我想尝试别的版本,高版本低版本我都试过了,都是 同一个问题!希望有师傅能够解惑,我太菜了。


0x04 「Redis管理」插件 Self-RCE

本文所述该插件的漏洞目前已经修复

峰回路转,本来我是打算放弃的,就随便点点插件里的内容。我是原先有下载一个Redis管理的插件的

<img src=1 onerror=alert(1)>

直接通过HTML的方式解析

https://github.com/AntSword-Store/AS\_Redis/blob/fac78f9605c4cee4d863b1c68a368916dc854051/libs/core.js

阅读了这个插件的源代码,发现并没有过滤以及加以限制,而且dhtmlx 解析,这应该是蚁剑开发的标准要求

'use strict'

dhtmlx v4 的 Tree 组件 text 属性是支持 html 的,在插件开发过程中,设置节点内容的时候,一定需要注意 XSS 问题

学蚁致用

漏洞点:


构造 Self-RCE

结合蚁剑的以下特点:

解析HTML时,不能使用单引号或双引号,否则会出现语法混乱 HTML源码和流量中均有Payload,导致攻击方很容易被反制,在执行命令后需要删除当前HTML节 点,并对流量进行加密。

a="require('child_process').exec('calc.exe')"

使用 JavaScript Obfuscator 对payload进行混淆,为了方便我这里就不混淆了 在Console执行得到处理后的payload

<img src=1 onerror="eval(String.fromCharCode(114,101,113,117,105,114,101,40,39,99,104,105,1 08,100,95,112,114,111,99,101,115,115,39,41,46,101,120,101,99,40,39,99,97,108,99, 46,101,120,101,39,41))">

0x05 「LiveScan」插件 XSS

本文所述该插件的漏洞目前已经修复

这个是蚁剑判断WEBSHELL存活的一款插件

https://github.com/AntSword-Store/LiveScan/blob/master/libs/ui.js

行160-192 从开始扫描到渲染UI,每一步都没有调用JS替换函数: antSword.noxss

于是我构思,如何让他扫描后渲染出来,它扫描时shell不需要存活,于是我们shell地址开始下手 Windows对文件的命名有标准,我们没法使用尖括号 只能在链接的时候修改

XSS:

<img src=1 onerror=alert(1)>

构思

其实对于我而言这个是有实战意义的: 钓鱼

就脚本小子以及初出茅庐的攻击方来说,设置钓鱼文件,伪造内容诱导添加shell并存活检测,也可以黑 吃黑,诱导其检测shell存活~

在网站目录下创建 txt 或者 log 文件,伪造内容:

漏洞利用扫描器 结果:

0x06 结尾

  在实战当中,有利用的可能!但可操作性非常低,诱导性也低,但是危害大!不算鸡肋,有用武之 地但是条件要求极其苛刻!

写在最后

  校长这波对初学者满满的套路,从入门到入土,我觉得我得去下载一个 国家反诈骗中心 APP 了


不如关注一波再走?

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2