CVE-2018-25218PassFab RAR Password Recovery 9.3.2版本存在结构化异常处理(SEH)缓冲区溢出漏洞。该漏洞允许本地攻击者通过在注册界面的邮箱和注册码字段粘贴恶意构造的Payload来触发。由于程序未对输入长度进行有效验证,攻击者可利用缓冲区溢出覆盖异常处理程序,进而劫持程序执行流,最终在目标系统上执行任意代码,导致系统完全被控制。
该漏洞属于典型的结构化异常处理(SEH)覆盖漏洞。在PassFab RAR Password Recovery 9.3.2的注册功能中,程序直接拷贝用户输入的“Licensed E-mail and Registration Code”到栈缓冲区,而未进行边界检查。攻击者可构造超长字符串,当数据量超过缓冲区容量时,会覆盖存储在栈上的SEH记录。利用过程中,攻击者首先填充大量破坏性数据(Junk)以到达SEH结构位置,随后写入特定的POP/POP/RET指令地址(用于覆盖Next SEH指针),接着在Next SEH字段放置短跳转指令,最后紧跟Shellcode。一旦程序发生异常,系统解析SEH链,执行被劫持的处理程序,通过短跳转转入Shellcode执行,从而实现任意代码执行。