الميزات • التثبيت • الاستخدام • النطاق • التكوين • المرشحات • الانضمام إلى الفتنة
تتطلب كاتانا Go 1.18 لتثبيتها بنجاح. للتثبيت، ما عليك سوى تشغيل الأمر أدناه أو تنزيل البرنامج الثنائي المترجم مسبقًا من صفحة الإصدار.
CGO_ENABLED=1 go install github.com/projectdiscovery/katana/cmd/katana@latest
المزيد من الخيارات لتثبيت / تشغيل katana-
لتثبيت/تحديث عامل الإرساء إلى أحدث علامة -
docker pull projectdiscovery/katana:latest
لتشغيل كاتانا في الوضع القياسي باستخدام عامل الإرساء -
docker run projectdiscovery/katana:latest -u https://tesla.com
لتشغيل كاتانا في وضع مقطوعة الرأس باستخدام عامل الإرساء -
docker run projectdiscovery/katana:latest -u https://tesla.com -system-chrome -headless
يوصى بتثبيت المتطلبات الأساسية التالية -
sudo apt update
sudo snap refresh
sudo apt install zip curl wget git
sudo snap install golang --classic
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c ' echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list '
sudo apt update
sudo apt install google-chrome-stable
تثبيت كاتانا -
go install github.com/projectdiscovery/katana/cmd/katana@latest
katana -h
سيعرض هذا تعليمات للأداة. فيما يلي جميع المفاتيح التي يدعمها.
Katana is a fast crawler focused on execution in automation
pipelines offering both headless and non-headless crawling.
Usage:
./katana [flags]
Flags:
INPUT:
-u, -list string[] target url / list to crawl
-resume string resume scan using resume.cfg
-e, -exclude string[] exclude host matching specified filter ('cdn', 'private-ips', cidr, ip, regex)
CONFIGURATION:
-r, -resolvers string[] list of custom resolver (file or comma separated)
-d, -depth int maximum depth to crawl (default 3)
-jc, -js-crawl enable endpoint parsing / crawling in javascript file
-jsl, -jsluice enable jsluice parsing in javascript file (memory intensive)
-ct, -crawl-duration value maximum duration to crawl the target for (s, m, h, d) (default s)
-kf, -known-files string enable crawling of known files (all,robotstxt,sitemapxml), a minimum depth of 3 is required to ensure all known files are properly crawled.
-mrs, -max-response-size int maximum response size to read (default 9223372036854775807)
-timeout int time to wait for request in seconds (default 10)
-aff, -automatic-form-fill enable automatic form filling (experimental)
-fx, -form-extraction extract form, input, textarea & select elements in jsonl output
-retry int number of times to retry the request (default 1)
-proxy string http/socks5 proxy to use
-H, -headers string[] custom header/cookie to include in all http request in header:value format (file)
-config string path to the katana configuration file
-fc, -form-config string path to custom form configuration file
-flc, -field-config string path to custom field configuration file
-s, -strategy string Visit strategy (depth-first, breadth-first) (default "depth-first")
-iqp, -ignore-query-params Ignore crawling same path with different query-param values
-tlsi, -tls-impersonate enable experimental client hello (ja3) tls randomization
-dr, -disable-redirects disable following redirects (default false)
DEBUG:
-health-check, -hc run diagnostic check up
-elog, -error-log string file to write sent requests error log
HEADLESS:
-hl, -headless enable headless hybrid crawling (experimental)
-sc, -system-chrome use local installed chrome browser instead of katana installed
-sb, -show-browser show the browser on the screen with headless mode
-ho, -headless-options string[] start headless chrome with additional options
-nos, -no-sandbox start headless chrome in --no-sandbox mode
-cdd, -chrome-data-dir string path to store chrome browser data
-scp, -system-chrome-path string use specified chrome browser for headless crawling
-noi, -no-incognito start headless chrome without incognito mode
-cwu, -chrome-ws-url string use chrome browser instance launched elsewhere with the debugger listening at this URL
-xhr, -xhr-extraction extract xhr request url,method in jsonl output
SCOPE:
-cs, -crawl-scope string[] in scope url regex to be followed by crawler
-cos, -crawl-out-scope string[] out of scope url regex to be excluded by crawler
-fs, -field-scope string pre-defined scope field (dn,rdn,fqdn) or custom regex (e.g., '(company-staging.io|company.com)') (default "rdn")
-ns, -no-scope disables host based default scope
-do, -display-out-scope display external endpoint from scoped crawling
FILTER:
-mr, -match-regex string[] regex or list of regex to match on output url (cli, file)
-fr, -filter-regex string[] regex or list of regex to filter on output url (cli, file)
-f, -field string field to display in output (url,path,fqdn,rdn,rurl,qurl,qpath,file,ufile,key,value,kv,dir,udir)
-sf, -store-field string field to store in per-host output (url,path,fqdn,rdn,rurl,qurl,qpath,file,ufile,key,value,kv,dir,udir)
-em, -extension-match string[] match output for given extension (eg, -em php,html,js)
-ef, -extension-filter string[] filter output for given extension (eg, -ef png,css)
-mdc, -match-condition string match response with dsl based condition
-fdc, -filter-condition string filter response with dsl based condition
RATE-LIMIT:
-c, -concurrency int number of concurrent fetchers to use (default 10)
-p, -parallelism int number of concurrent inputs to process (default 10)
-rd, -delay int request delay between each request in seconds
-rl, -rate-limit int maximum requests to send per second (default 150)
-rlm, -rate-limit-minute int maximum number of requests to send per minute
UPDATE:
-up, -update update katana to latest version
-duc, -disable-update-check disable automatic katana update check
OUTPUT:
-o, -output string file to write output to
-sr, -store-response store http requests/responses
-srd, -store-response-dir string store http requests/responses to custom directory
-sfd, -store-field-dir string store per-host field to custom directory
-or, -omit-raw omit raw requests/responses from jsonl output
-ob, -omit-body omit response body from jsonl output
-j, -jsonl write output in jsonl format
-nc, -no-color disable output content coloring (ANSI escape codes)
-silent display output only
-v, -verbose display verbose output
-debug display debug output
-version display project version
يتطلب katana عنوان url أو نقطة نهاية للزحف ويقبل مدخلات فردية أو متعددة.
يمكن توفير عنوان URL للإدخال باستخدام خيار -u
، ويمكن توفير قيم متعددة باستخدام إدخال مفصول بفواصل، وبالمثل يتم دعم إدخال الملف باستخدام خيار -list
بالإضافة إلى دعم الإدخال عبر الأنابيب (stdin).
katana -u https://tesla.com
katana -u https://tesla.com,https://google.com
$ cat url_list.txt
https://tesla.com
https://google.com
katana -list url_list.txt
echo https://tesla.com | katana
cat domains | httpx | katana
مثال على تشغيل كاتانا -
katana -u https://youtube.com
__ __
/ /_____ _/ /____ ____ ___ _
/ '_/ _ / __/ _ / _ / _ /
/_/_\_,_/__/_,_/_//_/_,_/ v0.0.1
projectdiscovery.io
[WRN] Use with caution. You are responsible for your actions.
[WRN] Developers assume no liability and are not responsible for any misuse or damage.
https://www.youtube.com/
https://www.youtube.com/about/
https://www.youtube.com/about/press/
https://www.youtube.com/about/copyright/
https://www.youtube.com/t/contact_us/
https://www.youtube.com/creators/
https://www.youtube.com/ads/
https://www.youtube.com/t/terms
https://www.youtube.com/t/privacy
https://www.youtube.com/about/policies/
https://www.youtube.com/howyoutubeworks?utm_campaign=ytgen&utm_source=ythp&utm_medium=LeftNav&utm_content=txt&u=https%3A%2F%2Fwww.youtube.com%2Fhowyoutubeworks%3Futm_source%3Dythp%26utm_medium%3DLeftNav%26utm_campaign%3Dytgen
https://www.youtube.com/new
https://m.youtube.com/
https://www.youtube.com/s/desktop/4965577f/jsbin/desktop_polymer.vflset/desktop_polymer.js
https://www.youtube.com/s/desktop/4965577f/cssbin/www-main-desktop-home-page-skeleton.css
https://www.youtube.com/s/desktop/4965577f/cssbin/www-onepick.css
https://www.youtube.com/s/_/ytmainappweb/_/ss/k=ytmainappweb.kevlar_base.0Zo5FUcPkCg.L.B1.O/am=gAE/d=0/rs=AGKMywG5nh5Qp-BGPbOaI1evhF5BVGRZGA
https://www.youtube.com/opensearch?locale=en_GB
https://www.youtube.com/manifest.webmanifest
https://www.youtube.com/s/desktop/4965577f/cssbin/www-main-desktop-watch-page-skeleton.css
https://www.youtube.com/s/desktop/4965577f/jsbin/web-animations-next-lite.min.vflset/web-animations-next-lite.min.js
https://www.youtube.com/s/desktop/4965577f/jsbin/custom-elements-es5-adapter.vflset/custom-elements-es5-adapter.js
https://www.youtube.com/s/desktop/4965577f/jsbin/webcomponents-sd.vflset/webcomponents-sd.js
https://www.youtube.com/s/desktop/4965577f/jsbin/intersection-observer.min.vflset/intersection-observer.min.js
https://www.youtube.com/s/desktop/4965577f/jsbin/scheduler.vflset/scheduler.js
https://www.youtube.com/s/desktop/4965577f/jsbin/www-i18n-constants-en_GB.vflset/www-i18n-constants.js
https://www.youtube.com/s/desktop/4965577f/jsbin/www-tampering.vflset/www-tampering.js
https://www.youtube.com/s/desktop/4965577f/jsbin/spf.vflset/spf.js
https://www.youtube.com/s/desktop/4965577f/jsbin/network.vflset/network.js
https://www.youtube.com/howyoutubeworks/
https://www.youtube.com/trends/
https://www.youtube.com/jobs/
https://www.youtube.com/kids/
تستخدم طريقة الزحف القياسية مكتبة go http القياسية أسفل الغطاء للتعامل مع طلبات/استجابات HTTP. هذه الطريقة أسرع بكثير لأنها لا تحتوي على عبء المتصفح. ومع ذلك، فإنه يحلل نص استجابات HTTP كما هو، دون أي عرض جافا سكريبت أو DOM، ومن المحتمل أن يفتقد نقاط النهاية المقدمة بعد dom أو مكالمات نقطة النهاية غير المتزامنة التي قد تحدث في تطبيقات الويب المعقدة اعتمادًا، على سبيل المثال، على الأحداث الخاصة بالمتصفح.
يقوم وضع مقطوعة الرأس بربط المكالمات الداخلية بدون رأس للتعامل مع طلبات/استجابات HTTP مباشرة داخل سياق المتصفح. وهذا يقدم ميزتين:
يعد الزحف بدون رأس أمرًا اختياريًا ويمكن تمكينه باستخدام خيار -headless
.
فيما يلي خيارات CLI أخرى مقطوعة الرأس -
katana -h headless
Flags:
HEADLESS:
-hl, -headless enable headless hybrid crawling (experimental)
-sc, -system-chrome use local installed chrome browser instead of katana installed
-sb, -show-browser show the browser on the screen with headless mode
-ho, -headless-options string[] start headless chrome with additional options
-nos, -no-sandbox start headless chrome in --no-sandbox mode
-cdd, -chrome-data-dir string path to store chrome browser data
-scp, -system-chrome-path string use specified chrome browser for headless crawling
-noi, -no-incognito start headless chrome without incognito mode
-cwu, -chrome-ws-url string use chrome browser instance launched elsewhere with the debugger listening at this URL
-xhr, -xhr-extraction extract xhr requests
-no-sandbox
تشغيل متصفح Chrome بدون رأس مع خيار عدم وضع الحماية ، وهو مفيد عند التشغيل كمستخدم جذري.
katana -u https://tesla.com -headless -no-sandbox
-no-incognito
تشغيل متصفح Chrome بدون وضع التصفح المتخفي، وهو مفيد عند استخدام المتصفح المحلي.
katana -u https://tesla.com -headless -no-incognito
-headless-options
عند الزحف في وضع مقطوعة الرأس، يمكن تحديد خيارات Chrome إضافية باستخدام -headless-options
، على سبيل المثال -
katana -u https://tesla.com -headless -system-chrome -headless-options --disable-gpu,proxy-server=http://127.0.0.1:8080
يمكن أن يكون الزحف لا نهاية له إذا لم يكن محدد النطاق، حيث أن مثل هذه الكاتانا تأتي مع دعم متعدد لتحديد نطاق الزحف.
-field-scope
الخيار الأكثر فائدة لتحديد النطاق باستخدام اسم الحقل المحدد مسبقًا، حيث يكون rdn
هو الخيار الافتراضي لنطاق الحقل.
rdn
- الزحف على نطاق واسع إلى اسم النطاق الجذر وجميع النطاقات الفرعية (على سبيل المثال *example.com
) (افتراضي)fqdn
- يتم الزحف إلى النطاق الفرعي (المجال) المحدد (على سبيل المثال www.example.com
أو api.example.com
)dn
- الزحف على نطاق الكلمة الرئيسية لاسم المجال (على example
) katana -u https://tesla.com -fs dn
-crawl-scope
للتحكم المتقدم في النطاق، يمكن استخدام خيار -cs
الذي يأتي مع دعم regex .
katana -u https://tesla.com -cs login
بالنسبة لقواعد النطاق المتعددة، يمكن تمرير إدخال الملف باستخدام سلسلة / regex متعدد الأسطر.
$ cat in_scope.txt
login/
admin/
app/
wordpress/
katana -u https://tesla.com -cs in_scope.txt
-crawl-out-scope
لتحديد ما لا يجب الزحف إليه، يمكن استخدام خيار -cos
ويدعم أيضًا إدخال regex .
katana -u https://tesla.com -cos logout
بالنسبة لقواعد متعددة خارج النطاق، يمكن تمرير إدخال الملف باستخدام سلسلة / regex متعدد الأسطر.
$ cat out_of_scope.txt
/logout
/log_out
katana -u https://tesla.com -cos out_of_scope.txt
-no-scope
Katana هو الخيار الافتراضي للنطاق *.domain
، ولتعطيل هذا الخيار -ns
يمكن استخدامه وأيضًا للزحف إلى الإنترنت.
katana -u https://tesla.com -ns
-display-out-scope
بشكل افتراضي، عند استخدام خيار النطاق، فإنه ينطبق أيضًا على الروابط التي سيتم عرضها كمخرجات، حيث أن عناوين URL الخارجية هذه تكون افتراضيًا لاستبعاد هذا السلوك والكتابة فوقه، ويمكن استخدام خيار -do
لعرض كافة عناوين URL الخارجية الموجودة في الأهداف عنوان URL محدد النطاق/نقطة النهاية.
katana -u https://tesla.com -do
إليك جميع خيارات واجهة سطر الأوامر (CLI) للتحكم في النطاق -
katana -h scope
Flags:
SCOPE:
-cs, -crawl-scope string[] in scope url regex to be followed by crawler
-cos, -crawl-out-scope string[] out of scope url regex to be excluded by crawler
-fs, -field-scope string pre-defined scope field (dn,rdn,fqdn) (default "rdn")
-ns, -no-scope disables host based default scope
-do, -display-out-scope display external endpoint from scoped crawling
تأتي Katana مزودة بخيارات متعددة لتكوين الزحف والتحكم فيه بالطريقة التي نريدها.
-depth
خيار لتحديد depth
لمتابعة عناوين URL للزحف، كلما زاد العمق، زاد عدد نقاط النهاية التي يتم الزحف إليها + وقت الزحف.
katana -u https://tesla.com -d 5
-js-crawl
خيار لتمكين تحليل ملف JavaScript + الزحف إلى نقاط النهاية المكتشفة في ملفات JavaScript، معطل كإعداد افتراضي.
katana -u https://tesla.com -jc
-crawl-duration
خيار مدة الزحف المحددة مسبقًا، معطل كإعداد افتراضي.
katana -u https://tesla.com -ct 2
-known-files
خيار لتمكين الزحف إلى ملف robots.txt
وملف sitemap.xml
، معطل كإعداد افتراضي.
katana -u https://tesla.com -kf robotstxt,sitemapxml
-automatic-form-fill
خيار لتمكين التعبئة التلقائية للنماذج للحقول المعروفة/غير المعروفة، يمكن تخصيص قيم الحقول المعروفة حسب الحاجة عن طريق تحديث ملف تكوين النموذج على $HOME/.config/katana/form-config.yaml
.
يعد ملء النموذج تلقائيًا ميزة تجريبية.
katana -u https://tesla.com -aff
يتضمن الزحف المصادق عليه تضمين رؤوس مخصصة أو ملفات تعريف الارتباط في طلبات HTTP للوصول إلى الموارد المحمية. توفر هذه الرؤوس معلومات المصادقة أو الترخيص، مما يسمح لك بالزحف إلى المحتوى / نقطة النهاية المصادق عليها. يمكنك تحديد الرؤوس مباشرةً في سطر الأوامر أو تقديمها كملف باستخدام كاتانا لإجراء الزحف المصادق عليه.
ملاحظة : يحتاج المستخدم إلى إجراء المصادقة يدويًا وتصدير ملف تعريف الارتباط/رأس الجلسة إلى الملف لاستخدامه مع كاتانا.
-headers
خيار لإضافة رأس مخصص أو ملف تعريف ارتباط إلى الطلب.
بناء جملة الرؤوس في مواصفات HTTP
فيما يلي مثال لإضافة ملف تعريف الارتباط إلى الطلب:
katana -u https://tesla.com -H 'Cookie: usrsess=AmljNrESo'
من الممكن أيضًا توفير الرؤوس أو ملفات تعريف الارتباط كملف. على سبيل المثال:
$ cat cookie.txt
Cookie: PHPSESSIONID=XXXXXXXXX
X-API-KEY: XXXXX
TOKEN=XX
katana -u https://tesla.com -H cookie.txt
هناك المزيد من الخيارات للتكوين عند الحاجة، إليك جميع خيارات واجهة سطر الأوامر (CLI) ذات الصلة بالتكوين -
katana -h config
Flags:
CONFIGURATION:
-r, -resolvers string[] list of custom resolver (file or comma separated)
-d, -depth int maximum depth to crawl (default 3)
-jc, -js-crawl enable endpoint parsing / crawling in javascript file
-ct, -crawl-duration int maximum duration to crawl the target for
-kf, -known-files string enable crawling of known files (all,robotstxt,sitemapxml)
-mrs, -max-response-size int maximum response size to read (default 9223372036854775807)
-timeout int time to wait for request in seconds (default 10)
-aff, -automatic-form-fill enable automatic form filling (experimental)
-fx, -form-extraction enable extraction of form, input, textarea & select elements
-retry int number of times to retry the request (default 1)
-proxy string http/socks5 proxy to use
-H, -headers string[] custom header/cookie to include in request
-config string path to the katana configuration file
-fc, -form-config string path to custom form configuration file
-flc, -field-config string path to custom field configuration file
-s, -strategy string Visit strategy (depth-first, breadth-first) (default "depth-first")
يمكن لـ Katana أيضًا الاتصال بجلسة المتصفح النشطة حيث قام المستخدم بتسجيل الدخول والمصادقة عليه بالفعل. واستخدامها للزحف. الشرط الوحيد لذلك هو تشغيل المتصفح مع تمكين تصحيح الأخطاء عن بعد.
فيما يلي مثال لبدء تشغيل متصفح Chrome مع تمكين تصحيح الأخطاء عن بعد واستخدامه مع katana -
الخطوة 1) حدد أولاً مسار الكروم القابل للتنفيذ
نظام التشغيل | موقع الكروم القابل للتنفيذ | موقع جوجل كروم القابل للتنفيذ |
---|---|---|
ويندوز (64 بت) | C:Program Files (x86)GoogleChromiumApplicationchrome.exe | C:Program Files (x86)GoogleChromeApplicationchrome.exe |
ويندوز (32 بت) | C:Program FilesGoogleChromiumApplicationchrome.exe | C:Program FilesGoogleChromeApplicationchrome.exe |
ماك | /Applications/Chromium.app/Contents/MacOS/Chromium | /Applications/Google Chrome.app/Contents/MacOS/Google Chrome |
لينكس | /usr/bin/chromium | /usr/bin/google-chrome |
الخطوة 2) ابدأ تشغيل Chrome مع تمكين تصحيح الأخطاء عن بُعد وسيُرجع عنوان URL الخاص بـ websocker. على سبيل المثال، في نظام التشغيل MacOS، يمكنك بدء تشغيل Chrome مع تمكين تصحيح الأخطاء عن بُعد باستخدام الأمر التالي -
$ /Applications/Google Chrome.app/Contents/MacOS/Google Chrome --remote-debugging-port=9222
DevTools listening on ws://127.0.0.1:9222/devtools/browser/c5316c9c-19d6-42dc-847a-41d1aeebf7d6
قم الآن بتسجيل الدخول إلى موقع الويب الذي تريد الزحف إليه وإبقاء المتصفح مفتوحًا.
الخطوة 3) الآن استخدم عنوان url websocket مع katana للاتصال بجلسة المتصفح النشطة والزحف إلى موقع الويب
katana -headless -u https://tesla.com -cwu ws://127.0.0.1:9222/devtools/browser/c5316c9c-19d6-42dc-847a-41d1aeebf7d6 -no-incognito
ملاحظة : يمكنك استخدام
-cdd
الخيار لتحديد دليل بيانات Chrome مخصص لتخزين بيانات المتصفح وملفات تعريف الارتباط ولكن هذا لا يحفظ بيانات الجلسة إذا تم تعيين ملف تعريف الارتباط علىSession
فقط أو انتهت صلاحيته بعد وقت معين.
-field
تأتي Katana مع حقول مدمجة يمكن استخدامها لتصفية مخرجات المعلومات المطلوبة، ويمكن استخدام خيار -f
لتحديد أي من الحقول المتاحة.
-f, -field string field to display in output (url,path,fqdn,rdn,rurl,qurl,qpath,file,key,value,kv,dir,udir)
فيما يلي جدول يحتوي على أمثلة لكل حقل والمخرجات المتوقعة عند استخدامه -
مجال | وصف | مثال |
---|---|---|
url | نقطة نهاية URL | https://admin.projectdiscovery.io/admin/login?user=admin&password=admin |
qurl | URL بما في ذلك معلمة الاستعلام | https://admin.projectdiscovery.io/admin/login.php?user=admin&password=admin |
qpath | المسار بما في ذلك معلمة الاستعلام | /login?user=admin&password=admin |
path | مسار URL | https://admin.projectdiscovery.io/admin/login |
fqdn | اسم المجال المؤهل بالكامل | admin.projectdiscovery.io |
rdn | اسم المجال الجذر | projectdiscovery.io |
rurl | عنوان URL الجذر | https://admin.projectdiscovery.io |
ufile | عنوان URL مع الملف | https://admin.projectdiscovery.io/login.js |
file | اسم الملف في URL | login.php |
key | مفاتيح المعلمات في URL | user,password |
value | قيم المعلمات في URL | admin,admin |
kv | المفاتيح=القيم في URL | user=admin&password=admin |
dir | اسم دليل URL | /admin/ |
udir | URL مع الدليل | https://admin.projectdiscovery.io/admin/ |
فيما يلي مثال لاستخدام خيار الحقل لعرض جميع عناوين URL التي تحتوي على معلمة الاستعلام فقط -
katana -u https://tesla.com -f qurl -silent
https://shop.tesla.com/en_au?redirect=no
https://shop.tesla.com/en_nz?redirect=no
https://shop.tesla.com/product/men_s-raven-lightweight-zip-up-bomber-jacket?sku=1740250-00-A
https://shop.tesla.com/product/tesla-shop-gift-card?sku=1767247-00-A
https://shop.tesla.com/product/men_s-chill-crew-neck-sweatshirt?sku=1740176-00-A
https://www.tesla.com/about?redirect=no
https://www.tesla.com/about/legal?redirect=no
https://www.tesla.com/findus/list?redirect=no
يمكنك إنشاء حقول مخصصة لاستخراج معلومات محددة وتخزينها من استجابات الصفحة باستخدام قواعد التعبير العادي. يتم تعريف هذه الحقول المخصصة باستخدام ملف تكوين YAML ويتم تحميلها من الموقع الافتراضي في $HOME/.config/katana/field-config.yaml
. وبدلاً من ذلك، يمكنك استخدام الخيار -flc
لتحميل ملف تكوين حقل مخصص من موقع مختلف. هنا مثال على الحقل المخصص.
- name : email
type : regex
regex :
- ' ([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+.[a-zA-Z0-9_-]+) '
- ' ([a-zA-Z0-9+._-]+@[a-zA-Z0-9._-]+.[a-zA-Z0-9_-]+) '
- name : phone
type : regex
regex :
- ' d{3}-d{8}|d{4}-d{7} '
عند تحديد الحقول المخصصة، يتم دعم السمات التالية:
يتم استخدام قيمة سمة الاسم كقيمة خيار
-field
cli.
نوع السمة المخصصة، الخيار المدعوم حاليًا -
regex
الجزء من الرد الذي يتم استخراج المعلومات منه. القيمة الافتراضية هي
response
، والتي تتضمن كلا من الرأس والنص. القيم المحتملة الأخرى هيheader
وbody
.
يمكنك استخدام هذه السمة لتحديد مجموعة متطابقة محددة في التعبير العادي، على سبيل المثال:
group: 1
katana -u https://tesla.com -f email,phone
-store-field
لإكمال خيار field
الذي يعد مفيدًا لتصفية المخرجات في وقت التشغيل، يوجد خيار -sf, -store-fields
الذي يعمل تمامًا مثل خيار الحقل باستثناء أنه بدلاً من التصفية، فإنه يخزن جميع المعلومات الموجودة على القرص ضمن دليل katana_field
مرتبة حسب عنوان url المستهدف . استخدم -sfd
أو -store-field-dir
لتخزين البيانات في موقع مختلف.
katana -u https://tesla.com -sf key,fqdn,qurl -silent
$ ls katana_field/
https_www.tesla.com_fqdn.txt
https_www.tesla.com_key.txt
https_www.tesla.com_qurl.txt
يمكن أن يكون خيار -store-field
مفيدًا لجمع المعلومات لإنشاء قائمة كلمات مستهدفة لأغراض مختلفة، بما في ذلك على سبيل المثال لا الحصر:
-extension-match
يمكن مطابقة مخرجات الزحف بسهولة لامتداد محدد باستخدام خيار -em
لضمان عرض المخرجات التي تحتوي على امتداد معين فقط.
katana -u https://tesla.com -silent -em js,jsp,json
-extension-filter
يمكن تصفية مخرجات الزحف بسهولة لامتداد محدد باستخدام خيار -ef
الذي يضمن إزالة جميع عناوين URL التي تحتوي على امتداد معين.
katana -u https://tesla.com -silent -ef css,txt,md
-match-regex
تتيح لك العلامة -match-regex
أو -mr
تصفية عناوين URL للمخرجات باستخدام التعبيرات العادية. عند استخدام هذه العلامة، سيتم طباعة عناوين URL التي تطابق التعبير العادي المحدد فقط في الإخراج.
katana -u https://tesla.com -mr 'https://shop.tesla.com/*' -silent
-filter-regex
تسمح لك العلامة -filter-regex
أو -fr
بتصفية عناوين URL للمخرجات باستخدام التعبيرات العادية. عند استخدام هذه العلامة، فإنها ستتخطى عناوين URL التي تتطابق مع التعبير العادي المحدد.
katana -u https://tesla.com -fr 'https://www.tesla.com/*' -silent
تدعم Katana التعبيرات المستندة إلى DSL لإمكانيات المطابقة والتصفية المتقدمة:
katana -u https://www.hackerone.com -mdc ' status_code == 200 '
katana -u https://www.hackerone.com -mdc ' contains(endpoint, "default") && status_code != 403 '
katana -u https://www.hackerone.com -mdc ' contains(to_lower(technologies), "php") '
katana -u https://www.hackerone.com -fdc ' contains(to_lower(technologies), "cloudflare") '
يمكن تطبيق وظائف DSL على أي مفاتيح في إخراج jsonl. لمزيد من المعلومات حول وظائف DSL المتاحة، يرجى زيارة مشروع DSL.
فيما يلي خيارات تصفية إضافية -