shellcode, 默认会向localhost:1337请求并加载第二阶段(沙盒逃逸)shellcode, 以完成任意代码执行....(m_stackSize)以及整个解析过程中栈容量的最大值(m_maxStackSize), 当前堆栈大小有助于将抽象堆栈位置转换为本地堆栈的偏移量, 而最大堆栈值则将决定函数序言期间将分配的栈空间大小...漏洞利用
触发漏洞
要触发整数溢出问题, 我们需要构造出能使解析器执行2^32次push操作的wasm函数, POC最终选择使用之前提到的多值范式, 以及解析器对unreachable代码的处理相结合的方法...之前提到多值范式没有说的一点是, 它允许块拥有任意数量的返回值, 在JavaScriptCore的实现中也没有强制规定该数量的上限, 这允许我们构造具有大量返回值的块
解析器会执行一些非常基本的分析来确定代码是否为无法访问或是死代码...stage2_server可以成功建立连接
使用lldb调试WebContent进程成功获取到shellcode中的int3断点并查看内存布
总结
这个漏洞本身还是非常好理解的, 从隐式类型转换到整数溢出再到栈溢出