Facile processus WP SMTP (de V1.3.9) 0 vulnérabilité jour attaqué et reproductibilité

avant-propos

Votre propre site d'hébergement de blog avec wordpres le dernier mois a trouvé quelques anomalies.

3.12 jours, l'éclatement de la boîte aux lettres, plus de 100 lettres reçues message de notification sur le site de l'explosion.

Ce jour-là également vu pas l'impression étrange, car avant qu'il y ait eu une telle situation, il y aura des dizaines de préavis de dynamitage tous les jours, les laisser aller au Japon (Department Station Bouddha ouvert) ......

Mais ce message quelques jours ton continu m'a dit que cette question est pas si simple.

Le 15, un avis de dynamitage deux fois plus élevé que les deux jours précédents, je vais vous connecter sur le site pour voir la situation et n'a pas trouvé quelque chose d'inhabituel, mais le montant de celui-ci, IP dynamitage ont été bloqués. est sacrément que le temps n'a pas désempli, courir ici, courir là-bas, qui ont encore le temps de prendre soin de vous cette explosion.

16 Nombre de dynamitage vers le bas baisse, je ne les soins encore plus, jusqu'à ce que n ° 19, e-mail suggérant un nouveau membre de l'enregistrement de mon domaine? ? ?

fonction d'enregistrement du site Web peut fermer enregistré? Ceci est le jour où ils ont été trouvés; traces de dynamitage que les utilisateurs enregistrés ont arrêté avec succès vers le bas.

Quant au plus tard les explosifs, les estimations ne sont pas le même groupe de personnes, après un site d'enregistrement de compte réussi a également reçu un grand nombre de verrouillage avis.

D'après le dynamitage analyse du temps, sont 23-7 cette fois, quelques jours en chien fatigué, je matin encore tôt et vous venez de faire?

Jusqu'à ce que vous voyez ce message, je ***** ......

Site Web non mon site.

Visiter le site web découverte de fond ont bloqué IP tous été effacée:

Dernière attaquant actif. Pensez à ce merveilleux ah truc, le dynamitage qui, connectez-vous directement avec ses propres comptes.

Je regarde le calendrier, il est estimé être occupé jusqu'au début Avril. .

Je refermai rapidement le site, le site a reculé, pour une analyse post hoc.

analyse

L'analyse commence, devant un tas de bêtises ......

Le site a été fait un peu de changement: la fonction d'enregistrement est activée.

La découverte de nouveaux utilisateurs enregistrés:

Adresse du domicile est modifiée:

Home est injecté script de script pour sauter vers un site Web malveillant, dans ses différents scripts script pages aussi trouvé-sujet plug saut implanté.

Est-NinTechNet dernière communication WordPress WP plug-ins SMTP apparaissent 0 vulnérabilités jour (actuelles en version V1.3.9) jugement, l'attaquant est d'utiliser les vulnérabilités 0 jour sont modifiés en fonction du contenu du site et 315 jours .;

3.17 jours, la version officielle mise à jour v1.3.9.1, n'a pas été mise à jour du webmaster mise à jour s'il vous plaît!

