Question:
Quel exploit ces agents utilisateurs essaient-ils d'utiliser?
Alexis Evelyn
2019-04-02 23:44:02 UTC
view on stackexchange narkive permalink

Je viens de regarder ma page de suivi des agents utilisateurs sur mon site (archivée sur Yandex) et j'ai remarqué ces agents utilisateurs. Je pense qu'ils tentent d'exploiter mon serveur (Nginx avec PHP). Le 1 en face de celui-ci correspond au nombre de fois où l'agent utilisateur a été vu dans le journal Nginx. Ce sont également des agents utilisateurs raccourcis et non longs comme Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit / 537.36 (KHTML, comme Gecko) Chrome / 73.0.3683.86 Safari / 537.36 . Je n'ai plus accès aux journaux car je présume que cela s'est produit en janvier ou février (mes journaux les plus anciens sont en mars et j'ai créé le site en janvier).

  1 Mozilla / 5.9} imprimer (238947899389478923-34567343546345); {1 Mozilla / 5.9 {$ {print (238947899389478923-34567343546345)}} 1 Mozilla / 5.9 \ x22 {$ {print (238947899389478923-34567343546345)}} \ x221 Mozilla / 5,91 \ x22] 238947899389478923-34567343546345); // 1 Mozilla / 5.9 \ x22  

Quel exploit a été tenté et comment puis-je tester pour m'assurer que ces exploits ne sont pas utilisables?

L'agent utilisateur commence-t-il par `()`?Si oui, c'est probablement [l'exploit ShellShock] (https://en.wikipedia.org/wiki/Shellshock_ (software_bug))
@Ferrybig L'exploit shellshock a une syntaxe très particulière: () {:;};est ce qui le déclenche.
Une question connexe est https://security.stackexchange.com/questions/184115/.
Pour l'anecdote, j'apprécie que les chiffres utilisés soient «assez gros».J'avais l'habitude d'obtenir des résultats faussement positifs d'un scanner de vulnérabilité qui ajoutait deux nombres à 3 chiffres dans ses tests de problèmes mathématiques.Il «correspondrait» alors à la somme dans une sous-chaîne de l'en-tête «Content-Length» ._
Dans Plesk, il y avait une vulnérabilité qui permettait d'exécuter du code php qui se trouvait dans les journaux.Cela ne semble pas être le cas, mais le vecteur d'attaque semble similaire
Cinq réponses:
Dan Landberg
2019-04-03 01:12:09 UTC
view on stackexchange narkive permalink

Il semble essayer d'exploiter une forme d'injection de commande. Comme DarkMatter l'a mentionné dans sa réponse, il s'agissait probablement d'une vaste tentative de recherche de serveurs vulnérables, plutôt que de vous cibler spécifiquement. La charge utile elle-même semble simplement être en train de tester pour voir si le serveur est vulnérable à l'injection de commandes. Il ne semble pas avoir d'objectif supplémentaire.

Afin de tester si vous seriez affecté par ces charges utiles spécifiques, le moyen le plus simple serait de les envoyer à votre propre serveur et de voir comment elles répondent. Notez que je dis cela uniquement parce que les charges utiles elles-mêmes sont bénignes; Je ne recommande pas de faire cela avec toutes les charges utiles.

Mon pari est que votre serveur n'est pas vulnérable, car je me serais attendu à voir une demande de suivi pour exploiter réellement votre serveur.

Notez que lorsque vous testez à nouveau une charge utile de cette manière, vous ne vérifiez pas que vous n'étiez pas vulnérable au moment où cela s'est produit (alors que certaines mises à jour n'étaient peut-être pas encore faites): simplement que vous n'êtes plus vulnérable * plus *.Votre serveur pourrait encore avoir été compromis - même si je ne dis pas que c'est nécessaire, c'est le cas ici.
Le fait qu'il y ait ces tentatives particulières (apparemment infructueuses) dans le journal ne signifie pas qu'il n'y en a pas eu, qui n'a pas été enregistrée.Remarquez comment certaines de ces commandes potentielles ont `$ {...}`, d'autres non, d'autres encore ont `\ x22` qui est guillemet` "` etc. - le serveur a peut-être été immunisé contre certaines combinaisons deciter / évaluer tout en étant vulnérable aux autres.
DarkMatter
2019-04-03 00:29:31 UTC
view on stackexchange narkive permalink

Ce n'est probablement rien. Cela ressemble au spam généralisé d'un scanner recherchant sur le Web tout site Web qui évalue et renvoie cette soustraction alors qu'il ne devrait pas. C'est une chose assez courante à voir.

The D
2019-04-04 16:20:03 UTC
view on stackexchange narkive permalink

L'utilisation de noms de fonctions réels (par exemple print ) suggère qu'ils recherchent des sites Web qui utilisent eval d'une manière ou d'une autre (notez que cela pourrait être le eval (string $ code) , eval (string) de JavaScript et les équivalents d'autres langages de script).

Je note que le code exécutable apparaît immédiatement après le premier paramètre version après Mozilla / . Cela signifie que les auteurs de cette attaque pensent que suffisamment de sites Web dans la nature utilisent en fait eval comme moyen (horrible) d'analyser une version à deux composants ( major.minor ) nombre.

Donc, j'imagine que les sites Web vulnérables faisaient quelque chose comme ceci (pseudo-code):

  var userAgent = request.headers [" User-Agent "]; var indexOfVersion = userAgent.indexof ('/'); var indexOfVersionEnd = userAgent.indexof (indexOfVersion, ''); var versionText = userAgent.substring (indexOfVersion + 1, indexOfVersionEnd); var versionNumber = eval ( versionText); // < ------- c'est la vulnérabilité!  
520
2019-04-04 20:17:50 UTC
view on stackexchange narkive permalink

il semble qu'ils essaient d'injecter du code PHP dans les fichiers journaux. L'idée étant que si l'administrateur système utilise une application PHP pour analyser les journaux, certains pourraient voir le fichier journal comme fiable (après tout, l'utilisateur ne peut normalement pas modifier directement le fichier journal) et donc renoncer à tout processus de nettoyage.

Si vous regardez vos fichiers journaux via un éditeur de texte de bureau ou CLI, vous ne serez jamais vulnérable à cette attaque. Si vous utilisez une application PHP, assurez-vous qu'elle traite les journaux comme non fiables et nettoyez-la comme vous le feriez avec un champ de saisie utilisateur normal.

Steve Gazzo
2019-04-05 01:32:00 UTC
view on stackexchange narkive permalink

C'est simple; ils essaient l'injection de commandes PHP. Le processus consiste à remplacer un en-tête (dans ce cas le champ de l'agent utilisateur) par une expression mathématique, puis à déterminer si le code est en cours d'exécution voir la valeur de retour. Si le code est exécuté, la valeur de retour sera le résultat de l'expression, plutôt que l'expression d'origine. Vous remarquerez l'utilisation légèrement spammée des crochets ouverts et fermés, des points-virgules et d'autres caractères souvent utilisés pour tromper les langues interprétées en interprétant des données en tant que code exécutable. Il n'y a pas de quoi s'inquiéter, les analyses de vulnérabilités automatisées comme celle-ci sont désormais courantes.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 4.0 sous laquelle il est distribué.
Loading...