
چگونه آسیب پذیری وردپرس را بررسی کنیم
نقاط آسیب پذیری وردپرس
وردپرس به عنوان محبوب ترین CMS استفاده شده در اینترنت، مشکلات امنیتی دارد که همه ی ما از آنها آگاه هستیم. این مورد در نسخه های قدیمی تر آن بیشتر به چشم می خورد و برای رفع آن بهتر است که همیشه وردپرس را به آخرین نسخه ی موجود آپدیت نماییم. این مشکلات گاهی حتی در نسخه های جدید وردپرس نیز به چشم می خورند. در این مقاله سعی خواهیم کرد تا راه های اصلی شناسایی نقاط آسیب پذیر وردپرس را توضیح دهیم.حدس زدن رمز عبور ادمین
خیلی از مدیران وبسایت با اسکریپت وردپرس، رمز عبور ساده ای را برای کاربر ادمین وردپرس انتخاب می کنند. صفحه ی ورود به بخش ادمین معمولا در مسیر /wp-login.php قرار دارد. ابزارهایی وجود دارند که می توانند به صورت خودکار به کمک یک دیکشنری حاوی رمز عبور، یا همان حملات Bruteforce برای یافتن رمز عبور ادمین وردپرس تلاش نمایند.وارد کردن Arbitrary Strings
بیایید نگاهی بیاندازیم به کادر جستجو که در آن می توانیم دنبال یه string بگردیم. در تصویر زیر می بینید که ما به دنبال searchstring گشته ایم و هیچ نتیجه ای پیدا نکرده ایم. حالا ببینیم چه اتفاقی می افتد اگر ما به دنبال چیزی بگردیم که کاراکترهای غیر مجاز هم داشته باشد. کاراکترهایی مانند، چپ/راست، آپاسترف و غیره.
جلوگیری از راه های نفوذ به وردپرس
بگذارید یک <b> را جستجو کنیم و نتیجه را ببینیم.
افزایش امنیت سایت وردپرسی
نکته 1:
وقتی به دو تصویر جستجو نگاه می کنید در ابتدا تفاوتی مشاهده نمی کنید. اما اگر با وقت نگاه کنید متوجه می شوید که جمله ی “The search didn't find any search page that matched the search query.” با خط بولد نوشته شده است. چرا اینگونه است؟ دلیل آن این است که ما به دنبال <b> گشته ایم که داخل یک پوشش قرار نگرفته و مستقیما داخل کد html قرار دارد. دلیل این مورد نگذاشتن درست ورودی کاربر، داخل یک حصار، توسط برنامه نویس است. از آنجایی که ما کاراکتر مخصوص گذاشته ایم، ورودی کاربر مستقیما داخل اچ تی ام ال قرار گرفته و به کاربر بازگردانده شده است.نکته 2:
کاراکتر <b> داخل زبان html به معنی bold شدن یک خط از ابتدا تا انتها، توسط مرورگر وب است. در ابتدا این به نظر یک مشکل امنیتی بزرگ، نمی آید. اما ما راهی یافته ایم که بتوانیم کد را مستقیم داخل کد HTML یک صفحه قرار دهیم. این یعنی ما می توانیم یک کد جاوا اسکریپت بنویسیم و آن را جستجو کنیم. کد ما احتمالا با جستجو، مستقیما بر روی سیستم میزبان سایت، اجرا خواهد شد. حالا مهاجم می تواند یک لینک مخصوی ایجاد کند که شامل کد جاوا اسکریپت مخرب باشد و آن را به سمت قربانی ارسال کند. وقتی کاربر برروی لینک کلیک می کند، کد جاوا اسکریپت مخرب اجرا شده و می تواند کوکی های جلسه ی ارتباطی کاربر را سرقت کند که می تواند به مهاجم امکان ورود با نام کاربر را داده و در ادامه، اکانت کاربر را در دست بگیرد. این مورد همچنین در صورتی که وبسایت داده ها را مستقیما داخل کوئری SQL ذخیره می کند، می تواند مشکل امنیتی برای دیتابیس سرور ایجاد کند. اگر این اتفاق بیافتد، ما می توانیم به کل دیتابیس مورد استفاده ی وبسایت دسترسی داشته باشیم.فایل HTACCESS
همیشه سعی نمایید، که دسترسی عمومی به ایندکس ها را در هر جایی که ممکن است مسدود کنید. اگر وب سرور آپاچه یا سیستم دیگری که از فایل .htaccess استفاده می کند، استفاده می کنید، این کار آسان است. فایل .htaccess را داخل فولدر اصلی سایت خود بیابید. منظور فولدری است که فایل index.php شما آنجا قرار دارد. دستور Options –Indexes را داخل فایل وارد نموده و ذخیره نمایید. در صورتی که وب سرور شما برای کار با فایل های PHP در زمانی با مشکل مواجه بوده است، بسیار مهم است که فولدرهایی را که تنها سرور به آنها دسترسی دارد را مسدود نمایید. اگر کد PHP بر روی مرورگر کاربر شما به جای صفحه ی وب مشاهده گردد ، آنها ممکن است اطلاعات دیتابیس و یا اطلاعات دیگری درباره ی PHP/MySQL شما بیابند. فولدر wp-includes مهمترین فولدری است که می بایست مسدود شود. برای انجام این کار در فایل .htaccess دستور زیر را وارد نمایید.RewriteRule ^(wp-includes)/.*$ ./ [NC,R=301,L]
اگر زیرفولدری برای wp-include وجود دارد، کد زیر را برای هر کدام از آنها داخل فایل .htaccess وارد نمایید.
RewriteRule ^(wp-includes|subdirectory-name-here)/.*$ ./ [NC,R=301,L]
پلاگین WP-DB Manager
برای تهیه ی بک آپ از کل سایت وردپرس شما بسیار مناسب است. این پلاگین همچنین آسیب پذیری های وردپرس را به شما اطلاع داده و بخش های دیتابیس را که به صورت پابلیک قابل مشاهده است را مشخص می کند. همیشه از سایت خود بک آپ تهیه نمایید تا در صورت بروز بدترین حالت نیز بتوانید سایت را به آسانی ریستور نمایید.دیتابیس هک گوگل
ابتدا می بایست نگاهی به دیتابیس هایی مانند (GHDB(Google Hacking DataBase بیاندازیم و به دنبال واژه ی wordpress یا چیزی مشابه آن بگردیم. با این کار چند کوئری مانند تصویر زیر مشاهده خواهیم کرد. شما سه ستون در تصویر بالا مشاهده می کنید. ستون اول ستون Data است که اطلاعات کوئری جستجو های ذخیره شده در در GHDB نمایش می دهد. بعد از آن ستون Title است که کوئری هایی را که ما در واقع می بایست داخل سرچ گوگل قرار داده تا به آسیب پذیری وردپرس برسیم را نشان می دهد. بعد از آن Summery یا خلاصه است که اطلاعات کافی برای جستجوی ستون عنوان در اینترنت را به ما می دهد. مثال اول به دنبال فایل های حاوی اطلاعات می گردد و از یک کوئری جستجو filetype:avastlic استفاده می کند. این مستقیما به به وردپرس مربوط نیست اما کوئری از یک وبلاگ وردپرس گرفته شده است. یک ورودی کاملا مرتبط با وردپرس در زیر نشان داده شده است که به دنبال فایل هایی می گردد که شامل رمز عبور هستند.کوئری زیر به دنبال فایل های با پسوند SQL که شامل کلمه ی wp-content/backup در آدرس باشند، می گردد.
filetype:sql inurl:wp-content/backup-*حالا بگذارید توسط کوئری جستجوی بالا در گوگل به دنبال فایل های حاوی رمز عبور بگردیم. نتایج جستجوی کوئری در زیر قابل مشاهده است. گوگل 7.170 نتیجه پیدا کرده است که ما می توانیم برای یافتن رمز عبور آنها را بررسی کنیم. اگر در نتایج آن دیتابیس های SQL جستجو نماییم، به احتمال زیاد، چند نام کاربری و رمز عبور خواهیم یافت.