بسم الله الرحمن الرحيم

انهاردة هحاول اجاوب بالتفصيل عن اسئلة شائعة جدا:

( ازاي ابدء فال Web Security / ازاي اكون Bug Bounty Hunter / ازاي ابدء اذاكر لل Web Penetration Testing)

مبدئيا كدا ال Cyber Security مفرعة لاكتر من قسم ولكل قسم وظيفة ومنهم:

 Information Security Analyst

 Lead Software Security Engineer

 Chief Information Security Officer

 Security Architect

 Information Security Crime Investigator

 “Penetration Tester

وغيرهم من الوظائف في اقسام ال Cyber Security المختلفة.

[تقدر تتعرف اكتر عن ال Cyber Security Paths من خلال R1]

 

ولكن خلينا نركز علي نقطتنا الاساسية انهاردة وهي ال “Penetration Testing

وكذلك ال Penetration Testing بيندرج تحتيه اكتر من قسم او Area ومنهم:

  Network Penetration Testing سواء {Internal/External}

 Mobile Application Penetration Testing

 “Web Application Penetration Testing

وغيرهم من ال Areas of Penetration Testing.

[تقدر تتعرف اكتر عن ال Penetration Testing Areas من خلال R2]

 

ولكن خلينا نركز علي النقطة الاساسية وهي ال “Web Application Penetration Testing

مبدئيا بالمنطق كدا عشان تقدر تخترق نظام ما..لازم تفهم طريقة عمل النظام ده!

وده شئ بديهي في كل مجالات الحياة.

خليني اترجم كلامي ده لشئ يفيدك..لازم تتعلم لغات البرمجة عشان تبدأ تخترق المواقع اللي اتعملت عن طريق لغات البرمجة..هارش؟

خلينا نبص علي ال Front-End:

1- لازم تكون فاهم HTML كويس جدا عشان تقدر تتعامل بيها.

2- تكون فاهم ما يكفي (اساسيات وشوية)  من ال Javascript عشان هتفيدك جدا بعدين.

 

خلينا نبص علي Back-End:

1- يكفي انك تبقي فاهم PHP (اساسيات وشوية) لانها اكتر لغة متداولة في برمجة تطبيقات الويب.

2- تكون فاهم SQL عشان تتعامل مع قواعد البيانات وانك تتعلم عن ال MySQL هيبقي شئ كويس لان في انواع تانيه زي ,Mssql,Postgresql والاختلاف مش جوهري كلهم مشتركين ف الاساسيات.

3- تفهم اكتر عن ال Ajax يعني ايه وكيفية استخدامه في تطبيقات الويب.

 

خلينا نبص علي ال Scripting/Automation:

1- يستحسن انك تتعلم Python او Perl او Ruby عشان تقدر ان انت تكتب Scripts تساعدك في شغلك وتحل مشاكل بشكل اسرع وتلقائي.

2- ممكن تتعلم اساسيات عن ال Regular Expression هيبقي شئ مفيد ليك فيما بعد لو اتعلمته.

طبعا التعلم وحده مش كفايه تماما!!

لازم تطبق علي كل شئ اتعلمته وتبدء تنشئ تطبيقك الخاص وتتدرب عليه.

[تقدر تتعرف اكتر عن ال Required Programming Languages عشان تبدء في ال Web Security من خلال R3]

 

دلوقتي بعد المرحلة ديه انت فهمت يعني ايه Web Application دلوقتي جه الوقت تفهم يعني ايه Web Application Security:

خلينا متفقين ان لكل نظام ثغرات! ودورنا هنا ك Web Application Penetration Tester نطلع الثغرات ديه من التطبيق.

بس الاول خليني ارشح الكتاب ده “THE TANGLED WEB” وده هيبقي مرشدك في حماية ال Modern Web Applications وبيبدء بالاساسيات البحتة حتي النهايات الجميلة.

 

دلوقتي هتبدأ تعرف الثغرات من مكان مهم زي OWASP وديه بتوفرلك معلومات عن الثغرات بشكل عام وفيه احصائيات بتبين اهم واخطرعشر انواع من الثغرات المنتشرة في تطبيقات الويب واللي بيرمز ليه بأسم “OWASP Top Ten Project” وهما كالاتي حسب احصائية 2017 “الاحدث”:

