Modbus Slave缓冲区溢出漏洞CVE-2022-1068分析与复现
异或的源数据是poc中字符串按两位一组转化为十六进制的值,异或的KEY为“97280132”,比如第一轮循环时,将poc中的前两位字符串“AA”转换为0xAA,然后与KEY的第一位字符“9”,十六进制为0x39进行异或,最后将异或的结果放到栈中缓冲区MultiByteStr[v52]进行保存,如果poc中的字符串个数大于600个字符(600=300*2,poc中为736个字符“A”),将发生栈溢出,可以覆盖栈中SEH地址,函数返回地址和局部变量等,导致程序崩溃。