این مقاله توسط مهندس میثم منصف با هدف آموزش شناسایی زودهنگام آسیبپذیری نرم افزار و ایمن سازی آنها تهیه شده است و به درخواست تیم توسعه دهنده هیچ اطلاعاتی درمورد وب سایت و نرم افزار تست شده در این گزارش نیامده است.
شرح سناریو:
ابتدا وارد وب سایت شده و یک حساب کاربری ایجاد میکنیم. پس از ثبت نام در وب سایت به ما اجازه دانلود برنامه موبایل داده میشود. در قدم بعدی، ابتدا فایل های apk را extract میکنیم.
![شکل1: صفحه ثبت نام برنامه موبایل](https://bugdasht.net/wp-content/uploads/2020/03/1-سناریو.jpg)
چون تعداد فایل های classes.dex زیاد است ابتدا نام آنها را تغییر میدهیم و تمامی فایلها dex رو به پوشه برنامه dex2jar انتقال میدهیم.
![شکل2: فایلهای داخل برنامه بعد از extract](https://bugdasht.net/wp-content/uploads/2020/03/2-سناریو.jpg)
با دستور dex2jar فایلهای dex رو به jar تبدیل میکنیم تا بتوانیم سورس کدهای برنامه را بخوانیم.
![شکل3: محتوایات فایل dex2jar](https://bugdasht.net/wp-content/uploads/2020/03/3-سناریو.jpg)
با ابزار jd-gui تمامی فایلهای jar را باز میکنیم.
![شکل4: محیط jd-gui](https://bugdasht.net/wp-content/uploads/2020/03/4-سناریو.jpg)
در این مرحله سعی میکنیم آدرس اتصال به وب سرویس را پیدا کنیم. دنبال کلمه login میگردیم در نتیجه جستجو روی کلمه Login.class کلیک میکنم و درنتیجه آدرس وب سرویس login پیدا میشود.
![شکل5: محتویات فایل dex2jar.jar بعد پیدا کردن کلمه login](https://bugdasht.net/wp-content/uploads/2020/03/5-سناریو.jpg)
![شکل6: محتویات login.class](https://bugdasht.net/wp-content/uploads/2020/03/6-سناریو.jpg)
آدرس را در مرورگر وارد کرده تا خروجی را بررسی کنیم. خطای PHP و فریمورک محبوب و امن Laravel دریافت میشود. همانطور که میبینید اطلاعاتی در مورد سرور و مسیر ها و … بدست آوردیم و از همه مهمتر نام کاربری و رمزعبور دیتابیس MySQL است.
![شکل7: پیدا کردن خطای PHP.](https://bugdasht.net/wp-content/uploads/2020/03/7-سناریو.jpg)
![شکل8: پیدا کردن فایهای دیتابیس MySQL.](https://bugdasht.net/wp-content/uploads/2020/03/8-سناریو.jpg)
تست اتصال به دیتابیس را بررسی میکنیم که از بیرون از شبکه اجازه دسترسی نمیدهد.
![شکل9: تست اتصال دیتابیس](https://bugdasht.net/wp-content/uploads/2020/03/9-سناریو.jpg)
آدرس IP سرور را تست میکنیم و احتمال میدهیم که مسیرphpmyadmin در دسترس باشد و اینجا نام کاربری و رمز عبور را امتحان میکنیم. تمامی اطلاعات در پایگاه داده قابل رویت و تغییر میباشد و برای جلوگیری از افشای اطلاعات محرمانه و خصوصی کاربران از طریق این نقص، مشکلات امنیتی و آسیبپذیری به مدیر وب سایت گزارش شده است.
![شکل 10: نمونه اطلاعات بدست آمده از طریق این آسیبپذیری.](https://bugdasht.net/wp-content/uploads/2020/03/10-سناریو.jpg)