1- Injections:

Injection flaws, such as SQL, NoSQL, OS, and LDAP injection, occur when untrusted data is sent
to an interpreter as part of a command or query. The attacker’s hostile data can trick the
interpreter into executing unintended commands or accessing data without proper authorization.

2- Broken Authentication:

Application functions related to authentication and session management are often implemented
incorrectly, allowing attackers to compromise passwords, keys, or session tokens, or to exploit
other implementation flaws to assume other users’ identities temporarily or permanently

3- Sensitive Data Exposure:

Many web applications and APIs do not properly protect sensitive data, such as financial,
healthcare, and PII. Attackers may steal or modify such weakly protected data to conduct credit
card fraud, identity theft, or other crimes. Sensitive data may be compromised without extra
protection, such as encryption at rest or in transit, and requires special precautions when
exchanged with the browser.

4- XML External Entities – XXE:

Many older or poorly configured XML processors evaluate external entity references within XML
documents. External entities can be used to disclose internal files using the file URI handler,
internal file shares, internal port scanning, remote code execution, and denial of service attacks.

5- Broken Access Control:

Restrictions on what authenticated users are allowed to do are often not properly enforced.
Attackers can exploit these flaws to access unauthorized functionality and/or data, such as access to
other users’ accounts, view sensitive files, modify other users’ data, change access rights, etc

6- Security Misconfiguration:

Security misconfiguration is the most commonly seen issue. This is commonly a result of insecure
default configurations, incomplete or ad hoc configurations, open cloud storage, misconfigured
HTTP headers, and verbose error messages containing sensitive information. Not only must all
operating systems, frameworks, libraries, and applications be securely configured, but they must
be patched and upgraded in a timely fashion.

7- Cross-Site Scripting – XSS:

XSS flaws occur whenever an application includes untrusted data in a new web page without
proper validation or escaping, or updates an existing web page with user-supplied data using a
browser API that can create HTML or JavaScript. XSS allows attackers to execute scripts in the
victim’s browser which can hijack user sessions, deface web sites, or redirect the user to
malicious sites.

8- Insecure Deserialization:

Insecure deserialization often leads to remote code execution. Even if deserialization flaws do not
result in remote code execution, they can be used to perform attacks, including replay attacks,
injection attacks, and privilege escalation attacks.

9- Using Components with Known Vulnerabilities:

Components, such as libraries, frameworks, and other software modules, run with the same
privileges as the application. If a vulnerable component is exploited, such an attack can facilitate
serious data loss or server takeover. Applications and APIs using components with known
vulnerabilities may undermine application defenses and enable various attacks and impacts.

10- Insufficient Logging & Monitoring:

Insufficient logging and monitoring, coupled with missing or ineffective integration with incident
response, allows attackers to further attack systems, maintain persistence, pivot to more systems,
and tamper, extract, or destroy data. Most breach studies show time to detect a breach is over

200 days, typically detected by external parties rather than internal processes or monitoring.

وكذلك بتبدأ تتعلم وتتعرف اكتر عن بقية الثغرات مش بس ال Top10 عن طريق “OWASP Testing Guide

اللي بيقدم معلومات اكتر عن الثغرات طبعا من ناحية ال

Description, Exploitation, Mitigation, Scenarios

وطبعا تقرأ كتب في صلب الموضوع زي:

Web Security Testing Cookbook

The Web Application Hacker’s Handbook 1

The Web Application Hacker’s Handbook 2

القراية هتفيدك جدا سواء وانت بتتعلم لاول مره او بتطور مهاراتك فيما بعد.

وتقدر كمان تشوف كورسات في حماية تطبيقات الويب زي كورس البشمهندس ابراهيم حجازي في ال Web Application Penetration Testing

وبتبدء ان انت تدرب وتطلع الطاقة الهكرية المكتسبة من الكلام ده في تطبيقات مصابه زي

OWASP Juice Shop” او “Damn Vulnerable Web App” او “bWAPP” وتستغل الثغرات عليهم

” مش محتاج احذر ان التلاته لازم يتم تثبيتهم علي Local Host مش موقع متاح لكل الناس “

[تقدر تتعرف اكتر عن كل ما تم ذكره في الجزء ده من خلال R4]

 

