کشف آسیب‌پذیری SQLI در نرم‌افزار Library Management System

کشف آسیب‌پذیری SQLI در نرم‌افزار Library Management System

تاریخ ایجاد

به گفته محققان امنیتی، در نرم‌افزار Library Management System متعلق به شرکت code-projects  یک آسیب‌پذیری شناسایی شده است. این آسیب‌پذیری با شناسه CVE-2023-7111، مهاجم را قادر می‌سازد که حمله تزریق بر روی پایگاه‌داده (SQLI) را در این نرم‌افزار اجرا کند. مهاجم برای استخراج اطلاعات از پایگاه‌داده، باید تمام مراحل زیر را به صورت کامل طی کند.
•    مهاجم ابتدا باید درخواست ارسالی خود  به این نرم افزار را از یک پروکسی (Proxy) مانند burpsuit عبور دهد. این درخواست باید حاوی پارامتر category باشد. با این پارامتر، مهاجم می‌تواند پی‌لودهای SQLI خود را در پایگاه‌داده تزریق کند.

Library Management System

•    اکنون که مهاجم پارامتر آسیب‌پذیر را پیدا کرده است، با استفاده از ابزار Sqlmap و با هدف استخراج اطلاعات، اقدام به پیاده‌سازی حمله SQLI می‌کند. در ادامه، دستور استفاده شده در ابزار  Sqlmap توسط مهاجم آورده شده است. همانطور که در دستور زیر مشخص است پی‌لودهای تزریق شده بر روی پارامتر category اعمال می‌گردد. همچنین مهاجم برای دور زدن WAF از دستکاری randomcase که به طور اتفاقی، کارکترهای پی‌لود را با حروف بزرگ و کوچک در درخواست‌ها ارسال می‌کند، بهره برده است.

python sqlmap.py -r r.txt -p category --risk 3 --level 5 --threads 1 --random-agent tamper=between,randomcase --proxy="http://127.0.0.1:8080" --dbms mysql --batch --current-db

•    پس از اجرای دستور بالا، مهاجم خروجی زیر را دریافت خواهد کرد. آنچه در این خروجی برای مهاجم اهمیت دارد، نام پایگاه‌داده فعلی ( current database: 'libsystem') است.

Library Management System

•    در پایان، مهاجم با اطلاعات به دست آمده از این خروجی و استفاده از سایر تنظیمات‌ ابزار Sqlmap، می‌تواند اطلاعات این پایگاه‌داده را استخراج کند. (تنظیماتی مانند --tables و نظایر آن)
 

محصولات تحت تأثیر
به گفته محققان امنیتی، نسخه 2.0 این نرم‌افزار در معرض این آسیب‌پذیری قرار دارد.

توصیه‌های امنیتی
  شرکت توسعه دهنده این نرم‌افزار، هنوز وصله امنیتی رسمی خود را برای مقابله با این آسیب‌پذیری ارائه نکرده است. با توجه به نوع این حمله (SQLI) از جمله راهکارهای ممکن برای مقابله با آن، می‌توان به موارد زیر اشاره کرد:
•    تعریف لیست سفید/ سیاه برای ورودی‌هایی که مقادیر آن توسط کاربر مشخص می‌گردد.
•    به منظور جلوگیری از تزریق پارامترهای مخرب، باید ورودی‌هایی که کاربر در درخواست خود ارسال می‌کند، اعتبار سنجی و صحت سنجی گردد.
•    استفاده از دیواره آتش (WAF)

منابع خبر:


[1] https://www.cve.org/CVERecord?id=CVE-2023-7111
[2] https://nvd.nist.gov/vuln/detail/CVE-2023-7111
[3] https://vuldb.com/?id.249006