熱心網友

你問的不是地方。

熱心網友

不要做愛!!!

熱心網友

別聽樓上的胡扯,明明是軟件問題。溢出漏洞原因分析:導致溢出的代碼就在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添滿后面的數據。

熱心網友

老大你的硬件有問題!