– حتي الان انت بقيت Web Application Penetration Tester محترم وعندك خلفية محترمه عن ال Programming وده شئ عظيم 😀

بس افرض انت سنك صغير والبيئة المحيطة بيك من شركات بتسمح للخريجين فقط بالعمل عندهم..مثلا 😀 ف هتحتاج ان انت توظف العلم والخبرة اللي عندك في مجال حماية تطبيقات الويب في شئ تاني يعود عليك بالنفع المادي كالفلوس والمعنوي كالخبرة في ايه هو الشئ ده بقا؟؟؟ 😀 ايوا هو ال Bug Hunting

ال Bug Hunting في حدود ال Web Applications

-“بأعتبار ان اي فرع من فروع ال Penetration Testing نقدر نطبقه في شكل Bug Hunting”-

ما هو الا Web Apps Pentesting ولكن في شكل Freelancing مش مرتبط بشركة او بهيئة معينىة..لا سارح مع نفسك في الكون الواسع. 😀

لكن في كام حاجة لازم يكونوا متوافرين عندك قبل ما تبدء فال Bug Hunting!

1. Methodology

لازم يكون عندك Methodology او بالاحري خريطة للشغل بتاعك..هبسطهالك

لازم تكون راسم لنفسك خطوات ال Testing بتاعك فال Web Application ك خطوة رقم واحد هفحص كذا, خطوة رقم اتنين هجرب كذا..وهكذا.

واللي هي ممكن ببساطة نقول تتكون من خطوات الrecongization لل target’s scope و خطوات ال reconnaissance بتاعك في الscope وبعدين خطواتك فال passive scanning و ال active scanning

وفي methodologies كتير منشورة وتقدر تقرأها وتطبقها كمان.

 

2. Mindset

وديه ببساطة انك تهيأ تفكيرك فالتعامل مع ال Web Applications بأحترافية اثناء ال testing بتاعك.

ومثال علي كدا:

انك دائما تفحص كل ال TCP ports وال UDP ports الاكثر شيوعا.

انك ميأسش لما تلاقي WAF بل تحاول تتخطاه.

انك تطور من معلوماتك ومن خبرتك دائما وتبقي up to date بكل اللي بيدور في المجتمع التقني.

انك متحاصرش وتكتف نفسك ب اداة واحده في اداء مهمه معينه..لا استخدم اكتر من اداه وجمع اكبر عدد من النتائج.

انك تتأكد انك عارف كل شئ في ال Scope عشان تقدر تجيب اكبر عدد من ال findings.

انك تتدرب دائما وابدا عشان تبقي قادر علي مواجهة اكبر كم من التطبيقات وتقدر تجيب فيها ثغرات.

 

-دلوقتي انت تقدر تمارس ال Bug Hunting من طريقين:

1. Self-Hosted Clients

وده معناه انك تدور علي مواقع عندها Security Policy اللي بتسمحلك انك تعمل اختبار اختراق علي انظمتهم وبيبقوا موفرين ليك ايميل ليهم عشان تبلغلهم الثغرات اللي هتجيبها وبيبقوا محددين هيدفعوا فلوس وده اسمه “Bug Bounty Program” ولا عندهم Hall of Fame او بيدوا Swags وده اسمه “Responsible Disclosure

ف بتبدأ انك بتعمل ال Web Penetration Testing بتاعك المعتاد وتبلغلهم الfindings عن طريق وسيلة التواصل اللي هما محددينه وفي اكتر من ليست بتجمع عدد كبير من النوعية ديه.

2. Platforms Clients

وده معناه انك بتسجل في Bug Bounty Platform وبتبدء تشوف ال Current Clients عنده وبتبدء تختار المناسب ليك وبتبدء انك تشتغل علي ال scope بتاعته وبعدها بتبلغ الثغرات اللي لقيتها بكل سهولة!

طب عندنا منصات زي ايه؟

Hackerone

Bugcrowd

Synack

Intigriti

Japan Bug Bounty Program

Cobalt

Zerocopter

Hackenproof

BountyFactory

بمجرد ما تبقي user في المنصة بتقدر تشوف ال Programs المتاحة ليك وتقدر تبدء تشتغل عليها وتبلغ الثغرات.

