Maison >cadre php >PensezPHP >La vulnérabilité de création de fichiers arbitraires thinkphp6 réapparaît

La vulnérabilité de création de fichiers arbitraires thinkphp6 réapparaît

藏色散人
藏色散人avant
2020-01-20 14:06:365391parcourir

01 Contexte

Récemment, QiAnXin a publié un avis de risque de sécurité concernant une vulnérabilité de création de fichiers « arbitraire » dans ThinkPHP 6.0. En réponse, DYSRC a immédiatement analysé la vulnérabilité et a réussi à reproduire la vulnérabilité.

Portée de la vulnérabilité : top-think/framework 6.x

02 Problème de localisation

Sur la base de la création de fichiers arbitraires et de l'historique des validations récentes, on peut en déduire que 1bbe75019 est un correctif pour ce problème. On peut voir que le correctif limite l'ID de session à uniquement des lettres et des chiffres, ce qui rend le problème plus évident.

La vulnérabilité de création de fichiers arbitraires thinkphp6 réapparaît

03 Analyse des principes

Laissant d'abord de côté les problèmes ci-dessus, examinons comment thinkphp stocke les sessions.

Le système définit l'interface thinkcontractSessionHandlerInterface

La vulnérabilité de création de fichiers arbitraires thinkphp6 réapparaît

La méthode SessionHandlerInterface::write est exécutée lors de la localisation des données de session, et le système l'exécutera automatiquement à la fin de chaque demande.

Voyons comment la classe thinksessiondriverFile est implémentée.

La vulnérabilité de création de fichiers arbitraires thinkphp6 réapparaît

Générez d'abord le nom du fichier basé sur $sessID via getFileName, puis writeFile pour écrire le fichier.

Suivez getFileName et concaténez directement le $sessID entrant comme nom de fichier. Puisque $sessID est contrôlable, le nom du fichier est contrôlable.

La vulnérabilité de création de fichiers arbitraires thinkphp6 réapparaît

Démonstration 04

À ce stade, l'ensemble du processus de vulnérabilité est fondamentalement clair. Les résultats de la démonstration locale sont donnés ci-dessous.

La vulnérabilité de création de fichiers arbitraires thinkphp6 réapparaît

Site Web chinois php, un grand nombre de tutoriels d'introduction thinkphp gratuits, bienvenue pour apprendre en ligne !

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