首页
社区
课程
招聘
1
[原创]【2019看雪CTF】Q3赛季 第十二题:精忠报国 WP
发表于: 2019-9-25 00:54 5127

[原创]【2019看雪CTF】Q3赛季 第十二题:精忠报国 WP

2019-9-25 00:54
5127

完全0基础做题,乱做的。

看diff:

删除了FastElementsAccessor中关于fill实现部分的check代码。

然后就开始找v8的相关资料看,看了两天,有个大致的概念。
通常大概思路是OOB->AAR/AAW->get shell或者其它。

但是怎么触发漏洞呢,试了好久也没成功,没办法真正0基础啊,不会写js,只能copy代码,能触发才怪。我太难了。

放了两天,因为队友发我的一个链接,我又拿起来了,然后稀里糊涂就做出来了。
poc

其中谈到了如下代码:

但是他针对的fill部分代码与本题并不一样,但同样适用。我想应该还有其它更简单的触发方式吧。于是直接copy了完整poc,改吧改吧,竟然就成功了。原POC bug好像有点多。

上面代码可实现一次OOB的写,稍加修改就可以修改array的length,造成真正意思上的OOB。
提前在array后布置一个空的数组ptr_leak_object和一个BigUint64Array数组arbirary_access_array,ptr_leak_object用于leak对象地址,arbirary_access_array用于AAR/AAW。
修改array的length为一个比较大的值(不用太大,使arbirary_access_array,ptr_leak_object在其Elements范围内就行)。将对象引用设置ptr_leak_object的元素,则可通过array读出地址实现Leak;通过array更改ptr_leak_object的elements地址,则可实现任意地址的8字节的读可写。最后使用wasm的方式,得到可执行的内存区域,替换代码为shellcode实现get shell。

代码如下:


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2019-9-25 20:23 被poyoten编辑 ,原因: 不小心把链接弄成了图片链格式
收藏
免费 1
支持
分享
赞赏记录
参与人
雪币
留言
时间
PLEBFE
为你点赞~
2023-1-22 03:23
最新回复 (0)
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册