
سكريبت بايثون يكتشف نقاط النهاية في ملفات JavaScript
LinkFinder هو سكريبت بايثون مكتوب لاكتشاف نقاط النهاية والمعاملات الخاصة بها في ملفات JavaScript. بهذه الطريقة، يمكن لمختبري الاختراق وصيادي الثغرات جمع نقاط نهاية جديدة ومخفية على المواقع التي يختبرونها، مما يؤدي إلى مجالات اختبار جديدة قد تحتوي على ثغرات جديدة. يقوم بذلك باستخدام jsbeautifier للبايثون مع تعبير منتظم كبير نسبيًا. يتكون التعبير المنتظم من أربعة تعبيرات منتظمة صغيرة مسؤولة عن العثور على:
https://example.com/*)/\* أو ../*)text/test.php)test.php)يتم إخراج النتيجة بصيغة HTML أو نص عادي. كتب @karel_origin إضافة كروم لـ LinkFinder يمكن العثور عليها هنا.

يدعم LinkFinder Python 3.
$ git clone https://github.com/GerbenJavado/LinkFinder.git
$ cd LinkFinder
$ python setup.py install
يعتمد LinkFinder على وحدات بايثون argparse و jsbeautifier. يمكن تثبيت هذه التبعيات باستخدام pip.
$ pip3 install -r requirements.txt
python linkfinder.py -i https://example.com/1.js -o results.html
python linkfinder.py -i https://example.com/1.js -o cli
python linkfinder.py -i https://example.com -d
python linkfinder.py -i burpfile -b
python linkfinder.py -i 'Desktop/*.js' -r ^/api/ -o results.html
بناء صورة Docker:
docker build -t linkfinder
التشغيل باستخدام Docker
docker run --rm -v $(pwd):/linkfinder/output linkfinder -i http://example.com/1.js -o /linkfinder/output/output.html
تأكد من استخدام المسار /linkfinder/output في مسار الإخراج، وإلا سيفقد الإخراج عند خروج الحاوية.
pytest test_parser.py
| النموذج القصير | النموذج الطويل | الوصف |
|---|
| -i | --input | إدخال: رابط، ملف، أو مجلد. بالنسبة للمجلدات يمكن استخدام حرف بدل (مثل '/*.js'). |
| -o | --output | "cli" للطباعة إلى STDOUT، أو مكان حفظ ملف HTML. الافتراضي: output.html |
| -r | --regex | تعبير منتظم لتصفية نقاط النهاية التي تم العثور عليها (مثل ^/api/) |
| -d | --domain | قم بالتبديل للاستخدام عند تحليل نطاق كامل. يقوم بتعداد جميع ملفات JS التي تم العثور عليها. |
| -b | --burp | قم بالتبديل للاستخدام عند إدخال ملف 'Save selected' الخاص بـ Burp والذي يحتوي على عدة ملفات JS |
| -c | --cookies | إضافة ملفات تعريف الارتباط (Cookies) إلى الطلب |
| -h | --help | عرض رسالة المساعدة والخروج |