چطور همه ایمیلهای Salesforce Marketing Cloud رو خوندیم
خلاصهٔ کاملتر
Salesforce Marketing Cloud (SFMC) که قبلاً با نام ExactTarget شناخته میشد، یکی از پرکاربردترین پلتفرمهای ارسال ایمیل انبوه بین شرکتهای بزرگه. تقریباً هر شرکت Fortune 500 ازش استفاده میکنه و همین موضوع باعث میشه هر آسیبپذیری توش خیلی جدی و گسترده باشه. محققان Searchlight Cyber که سابقهی کشف باگهای مشابه در ServiceNow و Uber رو دارن، این بار زیر ذرهبین SFMC رفتن.
برای پیدا کردن نمونههای SFMC در اینترنت، میشه دنبال سابدامینهایی با الگوهای مثل click. یا view. گشت که به *.exacttarget.com یا *.cp-sap.sfmc-content.com اشاره میکنن. SFMC روی حدود ۱۰ ریجن مختلف (عمدتاً AMER و EMEA) کار میکنه و همهی نمونهها در یه محیط shared tenancy هستن.
SFMC برای قالببندی ایمیلها از سه زبان اسکریپتی پشتیبانی میکنه: AMPScript (با سینتکس %%= ... =%%)، SSJS (جاوااسکریپت سمت سرور با تگ ``) و GTL (با سینتکس {{= ... }}). این زبانها امکانات کاملی مثل حلقه، شرط، متغیر و توابع متنوع دارن. مثلاً با AMPScript میشه اطلاعات مشترک رو مستقیم توی ایمیل نمایش داد:
Welcome to our mailing list, %%= AttributeValue("fullName") =%%!نقطهی اصلی آسیبپذیری Template Injection بود — یعنی اگه مهاجم بتونه کد AMPScript یا SSJS دلخواهش رو داخل یه قالب ایمیل تزریق کنه، اون کد موقع رندر شدن ایمیل اجرا میشه. محققان برای تأیید اجرای کد از تابع HttpGet به عنوان canary استفاده کردن — وقتی بعد از تزریق یه DNS lookup میدیدن، مطمئن میشدن که کدشون اجرا شده.
مهمترین بخش ماجرا Data Views بود؛ جداول سیستمی SFMC که همه چیز رو نگه میدارن: از ایمیلهای ارسالشده گرفته تا پیامکها و لیست کامل مشترکین. این دادهها با تابع LookupRows بدون هیچ محدودیتی از داخل قالبهای ایمیل قابل دسترس بودن. محققان با کد زیر تونستن تعداد مشترکین پایگاه داده رو بخونن:
%%= RowCount(LookupRows("_Subscribers","SubscriberKey",_subscriberkey)) =%%با ادامهی این روش و استفاده از توابع دیگه SFMC، میشد رکوردهای فردی رو هم استخراج کرد و به تمام اطلاعات مشترکین — از جمله آدرس ایمیل و دادههای شخصی — دسترسی پیدا کرد. از اونجایی که SFMC در یه محیط shared tenancy کار میکنه و اکثر شرکتهای بزرگ ازش استفاده میکنن، این آسیبپذیری پتانسیل تأثیرگذاری روی طیف خیلی گستردهای از سازمانها رو داشت.
نکات کلیدی:
- SFMC پرکاربردترین پلتفرم ایمیل مارکتینگ بین شرکتهای بزرگه و آسیبپذیریهاش دامنه گستردهای دارن
- زبانهای اسکریپتی AMPScript، SSJS و GTL در SFMC امکان Template Injection رو فراهم میکنن
- از طریق Template Injection میشه به Data Viewهای سیستمی دسترسی پیدا کرد و تمام اطلاعات مشترکین رو استخراج کرد
- تابع
LookupRowsهیچ محدودیتی برای دسترسی به دادههای حساس از داخل قالبهای ایمیل نداشت - ماهیت shared tenancy در SFMC باعث میشه چنین آسیبپذیریهایی تأثیر بسیار گستردهتری داشته باشن




