热心网友

你问的不是地方。

热心网友

不要做爱!!!

热心网友

别听楼上的胡扯,明明是软件问题。溢出漏洞原因分析:导致溢出的代码就在NSIISLOG。DLL中,如下。movecx,esi。calldwordptr[eax+8]。pusheax<----------------计算的POST数据长度。movecx,ebx。push[ebp+arg_4]<----------------POST数据的BUFFER。callsub_40F01EEE#########################################################################################################sub_40F01EEE函数内容:。pushebp。movebp,esp。moveax,1104h。callsub_40F02B80〈-----------------分配缓冲区,按含ESP-0X1104的调用。pushebx。pushesi。movebx,[ebp+arg_4]。pushedi〈-------------------导致溢出的参数,本来应该是被溢出的缓冲区的长度。movedi,[ebp+arg_8]这里却传成了POST数据的长度。orecx,0FFFFFFFFh。xoreax,eax。pushebx。repnescasb。push[ebp+arg_0]〈----------------------我们POST的数据。leaeax,[ebp+var_1104]。notecx。dececx。pusheax〈------------------------被溢出的缓冲区。mov[ebp+var_4],ecx。 〈-----------------------导致溢出的调用##############################################################################################################溢出原因:strncpy这个调用本来是安全函数调用的,原形是:strncpy(BUF1,BUF2,BUF1MAXLEN)但是在这个调用中,调用者误使这个函数的调用成如下方式了:strncpy(BUF1,BUF2,BUF2MAXLEN),这样第三个参数本来应该是BUF1MAXLEN来限制可能导致溢出的调用就成了无用的摆设。我们可以计算出返回地址的覆盖点是:0X1104+4(EBP占用的地址)=0x1108,那么需要0X110C个字节,注意POST的数据在覆盖中不能存在0x0,否则strncpy会自动用0添满后面的数据。

热心网友

老大你的硬件有问题!