Découvrez l'audit du framework ThinkPHP en une minute (partager)
La colonne du didacticiel du framework thinkphp ci-dessous vous présentera l'audit (partage) du framework ThinkPHP en une minute. J'espère qu'elle sera utile aux amis dans le besoin !
Introduction à ThinkPHP
ThinkPHP est a Il s'agit d'un framework de développement PHP léger, orienté objet, gratuit et open source, rapide et simple. Il a été fondé début 2006 et publié dans le cadre de l'accord open source Apache2. Il est né pour le développement d'applications WEB agiles et le développement simplifié d'applications d'entreprise. ThinkPHP adhère au principe de conception simple et pratique depuis sa naissance tout en conservant d'excellentes performances et un code minimal, il se concentre également sur la facilité d'utilisation. Il possède de nombreuses fonctions et fonctionnalités originales. Grâce à la participation active de l'équipe communautaire, il a été continuellement optimisé et amélioré en termes de facilité d'utilisation, d'évolutivité et de performances. Il est devenu le cadre de développement d'applications WEB le plus leader et le plus influent en Chine. , avec de nombreux cas typiques, garantit qu'il peut être utilisé de manière stable pour le développement commercial et au niveau du portail.
Brève description de la vulnérabilité
Bien que le framework ThinkPHP 5.0.x utilise des requêtes pour faire fonctionner la base de données, mais dans les méthodes d'insertion et de mise à jour, les paramètres transmis sont contrôlables et non strictement filtrés, ce qui a finalement conduit à l'apparition de cette vulnérabilité d'injection SQL.
Analyse de la vulnérabilité d'injection SQL dans le framework ThinkPHP 5.0.x
thinkphpTéléchargez la version 5.0.15 sur le site officiel : http://www.thinkphp.cn/down/1125.html . Configurez la base de données, la base de données est tp, le nom de la table est utilisateur et il y a deux champs identifiant et nom d'utilisateur.
Modifier les informations de configuration de la base de données application/database.php dans application/config Activez le débogage et la trace dans .php.
Ajouter la méthode dans la classe Index dans application/index/controller/Index.php :
public function testsql() { $username = input('get.username/a'); db('user')->where(['id'=> 1])->insert(['username'=>$username]); }
s'explique ainsi :
http://127.0.0.1/thinkphp/ public/ index.php/ index/ index/ index
nom de domaine répertoire du site Web accès externe fichier d'entrée du répertoire contrôleur de réception nom de la méthode
Extension :
À propos de la fonction updatexml UPDATEXML (XML_document, XPath_string, new_value );
Le premier paramètre : XML_document est au format String et est le nom de l'objet document XML. Le texte est Doc<. 🎜>
Le deuxième paramètre : XPath_string (chaîne au format Xpath). Si vous ne comprenez pas la syntaxe XPath, vous pouvez trouver des tutoriels sur Internet.
Le troisième paramètre : new_value, format String, remplace les données qualifiées trouvées 作用:改变文档中符合条件的节点的值 访问payload,就可以触发漏洞了。 漏洞分析 首先,我们知道 insert 方法存在漏洞,那就查看 insert 方法的具体实现。 通过input获取到参数后,username变量情况如下: 跟入insert,thinkphp/library/think/db/Query.php 然后执行insert语句 跟入 thinkphp/library/think/db/Builder.php 跟入parseData至 thinkphp/library/think/db/Builder.php 可以看出$val是数组,且根据$val[0]值为inc,会通过switch语句进入到’inc’: 此处的parseKey,即thinkphp/library/think/db/builder/Mysql.php 此处并未对传入的$key进行更多的过滤与检查,将其与前面经过parseKey的结果进行拼接后返回给result 至此注入成功。 漏洞修复 https://github.com/top-think/framework/commit/363fd4d90312f2cfa427535b7ea01a097ca8db1b 在进行dec和inc操作之前对$val[1]的值进行了再次确认。 总结 第一次审计Thinkphp框架 ,结合Thinkphp5.0手册以及网上教程完成此次漏洞的审计。 相关推荐:最新的10个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!$sql = $this->builder->insert($data, $options, $replace);

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'article traite des considérations clés pour l'utilisation de ThinkPHP dans des architectures sans serveur, en se concentrant sur l'optimisation des performances, la conception sans état et la sécurité. Il met en évidence des avantages tels que la rentabilité et l'évolutivité, mais relève également des défis

Le conteneur IOC de ThinkPhp propose des fonctionnalités avancées comme le chargement paresseux, la liaison contextuelle et l'injection de méthode pour une gestion efficace des dépendances dans les applications PHP. COMMANDE CHARACTER: 159

L'article discute de la prévention des vulnérabilités d'injection SQL dans ThinkPhP à travers des requêtes paramétrées, en évitant le SQL brut, en utilisant ORM, des mises à jour régulières et une bonne gestion des erreurs. Il couvre également les meilleures pratiques pour sécuriser les requêtes de base de données et le validat

L'article traite du cadre de test intégré de ThinkPhP, mettant en évidence ses principales fonctionnalités telles que les tests d'unité et d'intégration, et comment il améliore la fiabilité des applications grâce à la détection précoce des bogues et à une meilleure qualité de code.

L'article décrit la création d'un système de file d'attente de tâches distribué à l'aide de ThinkPhp et RabbitMQ, en se concentrant sur l'installation, la configuration, la gestion des tâches et l'évolutivité. Les problèmes clés incluent assurer la haute disponibilité, éviter les pièges communs comme Imprope

L'article traite des différences clés entre ThinkPHP 5 et 6, en se concentrant sur l'architecture, les fonctionnalités, les performances et l'adéquation pour les mises à niveau héritées. ThinkPhp 5 est recommandé pour les projets traditionnels et les systèmes hérités, tandis que ThinkPhp 6 convient au nouveau PR

L'article discute de la mise en œuvre de la découverte de services et de l'équilibrage des charges dans les microservices ThinkPHP, en se concentrant sur la configuration, les meilleures pratiques, les méthodes d'intégration et les outils recommandés. [159 caractères]

L'article traite des meilleures pratiques pour gérer les téléchargements de fichiers et intégrer le stockage cloud dans ThinkPHP, en se concentrant sur la sécurité, l'efficacité et l'évolutivité.