Analyse de la vulnérabilité: bloc de code Problèmes

 admin_init fonction () { if (defined ( 'DOING_AJAX') && DOING_AJAX) { add_action ( 'wp_ajax_swpsmtp_clear_log', array ($ ce, 'clear_log')); add_action ( 'wp_ajax_swpsmtp_self_destruct', array ($ this, 'self_destruct_handler')); } // Afficher le journal if (isset ($ _GET <'swpsmtp_action'>)) { if ($ _GET <'swpsmtp_action'> === 'view_log') { $ Nom_fichier_journal = $ this- > opts <'smtp_settings'> <'nom_fichier_journal'>; if (! (file_exists plugin_dir_path (__FILE__). $ nom_fichier_journal)) { if ($ this- > log ( "débogage facile WP SMTP fichier journal \ r \ n \ r \ n") === false) { wp_die ( 'Can \' t écrire dans le fichier journal Vérifiez si le répertoire du plugin ( 'plugin_dir_path (__FILE__) ..') est inscriptible » ..); }; } $ Logfile = fopen (plugin_dir_path (__FILE__) nom_fichier_journal de $, 'rb'.); if (! $ logfile) { wp_die ( 'Can \' t fichier journal ouvert.); } header ( 'Content-Type: text / plain'); fpassthru ($ logfile); die; } } // vérifier si cela est paramètres d'exportation demande $ Is_export_settings = filter_input (INPUT_POST, 'swpsmtp_export_settings', FILTER_SANITIZE_NUMBER_INT); si (is_export_settings de $) { $ Data = array (); $ Opts = get_option ( 'swpsmtp_options', array ()); $ Données <'swpsmtp_options'> = $ opts; $ Swpsmtp_pass_encrypted = get_option ( 'swpsmtp_pass_encrypted', false); $ Données <'swpsmtp_pass_encrypted'> = $ swpsmtp_pass_encrypted; if ($ swpsmtp_pass_encrypted) { $ Swpsmtp_enc_key = get_option ( 'swpsmtp_enc_key', false); $ Données <'swpsmtp_enc_key'> = $ swpsmtp_enc_key; } $ Smtp_test_mail = get_option ( 'smtp_test_mail', array ()); $ Données <'smtp_test_mail'> = $ smtp_test_mail; $ Out = array (); $ Out <'data'> = serialize ($ data); $ Out <'ver'> = 1; $ Out <'somme'> = md5 ($ sur <> 'données'); $ Nom du fichier = 'easy_wp_smtp_settings.txt'; header ( 'Content-Disposition: pièce jointe; filename = "' $ filename .. '"'); header ( 'Content-Type: text / plain'); echo serialize ($ out); sortie; } $ Is_import_settings = filter_input (INPUT_POST, 'swpsmtp_import_settings', FILTER_SANITIZE_NUMBER_INT); si (is_import_settings de $) { $ ERR_MSG = __ ( 'Une erreur est survenue lors de l'importation des paramètres', 'facile wp-smtp'); si (vide ($ _FILES <'swpsmtp_import_settings_file'>)) { echo $ err_msg; wp_die (); } $ In_raw = file_get_contents ($ _FILES <'swpsmtp_import_settings_file'> <'tmp_name'>); try { $ En = unserialize ($ in_raw); si (vide ($ dans <'data'>)) { echo $ err_msg; wp_die (); } si (vide ($ en <'somme'>)) { echo $ err_msg; wp_die (); } si (md5 ($ dans <'data'>)! == $ en <'somme'>) { echo $ err_msg; wp_die (); } $ Data = unserialize ($ dans <'données'>); foreach ($ data comme $ key = >  $ Valeur) { update_option ($ key, $ value); } set_transient ( 'easy_wp_smtp_settings_import_success', true, 60 * 60); $ Url = admin_url () 'Options-general.php page = swpsmtp_settings? .; wp_safe_redirect ($ url); sortie; } Catch (Exception $ ex) { echo $ err_msg; wp_die (); } } }

Admin_init de la fonction ci-dessus facile wp-smtp.php de script () lorsqu'un utilisateur accédant à la zone de gestion par le crochet en cours d'exécution admin_int. Il est utilisé pour afficher / supprimer le journal, la configuration import / export et mettre à jour l'option de base de données Wordpress, il ne vérifie pas la fonctionnalité de l'utilisateur, de sorte que tout utilisateur peut se connecter à déclencher. Mais il peut également être effectuée par les utilisateurs non authentifiés, car facile WP SMTP en utilisant AJAX et admin_inj hook exécuter sur admin-ajax.php.

Ainsi, l'utilisateur non authentifié peut envoyer ajax demande, par exemple action = swpsmtp_clear_log, pour déclencher les fonctions décrites ci-dessus et exécute son code.

La traçabilité

A l'origine destiné à être traçable à l'attaquant, mais le serveur est hébergé dans le nuage IP Ali, pour l'exportation ne sont pas IP indépendante, le dynamitage de la capture d'écran ci-dessus tous les IP ne sont pas les attaquants, la douleur est encore plus d'oeufs pour nettoyer les journaux du site sont nus (pas de temps Connexion traitement de fond), m'a laissé que deux sauts sur le nom de domaine.

Par l'intelligence sont à la fois la menace d'éclatement IP IP. Maintenant, utilisez un navigateur pour accéder au nom de domaine de site Web d'informations de pêche rapide (non-sens, combien de jours est un wordpress).

Dans les commentaires bte ce widget aussi beaucoup de condamner, on peut imaginer à ce moment combien de sites attaquaient.

reproduction

A côté de reproduire la vulnérabilité.

Confirmer facile WP SMTP Version:

Confirmer la fonction d'enregistrement de domaine est désactivé:

Selon POC donné en ligne, créez un fichier, il va écrire le contenu du fichier:

Ce fichier est une demande normale retournera un 0:

Téléchargez le fichier:

Visitez le site Web écran de connexion, la fonction d'enregistrement a été activée. Essayer d'enregistrer un compte, vérifier si l'utilisateur est enregistré en tant qu'administrateur, processus d'inscription et nouveau processus d'inscription de l'utilisateur pour obtenir un message par la poste.

La vérification est réussie.

Voir devipentesting99 les utilisateurs? Ceci est l'attaquant d'utilisateur créé.

Jusqu'à présent, la reproduction se termine.

« Vous avez un webmaster, » et ce ne dites pas (laisser la bibliothèque supprimé).

Un petit conseil:

Réparer le fichier est modifié, supprimé webshell (trouvé à télécharger plus webshell);

Plugin mise à jour à la dernière version, la version du point d'équilibre est également disponible;

problèmes de site Web doivent être dans le temps pour résoudre les problèmes, l'importance de l'intervention d'urgence;

Mettre l'accent sur les dernières vulnérabilités pour mettre à jour le lancement officiel de la version mise à jour;

Des sauvegardes régulières des journaux Web, le journal ne peut pas être à l'avenir;

Peut se permettre d'utiliser un pare-feu d'applications Web.

* L'auteur: timneh, tiré à part FreeBuf.COM

Li Yuan Yi Haluo une pause lore Preciado, Shenzhen Shenhua 2-1
Précédent
GIF: Tian conformément au point de bol, Carrasco a frappé, Suning 1-1 partie
Prochain
De la DNF de démonstration (PW) modifier les données du jeu au jeu
Ses films ont contribué à populariser l'article, les primés, mais après le marché boursier tourné autour de 268 millions dus grosses sommes d'argent
[Quand] un menteur rencontré un chapeau blanc et de voir comment je pris le contrôle de l'ordinateur de télécommunications arnaqueur
La colère haine site MLM secourues filles trébuchent
Un claquement de ses doigts le nombre de 1% a gagné 13% de l'écran box-office CEO IMAX Entertainment Megan Corrigan box-office IMAX Secret "secret"
Un système de gestion de l'information formation des enseignants de partager des idées de pénétration
Chiu débuts en tant qu'ambassadeur de porte-parole de la publicité « endosseurs les tendances et les porte-paroles de l'industrie Valuation Standards d'affaires » publié
Les cinq outils de piratage les plus couramment utilisés, et comment défendre
Le chef du secrétaire du parti contrôlé demeure en possession de voitures de luxe, montres, armes, ivoire
La nouvelle "ruée vers l'or": The Rise of Western Chine
GIF: Joe Wei handball envoyer des points, Yi Haluo nuit égaliseur
GIF: tir de pénalité Alan handball Jiang Zhe, 2-2 Chongqing Tianhai