Maison  >  Article  >  cadre php  >  Enregistrez la vulnérabilité getshell de thinkphp5.0 et 5.1

Enregistrez la vulnérabilité getshell de thinkphp5.0 et 5.1

藏色散人
藏色散人avant
2020-08-12 13:48:145117parcourir

Ce qui suit est une introduction à la vulnérabilité getshell de thinkphp5.0 et 5.1 de la colonne du didacticiel du framework thinkphp. J'espère que cela sera utile aux amis dans le besoin. !

Enregistrez la vulnérabilité getshell de thinkphp5.0 et 5.1

Le site Web a été élevé auparavant, à cette époque, le site Web n'a été construit qu'il y a quelques jours. Personne ne devrait le faire exprès. analyse par lots de getshell, afin de me faciliter la recherche. Le système open source thinkcmf a créé un blog, qui avait l'air plutôt bien, car thinkcmf a été développé en utilisant le framework thinkphp5.0. Je suis allé sur thinkphp.cn et j'ai pris un. regardez, et il s’est avéré qu’il y avait une vulnérabilité d’élévation de privilèges.

Les modules, contrôleurs et méthodes du fichier libaray/think/app.php se distinguent par /.

Ensuite, le contrôleur n'est pas filtré, ce qui permet de construire et d'exécuter diverses fonctions

Enregistrez la vulnérabilité getshell de thinkphp5.0 et 5.1

Enregistrez la vulnérabilité getshell de thinkphp5.0 et 5.1

Enregistrez la vulnérabilité getshell de thinkphp5.0 et 5.1

J'ai construit un hôte virtuel localement pour tester http://cmf.com

Construire une url d'accès, qui peut directement imprimer phpinfo :

http://cmf.com/index.php?s=portal/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

Enregistrez la vulnérabilité getshell de thinkphp5.0 et 5.1

Ensuite, vous pouvez remplacer phpinfo par d'autres fonctions, comme utiliser la fonction file_put_content pour créer divers fichiers malaisiens et poneys.

La méthode officielle du correctif 5.0 de TP est :

Ajouter thinkApp

if (!preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) {
    throw new HttpException(404, 'controller not exists:' . $controller);
}
module

après le code pour obtenir le contrôleur dans la méthode
de la classe

Le La version de thinkcmf utilisée est : ThinkCMF 5.0.180901

Ensuite, j'ai vérifié le site officiel de thinkcmf et il a été mis à jour vers 5.0.190111. La dernière version a également mis à jour tp5.0 vers la dernière version 5.0.24. , qui inclut une mise à jour de sécurité, il n'existe bien sûr pas de vulnérabilité d'élévation de privilèges de ce type.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer