TGViewer
Security Analysis Security Analysis @securation · 12.3K subscribers
Post #1941 6.91K
⭕️ پنتست کامپوننت اپ های اندرویدی پارت سوم - (allowBackup, debuggable)

1) allowBackup:
این فلگ در AndroidManifest.xml تعیین میکند که ایا سیستم اجازه دارد از دیتا های روت برنامه برای کاربر بکاپ بگیرد یا خیر، اگر مقدار این فلگ true باشد مهاجمی که دسترسی فیزیکی به دستگاه دارد با استفاده از adb میتواند تمامی دیتا های روت برنامه را استخراج کند(در اندروید 12 به بعد باید حتما فلگ debuggable نیز true باشد) که این دیتا شامل دیتابیس ها، SharedPreferences و تمامی فایل های ذخیره شده در روت برنامه می باشد!(بدون اینکه دستگاه روت شده باشد) این آسیب پذیری زمانی بحرانی میشود که اپ اطلاعات حساسی مانند توکن اهراز هویت، کلید های رمزنگاری و یا اطلاعات خصوصی کاربر را در مسیر روت ذخیره کرده باشد؛ راهکار امنیتی مطابق استاندارد MASTG غیر فعال کردن فلگ بکاپ در نسخه ریلیز برنامه میباشد، یا در صورت نیاز به امکان بکاپ، میبایست از طریق backup_rules.xml امکان بکاپ گیری از فایل های حساس را جلوگیری نمود

#backup
adb backup -apk com.example.app -f backup.ab
#restore
adb restore backup.ab

استخراج داده ها از فایل بکاپ backup.ab توسط ابزار abe:
https://github.com/nelenkov/android-backup-extractor

2) debuggable:
این فلگ نیز در AndroidManifest.xml قرار دارد، اگر این فلگ برای یک اپ در نسخه ریلیز برابر true باشد، یک آسیب پذیری جدی محسوب میشود؛ چراکه مهاجم میتواند با استفاده از ابزار هایی مانند jdb به پروسه اپ متصل شده مقادیر متغیر های حساس در حافظه مثل توکن اهراز هویت یا کلید های api را بخواند و یا حتی flow اجرای برنامه را تغییر دهد، همچنین در اندروید 12 به بعد پیش شرط اجرای موفق دستور adb backup برای استخراج دیتای برنامه است، علاوه براین به واسطه دستور run-as که از adb shell در دسترس است میتوان به دایرکتوری روت اپ دیباگیبل دسترسی داشت و حتی فایل های آنرا ویرایش کرد و سو استفاده های لازم را به انجام رساند! بنابراین لازم است که در نسخه ریلیز و موقع انتشار عمومی برنامه مقدار این فلگ را برابر false قرار دهید

# printing the content of SharedPref
adb shell "run-as com.target.app cat shared_prefs/AppPref.xml"

# listing all db names
adb shell "run-as com.target.app ls -la databases/"

# manipulating isLoggedIn to true using sed
adb shell "run-as com.target.app sed -i 's/isLoggedIn\" value=\"false\"/isLoggedIn\" value=\"true\"/' shared_prefs/AppPref.xml"

# backing up entire directory
adb shell "run-as com.target.app tar -czf - /data/data/com.target.app" > backup.tar.gz


@securation
#Android #RE #Owasp #Mastg #allowBackup
  • ❤ 13
  • 👍 1
More from @securation
  1. Sep 28, 2026ترس توی ذهن آدم با فکر کردن بزرگتر میشه. اما وقتی دست به اقدام میزنی کوچیکتر میشه. @secura…
  2. Sep 27, 2026⭕️مهندسی معکوس و دور زدن محدودیت‌های نرم‌افزاری با OpenClaw و Codex این منابع راهنمای جامع…
  3. Sep 25, 2026⭕️نقش AI در جاهای کاربردی اینشکلی هست که الان بعنوان مثال اوبونتو به انتشار هفتگی به‌روزرس…
  4. Sep 23, 2026خبر خوب اول مهر اینکه یک زیرودی به اپل گزارش داده بودم ، فیکس کردن و گزارش رو هم بدون تشکر…
  5. Sep 22, 2026⭕️ گروه هکری "شاینی هانترز" ادعا کرده است که به سیستم‌های اداره تحقیقات فدرال (FBI) نفوذ ک…
  6. Sep 20, 2026🚀 رونمایی از تیزر رسمی رویداد «المپیک فناوری ۱۴۰۵» 🚀 Official Teaser: Tech Olympics 2026…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →