踹哈公寓 – Telegram
踹哈公寓
4.1K subscribers
589 photos
19 videos
307 files
357 links
Download Telegram
parse-server那个原型污染漏洞导致rce的漏洞,昨天有人问的,钻研了一下,应该是网上的文章有地方没说对

复现环境说的是mongodb依赖包版本3.6.11,当BSON数据中的对象包含_bsontype键,当他的值为Code时,该对象会被判断为Code类型。在进行序列化时,系统会调用serializeCode这个函数对该对象进行序列化处理

在反序列化时,如果遇到Code类型的数据,则系统会执行js内置的eval操作。将字符串变为可执行代码。这个算是比较常规的风险代码,所以他又定义了evalFunctions这个参数,通过一个叫GridFS的流程处理metadata

如果在代码中没有设置info.appId的值,程序就会进入if语句块,如图,把fileViaJSON设置为true。如果缓存中没有info.appId的信息,程序会继续执行下去。在代码中可以找到appId的赋值操作,并且后面还有一处校验。这一步需要保证_ApplicationId是正确的appId,否则程序就会退出。根据这个逻辑网上有多种利用方式,其中一种是控制out.value.__op out.key从而污染原型的evalFunctions参数,构造一条新的调用链去在FileCoder里面汇总变量,修改create包从而修改file类型

然后网传官方的修复措施是对metadata进行过滤,但是没有修复原型污染。这个说法我钻研了一下不认同。在找新的可以上传Code类型的位置时他示例用了这个

delete ({}).proto.evalFunctions; require(child_process).exec('touch /tmp/123.txt')"

如果按照他上文的思路,child_process模块获取空对象后在BSON库中检验evalFunction,执行的是Node.js,metadata放到fs.files表,所以还是可以构造hook函数,但补丁后把其他文件内容放到fs.chunks表里,无法通过第二个return返回key和value,所以污染位置要么是前面的restUpdate要么就是函数传出路径错误根本无法运行,这种情况下还能继续RCE反正我是不赞同的
👍3
踹哈公寓 pinned Deleted message
Forwarded from KK (这个号不做任何业务)
伊朗的
👏5👍2
这位更是重量级
图形化红队java漏洞利用工具
踹哈公寓 pinned «【DJGun教你制作栗子头和说的道理-哔哩哔哩】 https://b23.tv/Vxu2MXQ»
Forwarded from hungry
牛子人对Oracle团队宣战
2
微距了🥶🥶🥶🥶🥶
Channel photo updated
Channel name was changed to «👉✂️👍👥👉👤?​»
我测,景帝😱
可获取全部loginId并测试登录的泛微信息泄漏漏洞和任意用户登录漏洞组合利用工具