
أداة اختبار أمني آلي لـ Salesforce Experience Cloud تكتشف تطبيقات Aura غير المهيأة بشكل صحيح، والسجلات القابلة للوصول، والوظائف غير المصرح بها من سياقات الضيف والمصادق عليهم.
هذه ليست منتجًا مدعومًا رسميًا من Google. هذا المشروع غير مؤهل لـ برنامج مكافآت الثغرات الأمنية مفتوحة المصدر من Google.
aura-inspector هي أداة متعددة الاستخدامات لاختبار Salesforce Experience Cloud. فهي تسهل اكتشاف تطبيقات Salesforce Experience Cloud غير المهيأة بشكل صحيح، كما تعمل على أتمتة جزء كبير من عملية الاختبار. لمزيد من المعلومات، يُرجى الرجوع إلى مقال مدونة Mandiant: تدقيق تعرض بيانات Salesforce Aura.
تتضمن بعض وظائفها ما يلي:
يمكن تثبيت الأداة باستخدام pipx باستخدام الأمر أدناه.
pipx install git+<URL>
تتطلب الأداة Python 3 للتشغيل و pip لتنزيل التبعيات. نوصي بإنشاء بيئة افتراضية لتثبيت التبعيات.
git clone <URL>
cd aura-inspector
virtualenv env
source ./env/bin/activate
pip3 install -r requirements.txt
يمكن استدعاء قائمة المساعدة باستخدام العلم -h، والذي يوفر قائمة بالتكوينات.
python3 aura_cli.py -h
usage: python3 aura_cli.py [-h] [-u URL] [-c COOKIES] [-o OUTPUT_DIR] [-l OBJECT_LIST] [-d] [-v] [-p PROXY] [-k] [-a] [--app APP] [--aura AURA] [--context CONTEXT] [--token TOKEN] [--no-gql] [-r AURA_REQUEST_FILE]
options:
-h, --help show this help message and exit
-u, --url URL Root URL of Salesforce application to audit
-c, --cookies COOKIES
Cookies after authenticating to Salesforce application
-o, --output-dir OUTPUT_DIR
Output directory
-l, --object-list OBJECT_LIST
Pull records only the provided objects. Comma separated list of objects.
-d, --debug Print debug information
-v, --verbose Print verbose information
-p, --proxy PROXY Proxy requests
-k, --insecure Ignore invalid TLS certificates
--app APP Provide the target salesforce app's path (e.g: /myApp), the script will try to detect it if not provided
--aura AURA Provide the target salesforce aura's path (e.g: /aura), the script will try to detect it if not provided
--context CONTEXT Provide a context to be used as aura.context in POST requests, the script will use a dummy one if not provided
--token TOKEN Provide an aura token to be used as aura.token in POST requests, the script will use a dummy one if not provided
--no-gql Do not check for GraphQL capability and do not use it
--no-banner Do not display banner
-r, --aura-request-file AURA_REQUEST_FILE
Provide a request file to an /aura endpoint
تقدم الأداة مجموعة متنوعة من الخيارات التي يمكن أن تكون مفيدة في سيناريوهات مختلفة. يغطي ما يلي بعض الحالات المختلفة.
استخدام الأداة في التكوين القياسي يكون ببساطة عن طريق تشغيل الأمر التالي. سيقوم هذا بتشغيل جميع الفحوصات بطريقة غير مصادقة وإرجاع ما يمكن الوصول إليه من منظور مستخدم ضيف.
python3 aura_cli.py -u <URL>
سيظهر الإخراج أيضًا ما إذا كانت هناك وظيفة تسجيل ذاتي يمكنك استخدامها لإنشاء حساب. إذا كانت لديك فرصة للتسجيل في المثيل، فإن تشغيل الأداة من سياق مصادق عليه سيعطي على الأرجح نتائج أكثر.
لتشغيل الأداة في سياق مصادق عليه، إما قم بتوفير ملف تعريف الارتباط SID باستخدام المعامل -c أو دع الأداة تقوم بتحليل هذا والمعاملات الأخرى نيابة عنك عن طريق توفير ملف يحتوي على محتوى طلب عشوائي إلى نقطة نهاية aura في جلسة مصادق عليها.
python3 aura_cli.py -r <AURA_REQUEST_FILE>
يمكن أن يحتوي مثيل واحد على تطبيقات مخصصة متعددة مستضافة عليه. يمكن عادةً تحديد ذلك إذا رأيت شيئًا مثل /<custom-app-name>/s في المسار. إذا كانت هذه هي الحالة، نوصي بالعثور على جميع التطبيقات، وتحديدها باستخدام المعامل --app، حيث قد يختلف الإخراج بشكل كبير. يُنصح أيضًا بمحاولة تشغيل الأداة مقابل التطبيق الافتراضي "/" إذا كان هناك أي تطبيقات مخصصة مستضافة على المثيل.