نقيت تارجت؟ عظيم 😀 .. لقيت ثغرة؟ جميل 😀 .. دماغك بتقول دلوقتي What’s Next! حلو ركز بقا يا معلم.

انت المفروض بتكتب Report لل Program بال findings بتاعتك ف هقولك ببساطة التقرير بيتكون من ايه:

1. Title

وهنا انت بتكتب عنوان الreport ومثال

” Reflected XSS at Login Page “

2. Summary

وهنا انت بتكتب معلومات عن الثغرة اللي لقيتها وبتكتب هيا فين وحصلت ازاي بأختصار ومثال

” While testing the login page I’ve found Reflected XSS at Email Parameter”

3. Vulnerable Assets

وهنا بتبدأ تكتب الWebsite المصاب وال Endpoint المصابة وال Parameter المصاب ومثال

” example.com/login/?email=XSS”

4. Testing Enviorment

وهنا بتكتب بيئة العمل اللي استخدمتها اثناء استغلال واكتشاف الثغرة ومثال

” Browser: Chrome 75 / OS: Win10 / BurpSuite 1.7.37″

5. Steps to Reproduce

وهنا انت بتكتب خطوات استغلال الثغرة بالتفصيل وبالترتيب المنطقي ويستحسن ScreenShot لكل خطوة “بلاش بخل” 😀 ومثال

(1) Go to this page: example.com/login

(2) Enter the payload in Email Field

(3) Click Submit

6. Proof of Concept

وهنا انت بتقدم اثبات وجود الثغرة ويستحسن انك تصور فيديو لخطوات الاستغلال وتثبت فيه وجود الثغرة فعلا

7. Mitigation

وهنا انت بتقدم اقتراح لحل المشكلة اللي بتعملها report لانه ممكن يكون البروجرام معندهوش الخبرة الكافية في نوع الثغرة ده

8. Impact

وهنا انت بتبدء بتوصف خطورة الثغرة وايه ال possible scenarios ليها

-طب دلوقتي انا قدامي تارجت ابدء ب ايه؟

هقولك roadmap صغيره “خاصة بيا”:

اول مرحلة ال discovery واننا نحدد ال scope بتاعنا سواء نشوف ال in-scope domains او تجمع كل ال domains بتاعتهم عن طريق ال SSL Certifications مثلا او تجمع ال acquisitions بتاعت الشركة وبتجمع كل الكلام وتبدء تطلع ال subdomains ب اداوات زي aquatone, sublist3r وترتب الكلام ده.

ثاني مرحلة ال mapping وهنا انت بتبدء تاخد نتيجة المرحلة الاولي وتشغل عليهم مثلا Directory Brute Forcing و تعمل Software Identification وفي اداوات هتفيدك في الكلام ده زي Dirbuster, Dirsearch, Domainker, Builtwith

ثالث مرحلة ال Auth and Session testing وهنا بتبدء تفحص ال Login/Logout/Register Functions مثلا

رابع مرحلة دخول ال Application انت لازم تفهم ال Business Logic بتاع التطبيق وتفهم ال flow بتاعه ماشي ازاي وتفهم كل Function فيه ويستحسن يبقي معاك note تسجل فيها كل حاجه suspicious تشوفها ف تبدء تشوف التطبيق كله A to Z وبعدين ممكن تقرا ال API Documentation بتاعته عشان تفهم كل ال API Requests ماشيه ازاي! وتفهم اكتر عن ال Privileges لو هو تطبيق فيه مستويات مختلفه للمستخدمين.

خامس مرحلة ال Fuzzing وانك تشوف كل ال requests/responses من ال Proxy Editor بتاعك زي BurpSuite وتجرب فيهم سواء يدوي او ب اداوت انك تجرب تستغل ثغرات زي IDOR,XSS,SQLI,CSRF

سادس مرحلة Business Logic Bugs وديه بقا بتبقي عندك امكانيه انك تجيبها لما تبقي فهمت فعلا ال Application وال Business Logic بتاعه وممكن يبقي ليها Impact اعلي من ال Regular Vulnerabilities مثلا في حالات معينه

ديه 6 مراحل بيمر بيهم ال Testing بتاعي علي أغلب ال Web Applications بأختصار طبعا.

