انتشار اطلاعات كاربران وب‌سايت‌ها توسط افزونه‌ی Anti-Spam وردپرس

افزونه‌ی 'Spam protection, AntiSpam, FireWall by CleanTalk' در بیش از ۱۰۰،۰۰۰ سایت وردپرسی نصب شده است و می‌تواند اطلاعات حساسی را به مهاجمانی که حتی وارد سیستم نشده‌اند، ارائه دهد.

یک آسیب‌پذیری تزریق کد SQL که در یکی از افزونه وردپرس به نام "Spam protection، AntiSpam، FireWall by CleanTalk" کشف شده است که می‌تواند ایمیل‌ها، رمزهای عبور، داده‌های کارت اعتباری و سایر اطلاعات حساس کاربر را در معرض سوءاستفاده مهاجمان غیرمجاز قرار دهد.
افزونه‌ی Spam protection, AntiSpam, FireWall by CleanTalk در بیش از ۱۰۰،۰۰۰ و‌ب‌سایت وردپرسی نصب شده است و عمدتاً برای از بین بردن نظرات spam در بخش نظرات وب‌سایت استفاده می‌شود.
طبق گزارش Wordfence، این آسیب‌پذیری با شناسه CVE-2021-24295، که دارای شدت بالا (۷.۵ از ۱۰) می‌باشد، به دلیل نحوه انجام فیلتر در آن افزونه بوجود می‌آید که منجربه نگهداری یک لیست شده که رفتار آدرس‌های IP مختلف، از جمله user-agent string را که مرورگرها برای شناسایی خود ارسال می‌کنند، ردیابی می‌کند.
همچنین wordfence در ادامه‌ی گزارش تحلیلی خود، بیان کرده است که " متأسفانه، تابع update_log که در مسیر lib/Cleantalk/ApbctWP/Firewall/SFW.php قرار دارد و برای درج سوابق این درخواست‌ها در پایگاه داده مورد استفاده قرار می‌گیرد، نتوانسته از دستورات SQL آماده استفاده کند."
تزریق کد SQL یک آسیب‌پذیری در امنیت وب است که به مهاجمان اجازه می‌دهد تا در پرس و جوهایی (Queryهایی) که یک برنامه برای پایگاه داده خود ایجاد می‌کند، تداخل کنند، به این ترتیب آنها پاسخی را که پایگاه داده در صورت سؤال از شما می‌گیرد، رهگیری می‌کنند. استفاده از دستورات آماده یکی از راه‌های جلوگیری از این امر است که در آن، هر پارامتر پرس و جو را تفکیک می‌کنند تا یک مهاجم نتواند کل دامنه داده‌های بازگشتی را ببیند.
محققان توانستند با استفاده از روش تزریق کد SQL مبتنی بر زمان، از آسیب‌پذیری در CleanTalk جلوگیری کنند. این روش شامل ارسال درخواست‌هایی به پایگاه داده است که محتوای جدول پایگاه داده را "حدس" می‌زند و به پایگاه داده دستور می‌دهد در صورت درست بودن حدس، ارسال پاسخ را به تأخیر بیندازد یا عملیات sleep را انجام دهد.
به عنوان مثال، یک درخواست به این روش از پایگاه داده، ممکن است این باشد که اگر اولین حرف آدرس ایمیل کاربر مدیر با حرف c شروع شود، دستور دهد در صورت درستی پاسخ، ارسال آن را پنج ثانیه به تأخیر بیندازد و سپس حروف بعدی را به ترتیب حدس بزند.
همچنین بنابر اظهارات Wordfence: "تعدادی از تکنیک‌های دیگر برای تزریق کد SQL نیز وجود دارد که بسته به نوع Query آسیب‌پذیر، می‌تواند در بسیاری از موارد برای ضد آسیب‌سازی ورودی‌ها، به صورت سنتی و مؤثر کار کند."
"از آنجا که داده‌ها در جداول حساس قرار نمی‌گرفتند، مهاجم نمی‌توانست با استفاده از تغییر مقادیر موجود در پایگاه داده، از وب‌سایت برای دستیابی به هدف خود استفاده کند و همچنین این امر، بازیابی اطلاعات حساس از پایگاه داده را دشوار می‌کرد. "
طبق سازوکار SQL برنامه‌ها برای جلوگیری از تزریق کد SQL از تابع "sanitize_text_field" استفاده می‌کنند و user-agent در پرس و جو ها، تنها همراه با یک علامت quote گنجانده شده است.
محققان بیان کردند: "علیرغم تمام این موانع، ما توانستیم توانایی استخراج داده‌ها از هرجای پایگاه داده را با ارسال درخواست‌های حاوی دستورات SQL همراه با هدر درخواست user-agent ایجاد کنیم."
همچنین برای محافظت از آسیب‌پذیری ایجاد شده، مدیران وب باید نسخه پلاگین را به نسخه ۵.۱۵۳.۴ به‌روز کنند.


منبع خبر: https://threatpost.com/anti-spam-wordpress-plugin-expose-data/165901