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. !
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
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
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 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!