[تقدر تتعرف اكتر عن كل ما تم ذكره في الجزء ده من خلال R5]

 

دلوقتي ديه مجموعة من ال Blogs و ال Researchers اللي يستحسن تتابعهم عشان هتستفيد بشكل دوري:

[تقدر توصل للروابط تبع الجزء ده من خلال R6]

References:

R1: 
jobs in Cyber Security: https://is.gd/OuXVV2
Careers in Cyber Security: https://is.gd/fhHjFh

R2:
Types of Penetration Testing: https://is.gd/mHi19R
The Types of Penetration Testing: https://is.gd/kOX4L0

R3:
HTML: https://is.gd/MmbXK8
JavaScript: https://is.gd/uB7EeU
PHP: https://is.gd/B5s7Dq
MySql: https://is.gd/MdjBeI
Ajax: https://is.gd/1deUrL
Python: https://is.gd/rv4QpG
Ruby: https://is.gd/pH84aG
Beginner Perl Maven tutorial: https://is.gd/SwxY2M
Advanced Perl Maven: https://is.gd/kwNoAU
Regex: https://is.gd/RRPGGj
R4:
OWASP Top10: https://is.gd/dHQmCi
OWASP Testing Guide: https://is.gd/H9Auay
Ebrahim Hegazy - Web Application Pentesting Course: https://is.gd/opsiWG
The Tagled Book: https://is.gd/k22de5
Web Security Testing Cookbook: https://is.gd/XiPuud
The Web Application Hackers Handbook 1: https://is.gd/agNl2A
The Web Application Hackers Handbook 2: https://is.gd/cVSEuG
DVWA: https://is.gd/QNE1M1
Juicy Shop: https://is.gd/XHspHC
bWAPP: https://is.gd/RLBMqM

R5:
Hacker mindset: https://is.gd/7oiEVo
The Bug Hunters Methodolgy: https://is.gd/qdgzE9
Bug Bounty Tips&Tricks: https://is.gd/xSOc6c
TBHM: https://is.gd/V229bm
Domainker: https://is.gd/ObZrko
BurpSuite: https://is.gd/jFvFaA
Dirbuster: https://is.gd/cMftDm
Dirsearch: https://is.gd/SOulVJ
Aquatone: https://is.gd/zmXF5f
Sublist3r: https://is.gd/nW59fV
crunchbase: https://is.gd/1dF6El
Builtwith: https://is.gd/Rw3LGh
BBP List: https://is.gd/hsjPFc
BBP List2: https://is.gd/Q6Vsut
Hackerone: https://is.gd/kkoomr
Bugcrowd: https://is.gd/HkdhNJ
Synack: https://is.gd/82CYuk
Intigriti: https://is.gd/a2nMUe
Japan Bug Bounty Program: https://is.gd/6Q8y77
Cobalt: https://is.gd/dpNJUB
Zerocopter: https://is.gd/62gAyw
Hackenproof: https://is.gd/GEFoG2
BountyFactory: https://is.gd/Lyjtg8

R6:
Blogs:-
https://generaleg0x01.com/writeups/ 
https://www.bugcrowd.com/resources/
https://www.isecur1ty.org/
https://blog.0daylabs.com
http://hackerone.com/Hacktivity
https://0x4148.com
http://0xrick.github.io
Twitter:-
@Jhaddix
@brutelogic
@0x4148
@GeneralEG64  
@NahamSec
@Alra3ees
@TheHackersNews
@TheBugBot
@alxbrsn
@Random_Robbie
@daeken
@mazen160
@intigriti
@squnity
@Fady_Othman
@XssPayloads
@sectest9
@phspades
@garagosy
@SecZiko
@d0nutptr
@HackingTutors
@bugbountynotes
@orange_8361
@nnwakelam
@wazehell

اتمني اكون سبب في افادة شخص من الكلام المكتوب وربنا يوفقنا جميعا

لو عندك تعديل / اقتراح / اضافة … اكتبه في كومنت وشكرا.

One thought on “How to Get Started Into Web Security & Bug Hunting”

  1. ربنا يزيدك من علمه ويوفقك ويكرمك انت شخص تستاهل كل خير والله

Leave a Reply

Your email address will not be published. Required fields are marked *