
مستودع لاستضافة قوالب ماركداون للباحثين
ملاحظات حول بنية الدليل:
يقوم السكربت generate-directories.py بجلب أحدث إصدار حالي من بنية VRT من GitHub وإنشاء أي أدلة مفقودة. ولا يقوم بإزالة أو إعادة تسمية الأدلة بناءً على العناصر التي تمت إزالتها من VRT.
يتبع السكربت أسماء الإدخالات القياسية ويحافظ على الشرطات السفلية / حالة الأحرف كما وردت في حقل id الخاص بـ VRT.
هذا المستودع مفعّل عليه 'Protected Master'؛ مما يعني أنه يمكن لمشرفي المشروع فقط الالتزام بالفرع الرئيسي عبر طلبات السحب. يجب أن تأتي جميع التحديثات عبر طلب سحب لضمان السلامة.
ما يلي مكتوب على افتراض أن الوصول عبر SSH تم إعداده بشكل صحيح.
أولاً، تحقق من الفرع الرئيسي:
git clone [email protected]:bugcrowd/templates.git ## n.b. using SSH aliases can make this much simpler
بمجرد أن يصبح الفرع الرئيسي على نظامك، ستحتاج إلى إنشاء فرع للعمل الذي ستقوم به:
git checkout -b <branch-name>
أمثلة على أسماء الفروع قد تكون XXE-templates أو ، أو أي اسم يدل على حزمة العمل. يجب أن تبقى هذه صغيرة، ويفضل أن تكون مجموعة قوالب وليس أكثر من ذلك. قم بالالتزام والدفع باستمرار!
XSS-templatesgit commit -am "Comments about what you changed go here" يحفظ تغييراتك في مستودع git المحلي. دائمًا اترك رسالة التزام وصفية.
عندما تكمل قوالبك، يمكنك دفعها إلى المستودع. ستظل هذه في فرعها الخاص، ولكن عند الدفع سيعمل المدقق اللغوي ويتحقق من صحة الماركداون مقابل مجموعة من القواعد. إذا اتبعت القالب النموذجي ولم تنحرف كثيرًا، فيجب أن تمر القوالب.
git push --set-upstream origin <branch-name> سينشئ هذا الأمر الفرع على الخادم الأصلي (github) ويدفع تغييراتك. لا يلزم القيام بذلك إلا مرة واحدة للفرع، ويمكن إجراء عمليات الدفع اللاحقة للفرع باستخدام git push.
بمجرد نجاح تشغيل المدقق اللغوي، يمكنك إنشاء طلب سحب (PR).
حدد الفرع في واجهة GitHub. يجب أن ترى زر 'Pull request' فوق الكود.
حدد هذا الزر، ثم املأ بعض التفاصيل حول ما تغير ليقوم مشرفو المشروع بمراجعتها، ثم انقر على 'Create pull request'.
عند هذه النقطة، انتهيت! سنراجع طلب السحب ونقبله أو نرفضه حسب الاقتضاء.
بمجرد قبول طلب السحب، يمكنك حذف الفرع بحرية:
git branch -d <branch-name>
فيما يلي مثال على قالب. يجب تحديث جميع الأقسام لتشمل معلومات صحيحة.
## Overview of the Vulnerability
Provide a 1-2 sentence description of the vulnerability.
This format is a good guide:
[VULNTYPE] in [COMPONENT] in [APPLICATION] allows [ATTACKER] to [IMPACT] via [VECTOR]
## Business Impact
Provide an example of the impact to the business. This could be reputational damage, financial loss, a loss in customer trust, etc.
## Steps to Reproduce
Provide a step-by-step walkthrough on how to access the vulnerable injection point, and how to exploit the vulnerability.
Example:
1. Login to in-scope asset at <www.bugcrowd.com/login>
1. Browse to account page
1. Modify ID token to add single quote
1. View error which states 'SQL Syntax Error'
1. Replace ID value with `1' waitfor delay '00:00:10'; `
## Proof of Concept (PoC)
Your submission must include evidence of the vulnerability and not be theoretical in nature.
You may present your evidence as output from a tool, such as SQLMap, unless the program forbids the use of these tools. Evidence may also be in the format of terminal output, screenshots, or video.
Use this section to demonstrate clearly the effect of the vulnerability. However, do not access Personally Identifiable Information (PII).
هذا مثال على قالب:
# Reflected Cross-Site Scripting (Non-self)
## Overview of the Vulnerability
Reflected Cross-Site Scripting (XSS) is a type of injection attack where malicious JavaScript code is injected into a website. When a user visits the affected web page, the JavaScript code executes and its input is reflected in the user’s browser. Reflected XSS can be found on this domain which allows an attacker to create a crafted URL. When opened by a user, this URL will execute arbitrary Javascript within that user’s browser in the context of this domain.
When an attacker can control code that is executed within a user’s browser, they are able to carry out any actions that the user is able to perform, including accessing any of the user's data and modifying information within the user’s permissions. This can result in modification, deletion, or theft of data, including accessing or deleting files, or stealing session cookies which an attacker could use to hijack a user’s session.
## Business Impact
Reflected XSS could lead to data theft through the attacker’s ability to manipulate data through their access to the application, and their ability to interact with other users, including performing other malicious attacks, which would appear to originate from a legitimate user. These malicious actions could also result in reputational damage for the business through the impact to customers’ trust.
## Steps to Reproduce
1. Enable a HTTP interception proxy, such as Burp Suite or OWASP ZAP
1. Use a browser to navigate to: {{URL}}
1. Forward the following request to the endpoint:
```HTTP Request
{{request}}
```
1. Observe the JavaScript payload being executed
## Proof of Concept (PoC)
Below is a screenshot demonstrating the injected JavaScript executing at the vulnerable endpoint:
{{screenshot}}
استخدم صيغة المبني للمجهول حيثما أمكن. على سبيل المثال:
صحيح:
An SQL injection vulnerability was discovered in the web application.
غير صحيح:
I discovered an SQL injection vulnerability in the web application.
غير صحيح:
Bugcrowd discovered an SQL injection vulnerability in the web application.
غير صحيح:
We discovered an SQL injection in the web application.
غير صحيح:
Throughout the course of the engagement, a critical severity SQL injection was discovered in the web application (<www.example.com>) which could be used by an attacker to exfiltrate personally identifiable information from the backend database.
صحيح:
An SQL injection was discovered in <www.example.com> allowing a malicious attacker to exfiltrate personally identifiable information.
غير صحيح:
An SQL injection was discovered in <www.example.com> allowing a malicious attacker to exfiltrate personally identifiable information including email addresses which would be considered a GDPR violation and poses a considerable business risk.
صحيح:
An SQL injection was discovered in <www.example.com> allowing a malicious attacker to exfiltrate personally identifiable information. The retrievable data includes passwords, email addresses and full names. This poses a GDPR violation and considerable business risk.
عند استخدام اختصار، قم دائمًا بكتابة النسخة الكاملة أولاً مع وضع الاختصار بين قوسين. بمجرد كتابتها كاملة، يمكن للاستخدامات اللاحقة الاكتفاء بالاختصار.
على سبيل المثال:
Cross-Site Scripting (XSS) is a client-side attack which allows a malicious attacker to execute JavaScript in a victim's browser. XSS occurs when user input is reflected back to the browser without encoding.
Cross-Site Request Forgery (CSRF) was discovered in example.com. This CSRF allows you to update the victim user's address without their knowledge.
صحيح: Bugcrowd غير صحيح: BugCrowd, bugcrowd, Bug Crowd, Bug crowd and bug crowd.
صحيح: pentest (أو Pentest إذا تطلبت القواعد النحوية ذلك) غير صحيح: pen test, PenTest, Pen Test
يجب استخدام "An" عندما تبدأ الكلمة التالية بصوت ساكن. بخلاف ذلك، يجب استخدام "A".
صحيح:
غير صحيح:
يجب أن تكون اللغة المستخدمة دائمًا غير عاطفية ومحايدة.
أمثلة:
{{target}}: اسم الهدف المدرج ضمن النطاق في صفحة البرنامج (على سبيل المثال، *.bugcrowd.com){{application}}: تطبيق محدد داخل الهدف (على سبيل المثال، بوابة موظفي Acme Inc.){{type}}: نوع الاختبار المنفذ والمدرج بجانب الهدف في صفحة البرنامج (على سبيل المثال، اختبار مواقع الويب، اختبار API، اختبار تطبيقات الجوال، اختبار الأجهزة، إلخ.){{url}}: عنصر نائب لرابط URL (على سبيل المثال، https://bugcrowd.com/vulnerability-rating-taxonomy){{version}}: رقم الإصدار المحدد للبرنامج الذي تم اختباره (على سبيل المثال، 13.3.7){{program}}: اسم البرنامج (على سبيل المثال، Bugcrowd){{screenshot}}: دليل صورة أو فيديو يعرض إثبات مفهوم منفذ.{{action}}: الإجراء الذي يمكن لمهاجم خبيث تنفيذه إذا استغل الثغرة (على سبيل المثال، استخراج رموز الجلسة، السيطرة الكاملة على حساب إداري، تفريغ PII، إلخ.){{parameter}}: متغير ينقل البيانات من العميل إلى الخادم ويمكن أن تُخزَّن فيه أنواع مختلفة من البيانات. يتم تحديد طريقة التعامل معه بواسطة كود جانب الخادم. (على سبيل المثال id=1337){{hardware}}: قطعة أجهزة محددة تستخدم لاستغلال أحد أصول IoT أو السيارات{{software}}: برنامج محدد يستخدم لاستغلال أحد الأصول (على سبيل المثال burp وnessus وnikto وإلخ.){{payload}}: أمر أو حمولة يتم تنفيذها على أحد الأصول{{value}}: قيمة مترية محددة (ثوانٍ، ميلي ثانية، ترددات، إلخ.)يحتوي هذا المستودع على الجيم bugcrowd_templates. يُستخدم هذا الجيم لجلب templates لوصف الإرساليات وملاحظات المنهجيات استنادًا إلى اختيارات VRT. يتم استخدامه وصيانته من قبل هندسة Bugcrowd.
أضف هذا السطر إلى ملف Gemfile الخاص بتطبيقك:
gem 'bugcrowd_templates'
لتسهيل التطوير، نوفر أداة مساعدة لتشغيل بيئة تجريبية للتعامل مع الجيم. يمكنك استدعاؤها باستخدام:
bin/console
فيما يلي مثال لاستدعاء BugcrowdTemplates لجلب templates في حقلي وصف الإرساليات وملاحظات المنهجيات.
BugcrowdTemplates.get(
type: 'any_value', # type can be submissions or methodologies
field: 'any_value', # field name of the type
category: 'any_value', # any category name from VRT option
subcategory: 'any_value', # any subcategory name from VRT option
item: 'any_value', # any item name from VRT option
file_name: 'any_value' # file_name can be 'template' or 'guidance'
)
فيما يلي مثال لاستدعاء BugcrowdTemplates لجلب template في حقل وصف الإرسالية.
BugcrowdTemplates.get(
type: 'submissions',
field: 'description', # field name of the submissions
category: 'server_security_misconfiguration', # category name from VRT option
subcategory: 'clickjacking', # subcategory name from VRT option
item: 'non_sensitive_action', # item name from VRT option
file_name: 'template' # template
)
=> '# Clickjacking on a non-sensitive action\n\n## Overview\n\n' # template fetched from templates path
مثال لجلب قالب guidance
BugcrowdTemplates.get(
type: 'submissions',
field: 'description',
category: 'using_components_with_known_vulnerabilities',
subcategory: 'outdated_software_version',
file_name: 'guidance'
)
فيما يلي مثال لاستدعاء BugcrowdTemplates لجلب templates في حقل ملاحظات المنهجيات.
BugcrowdTemplates.get(
type: 'methodology',
field: 'notes', # field name of the methodologies
category: 'website_testing',
file_name: 'information'
)
=> '# Information gathering and Reconnaisance\n\n##' # template fetched from templates path