KEMBAR78
Other Techniques Automate Custom Attacks | PDF
0% found this document useful (0 votes)
12 views75 pages

Other Techniques Automate Custom Attacks

هذا الفصل يتناول مجموعة من الأدوات لاختراق تطبيقات الويب، موضحًا كيفية استخدامها في تنفيذ مهام معينة. كما يقدم منهجية مفصلة خطوة بخطوة لمهاجمة التطبيقات، مع التركيز على اكتشاف الثغرات الأمنية. ومع ذلك، لا تضمن هذه الخطوات اكتشاف جميع الثغرات، لكنها توفر إطار عمل جيد لتحقيق الأهداف الأمنية.

Uploaded by

0ba35dac91
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views75 pages

Other Techniques Automate Custom Attacks

هذا الفصل يتناول مجموعة من الأدوات لاختراق تطبيقات الويب، موضحًا كيفية استخدامها في تنفيذ مهام معينة. كما يقدم منهجية مفصلة خطوة بخطوة لمهاجمة التطبيقات، مع التركيز على اكتشاف الثغرات الأمنية. ومع ذلك، لا تضمن هذه الخطوات اكتشاف جميع الثغرات، لكنها توفر إطار عمل جيد لتحقيق الأهداف الأمنية.

Uploaded by

0ba35dac91
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 75

‫ﻣﺘﺮﺟﻢ ﻣﻦ ﺍﻹﻧﺠﻠﻴﺰﻳﺔ ﺇﻟﻰ ﺍﻟﻌﺮﺑﻴﺔ ‪www.onlinedoctranslator.

com -‬‬

‫ﺍﻟﻔﺼﻞ‪-20‬ﻣﺠﻤﻮﻋﺔ ﺃﺩﻭﺍﺕ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪790‬‬

‫ﻣﺠﻤﻮﻋﺔﻛﺒﻴﺮﺓ ﻣﻦ ﺍﻷﺩﻭﺍﺕ ﺍﻟﻤﺘﻜﺎﻣﻠﺔ ﺍﻷﺧﺮﻯ ﺍﻟﺘﻲ ﺗﻤُﻜﻨّﻚ ﻣﻦ ﺃﺗﻤﺘﺔ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﻤﻬﺎﻡ ﺍﻟﺘﻲ‬
‫ﺳﺘﺤﺘﺎﺝﺇﻟﻰ ﺗﻨﻔﻴﺬﻫﺎ‪ .‬ﺑﺎﻹﺿﺎﻓﺔ ﺇﻟﻰ ﺇﺣﺪﻯ ﻫﺬﻩ ﺍﻟﻤﺠﻤﻮﻋﺎﺕ‪ ،‬ﺳﺘﺤﺘﺎﺝ ﺇﻟﻰ ﺍﺳﺘﺨﺪﺍﻡ ﻣﻠﺤﻖ‬
‫ﻣﺘﺼﻔﺢﻭﺍﺣﺪ ﺃﻭ ﺃﻛﺜﺮ ﻳﻤُﻜﻨّﻚ ﻣﻦ ﻣﻮﺍﺻﻠﺔ ﺍﻟﻌﻤﻞ ﻓﻲ ﺍﻟﺤﺎﻻﺕ ﺍﻟﺘﻲ ﻻ ﻳﻤُﻜﻦ ﻓﻴﻬﺎ ﺍﺳﺘﺨﺪﺍﻡ‬
‫ﺍﻟﺒﺮﻭﻛﺴﻲ‪.‬‬
‫ﺍﻟﻨﻮﻉﺍﻟﺮﺉﻴﺴﻲ ﺍﻵﺧﺮ ﻣﻦ ﺍﻷﺩﻭﺍﺕ ﺍﻟﺘﻲ ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻫﻮ ﻣﺎﺳﺢ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬
‫ﺍﻟﻤﺴﺘﻘﻞ‪.‬ﺗﺘﻤﻴﺰ ﻫﺬﻩ ﺍﻷﺩﻭﺍﺕ ﺑﻔﻌﺎﻟﻴﺘﻬﺎ ﻓﻲ ﺍﻛﺘﺸﺎﻑ ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ ﺍﻟﺸﺎﺉﻌﺔ‬
‫ﺑﺴﺮﻋﺔ‪،‬ﻛﻤﺎ ﺃﻧﻬﺎ ﺗﺴﺎﻋﺪﻙ ﻋﻠﻰ ﺗﺤﺪﻳﺪ ﻭﻇﺎﺉﻒ ﺍﻟﺘﻄﺒﻴﻖ ﻭﺗﺤﻠﻴﻠﻬﺎ‪ .‬ﻭﻣﻊ ﺫﻟﻚ‪ ،‬ﻓﻬﻲ ﻏﻴﺮ ﻗﺎﺩﺭﺓ ﻋﻠﻰ‬
‫ﺗﺤﺪﻳﺪﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺃﻧﻮﺍﻉ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ‪ ،‬ﻭﻻ ﻳﻤﻜﻨﻚ ﺍﻻﻋﺘﻤﺎﺩ ﻋﻠﻴﻬﺎ ﻹﺻﺪﺍﺭ ﺷﻬﺎﺩﺓ ﺳﻼﻣﺔ ﻛﺎﻣﻠﺔ‬
‫ﻷﻱﺗﻄﺒﻴﻖ‪.‬‬

‫ﻓﻲﻧﻬﺎﻳﺔ ﺍﻟﻤﻄﺎﻑ‪ ،‬ﻣﺎ ﺳﻴﺠﻌﻠﻚ ﻣﺨﺘﺮﻕ ﺗﻄﺒﻴﻘﺎﺕ ﻭﻳﺐ ﺑﺎﺭﻋﺎً ﻫﻮ ﻗﺪﺭﺗﻚ ﻋﻠﻰ ﻓﻬﻢ ﻛﻴﻔﻴﺔ ﻋﻤﻞ‬
‫ﺗﻄﺒﻴﻘﺎﺕﺍﻟﻮﻳﺐ‪ ،‬ﻭﻧﻘﺎﻁ ﺿﻌﻒ ﺩﻓﺎﻋﺎﺗﻬﺎ‪ ،‬ﻭﻛﻴﻔﻴﺔ ﻓﺤﺼﻬﺎ ﺑﺤﺜﺎً ﻋﻦ ﺛﻐﺮﺍﺕ ﻗﺎﺑﻠﺔ ﻟﻼﺳﺘﻐﻼﻝ‪.‬‬
‫ﻟﻠﻘﻴﺎﻡﺑﺬﻟﻚ ﺑﻔﻌﺎﻟﻴﺔ‪ ،‬ﺗﺤﺘﺎﺝ ﺇﻟﻰ ﺃﺩﻭﺍﺕ ﺗﻤُﻜﻨّﻚ ﻣﻦ ﺍﻟﻨﻈﺮ ﺇﻟﻰ ﻣﺎ ﻭﺭﺍء ﺍﻟﻜﻮﺍﻟﻴﺲ‪ ،‬ﻭﺍﻟﺘﺤﻜﻢ ﻓﻲ‬
‫ﺗﻔﺎﻋﻠﻚﻣﻊ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺑﺪﻗﺔ‪ ،‬ﻭﺍﻻﺳﺘﻔﺎﺩﺓ ﻣﻦ ﺍﻷﺗﻤﺘﺔ ﻛﻠﻤﺎ ﺃﻣﻜﻦ ﻟﺠﻌﻞ ﻫﺠﻤﺎﺗﻚ ﺃﺳﺮﻉ ﻭﺃﻛﺜﺮ‬
‫ﻣﻮﺛﻮﻗﻴﺔ‪.‬ﺃﻳﺎً ﻛﺎﻧﺖ ﺍﻷﺩﻭﺍﺕ ﺍﻟﺘﻲ ﺗﺮﺍﻫﺎ ﺍﻷﻧﺴﺐ ﻟﺘﺤﻘﻴﻖ ﻫﺬﻩ ﺍﻷﻫﺪﺍﻑ‪ ،‬ﻓﻬﻲ ﺍﻷﻧﺴﺐ ﻟﻚ‪ .‬ﻭﺇﺫﺍ ﻟﻢ‬
‫ﺗﻠُﺐ ِّﺍﻷﺩﻭﺍﺕ ﺍﻟﻤﺘﺎﺣﺔ ﺍﺣﺘﻴﺎﺟﺎﺗﻚ‪ ،‬ﻳﻤﻜﻨﻚ ﺩﺍﺉﻤﺎً ﺇﻧﺸﺎء ﺃﺩﻭﺍﺗﻚ ﺍﻟﺨﺎﺻﺔ‪ .‬ﺍﻷﻣﺮ ﻟﻴﺲ ﺻﻌﺒﺎً‪،‬‬
‫ﺻﺪﻗﻨﻲ‪.‬‬
‫ﺗﻴﺮ‬ ‫‪12‬‬‫ﺃﺏ‬ ‫‪CH‬‬

‫ﻫﺎﻛﺮ‬ ‫ﺗﻄﺒﻴﻖﻭﻳﺐ‬
‫ﺍﻟﻤﻴﺜﺎﻣﻔﻴﺘﺎﻣﻴﻦﻋﻠﻢﺍﻟﺮﻭﺍﺉﺢ‬

‫ﻳﺤﺘﻮﻱﻫﺬﺍ ﺍﻟﻔﺼﻞ ﻋﻠﻰ ﻣﻨﻬﺠﻴﺔ ﻣﻔﺼﻠﺔ ﺧﻄﻮﺓ ﺑﺨﻄﻮﺓ ﻳﻤﻜﻨﻚ ﺍﺗﺒﺎﻋﻬﺎ ﻋﻨﺪ ﻣﻬﺎﺟﻤﺔ ﺗﻄﺒﻴﻖ ﻭﻳﺐ‪.‬‬
‫ﻳﻐﻄﻲﻫﺬﺍ ﺍﻟﻔﺼﻞ ﺟﻤﻴﻊ ﻓﺉﺎﺕ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ ﻭﺗﻘﻨﻴﺎﺕ ﺍﻟﻬﺠﻮﻡ ﺍﻟﻤﻮﺿﺤﺔ ﻓﻲ ﻫﺬﺍ ﺍﻟﻜﺘﺎﺏ‪ .‬ﻣﻊ‬
‫ﺃﻥﺍﺗﺒﺎﻉ ﺟﻤﻴﻊ ﺧﻄﻮﺍﺕ ﻫﺬﻩ ﺍﻟﻤﻨﻬﺠﻴﺔ ﻻ ﻳﻀﻤﻦ ﺍﻛﺘﺸﺎﻑ ﺟﻤﻴﻊ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ ﻓﻲ ﺗﻄﺒﻴﻖ‬
‫ﻣﻌﻴﻦ‪،‬ﺇﻻ ﺃﻧﻪ ﺳﻴﻮﻓﺮ ﻟﻚ ﺿﻤﺎﻧﺎً ﺟﻴﺪﺍً ﺑﺄﻧﻚ ﻗﺪ ﺍﺳﺘﻜﺸﻔﺖ ﺟﻤﻴﻊ ﺍﻟﻤﻨﺎﻃﻖ ﺍﻟﻀﺮﻭﺭﻳﺔ ﻟﺴﻄﺢ ﻫﺠﻮﻡ‬
‫ﺍﻟﺘﻄﺒﻴﻖ‪،‬ﻭﻋﺜﺮﺕ ﻋﻠﻰ ﺃﻛﺒﺮ ﻋﺪﺩ ﻣﻤﻜﻦ ﻣﻦ ﺍﻟﻤﺸﺎﻛﻞ‪ ،‬ﻓﻲ ﻇﻞ ﺍﻟﻤﻮﺍﺭﺩ ﺍﻟﻤﺘﺎﺣﺔ ﻟﻚ‪.‬‬

‫ﻳﻮﺿﺢﺍﻟﺸﻜﻞ ‪ 1-21‬ﻣﺠﺎﻻﺕ ﺍﻟﻌﻤﻞ ﺍﻟﺮﺉﻴﺴﻴﺔ ﺍﻟﺘﻲ ﺗﺼﻔﻬﺎ ﻫﺬﻩ ﺍﻟﻤﻨﻬﺠﻴﺔ‪ .‬ﺳﻨﺘﻌﻤﻖ ﻓﻲ ﻫﺬﺍ‬
‫ﺍﻟﺮﺳﻢﺍﻟﺒﻴﺎﻧﻲ ﻭﻧﻮﺿﺢ ﺗﻘﺴﻴﻢ ﺍﻟﻤﻬﺎﻡ ﺍﻟﺘﻲ ﻳﺘﻀﻤﻨﻬﺎ ﻛﻞ ﻣﺠﺎﻝ‪ .‬ﺗﺘﻮﺍﻓﻖ ﺍﻷﺭﻗﺎﻡ ﻓﻲ ﺍﻟﺮﺳﻮﻡ ﺍﻟﺒﻴﺎﻧﻴﺔ‬
‫ﻣﻊﺍﻟﻘﺎﺉﻤﺔ ﺍﻟﻤﺮﻗﻤﺔ ﺍﻟﻬﺮﻣﻴﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻲ ﺍﻟﻤﻨﻬﺠﻴﺔ‪ ،‬ﻣﻤﺎ ﻳﺘﻴﺢ ﻟﻚ ﺍﻻﻧﺘﻘﺎﻝ ﺑﺴﻬﻮﻟﺔ ﺇﻟﻰ‬
‫ﺍﻹﺟﺮﺍءﺍﺕﺍﻟﻤﺘﻌﻠﻘﺔ ﺑﻜﻞ ﻣﺠﺎﻝ‪.‬‬

‫ﺗﻘُﺪﻡَّﺍﻟﻤﻨﻬﺠﻴﺔ ﻛﺴﻠﺴﻠﺔ ﻣﻦ ﺍﻟﻤﻬﺎﻡ ﺍﻟﻤﻨُﻈﻤَّﺔ ﻭﺍﻟﻤﺮﺗﺒَّﺔ ﻭﻓﻘﺎً ﻟﻠﺘﺮﺍﺑﻂ ﺍﻟﻤﻨﻄﻘﻲ ﺑﻴﻨﻬﺎ‪ .‬ﻭﻳﺴُﻠﻂَّ‬
‫ﺍﻟﻀﻮءﻋﻠﻰ ﻫﺬﻩ ﺍﻟﺘﺮﺍﺑﻄﺎﺕ ﻗﺪﺭ ﺍﻹﻣﻜﺎﻥ ﻓﻲ ﺃﻭﺻﺎﻑ ﺍﻟﻤﻬﺎﻡ‪ .‬ﻭﻣﻊ ﺫﻟﻚ‪ ،‬ﺳﺘﺤﺘﺎﺝ ﻋﻤﻠﻴﺎً ﺇﻟﻰ ﺍﻟﺘﻔﻜﻴﺮ‬
‫ﺑﺸﻜﻞﻣﺘُﺨﻴﻞَّ ﻓﻲ ﺍﻻﺗﺠﺎﻩ ﺍﻟﺬﻱ ﻳﻨﺒﻐﻲ ﺃﻥ ﺗﺴﻠﻜﻪ ﺃﻧﺸﻄﺘﻚ‪ ،‬ﻭﺃﻥ ﺗﺴﺘﺮﺷﺪ ﺑﻤﺎ ﺗﻜﺘﺸﻔﻪ ﺣﻮﻝ‬
‫ﺍﻟﺘﻄﺒﻴﻖﺍﻟﺬﻱ ﺗﻌُﻨﻰ ﺑﻪ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪:‬‬

‫ﻗﺪﺗﻤُﻜﻨّﻚ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﺍﻟﻤﺠُﻤﻌّﺔ ﻓﻲ ﻣﺮﺣﻠﺔ ﻭﺍﺣﺪﺓ ﻣﻦ ﺍﻟﻌﻮﺩﺓ ﺇﻟﻰ ﻣﺮﺣﻠﺔ ﺳﺎﺑﻘﺔ ﻭﺻﻴﺎﻏﺔ‬ ‫‪-‬‬

‫ﻫﺠﻤﺎﺕﺃﻛﺜﺮ ﺗﺮﻛﻴﺰﺍً‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﻗﺪ ﻳﻤُﻜﻨّﻚ ﺧﻠﻞ ﻓﻲ ﺍﻟﺘﺤﻜﻢ ﻓﻲ ﺍﻟﻮﺻﻮﻝ ﻳﻤُﻜﻨّﻚ‬
‫ﻣﻦﺍﻟﺤﺼﻮﻝ ﻋﻠﻰ ﻗﺎﺉﻤﺔ ﺑﺠﻤﻴﻊ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﻣﻦ‪:‬‬

‫‪791‬‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪792‬‬

‫ﺗﻨﻔﻴﺬﻫﺠﻮﻡ ﺗﺨﻤﻴﻦ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ ﺑﺸﻜﻞ ﺃﻛﺜﺮ ﻓﻌﺎﻟﻴﺔ ﺿﺪ ﻭﻇﻴﻔﺔ ﺍﻟﻤﺼﺎﺩﻗﺔ‪.‬‬

‫ﻗﺪﻳﻤُﻜﻨّﻚ ﺍﻛﺘﺸﺎﻑ ﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ ﺭﺉﻴﺴﻴﺔ ﻓﻲ ﺃﺣﺪ ﺟﻮﺍﻧﺐ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻦ ﺍﺧﺘﺼﺎﺭ ﺑﻌﺾ‬ ‫‪-‬‬

‫ﺍﻟﻤﻬﺎﻡﻓﻲ ﺟﻮﺍﻧﺐ ﺃﺧﺮﻯ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﻗﺪ ﺗﻤُﻜﻨّﻚ ﺛﻐﺮﺓ ﺍﻟﻜﺸﻒ ﻋﻦ ﺍﻟﻤﻠﻔﺎﺕ ﻣﻦ‬
‫ﻣﺮﺍﺟﻌﺔﺑﺮﻣﺠﻴﺔ ﻟﻮﻇﺎﺉﻒ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺮﺉﻴﺴﻴﺔ ﺑﺪﻻ ًﻣﻦ ﻓﺤﺼﻬﺎ ﺑﻄﺮﻳﻘﺔ ﺳﺮﻳﺔ‪.‬‬

‫ﻗﺪﺗﺒُﺮﺯ ﻧﺘﺎﺉﺞ ﺍﺧﺘﺒﺎﺭﺍﺗﻚ ﻓﻲ ﺑﻌﺾ ﺍﻟﻤﺠﺎﻻﺕ ﺃﻧﻤﺎﻃﺎً ﻣﻦ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻟﻤﺘﻜﺮﺭﺓ ﺍﻟﺘﻲ ﻳﻤُﻜﻨﻚ‬ ‫‪-‬‬

‫ﺍﻟﺒﺤﺚﻋﻨﻬﺎ ﻓﻮﺭﺍً ﻓﻲ ﻣﺠﺎﻻﺕ ﺃﺧﺮﻯ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﻗﺪ ﻳﻤُﻜﻨّﻚ ﺧﻠﻞ ﻋﺎﻡ ﻓﻲ‬
‫ﻣﺮُﺷﺤّﺎﺕﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺻﺤﺔ ﻣﺪُﺧﻼﺕ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻦ ﺇﻳﺠﺎﺩ ﻃﺮﻳﻘﺔ ﺳﺮﻳﻌﺔ ﻟﺘﺠﺎﻭﺯ ﺩﻓﺎﻋﺎﺗﻪ‬
‫ﺿﺪﻓﺉﺎﺕ ﻣﺨُﺘﻠﻔﺔ ﻣﻦ ﺍﻟﻬﺠﻤﺎﺕ‪.‬‬

‫ﺍﻻﺳﺘﻄﻼﻉﻭﺍﻟﺘﺤﻠﻴﻞ‬

‫‪.1‬ﻣﺤﺘﻮﻯ ﺗﻄﺒﻴﻖ ﺍﻟﺨﺮﻳﻄﺔ‬

‫‪.2‬ﺗﺤﻠﻴﻞ ﺍﻟﺘﻄﺒﻴﻖ‬

‫ﺍﺳﺘﻀﺎﻓﺔﺍﻟﺘﻄﺒﻴﻘﺎﺕ‬ ‫ﻣﻌﺎﻟﺠﺔﺍﻹﺩﺧﺎﻝ‬ ‫ﻣﻌﺎﻟﺠﺔﺍﻟﻮﺻﻮﻝ‬ ‫ﻣﻨﻄﻖﺍﻟﺘﻄﺒﻴﻖ‬

‫‪.10‬ﺍﺧﺘﺒﺎﺭ ﻣﺸﺎﻛﻞ‬ ‫‪.7‬ﻗﻢ ﺑﺈﺧﻔﺎء ﻛﻞ ﺷﻲء‬ ‫‪.4‬ﺍﺧﺘﺒﺎﺭ‬ ‫‪.3‬ﺍﺧﺘﺒﺎﺭ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ‬


‫ﺍﻻﺳﺘﻀﺎﻓﺔﺍﻟﻤﺸﺘﺮﻛﺔ‬ ‫ﺣﺪﻭﺩ‬ ‫ﺍﻟﻤﺼﺎﺩﻗﺔ‬ ‫ﻋﻨﺎﺻﺮﺍﻟﺘﺤﻜﻢ‬

‫‪.8‬ﺍﺧﺘﺒﺎﺭ ﺍﻟﻤﺸﻜﻼﺕ‬
‫‪.11‬ﺍﺧﺘﺒﺎﺭ ﺧﺎﺩﻡ‬ ‫‪.5‬ﺟﻠﺴﺔ ﺍﻻﺧﺘﺒﺎﺭ‬ ‫‪.9‬ﺍﺧﺘﺒﺎﺭ ﺍﻟﻌﻴﻮﺏ‬
‫ﺍﻟﻤﺘﻌﻠﻘﺔﺑـ‬
‫ﺍﻟﻮﻳﺐ‬ ‫ﺇﺩﺍﺭﺓ‬ ‫ﺍﻟﻤﻨﻄﻘﻴﺔ‬
‫ﺍﻟﻮﻇﻴﻔﺔ‬

‫‪.6‬ﺍﺧﺘﺒﺎﺭ ﺍﻟﻮﺻﻮﻝ‬
‫ﻋﻨﺎﺻﺮﺍﻟﺘﺤﻜﻢ‬

‫‪.13‬ﺍﻟﻤﻌﻠﻮﻣﺎﺕ‬ ‫‪.12‬ﻣﺘﻔﺮﻗﺎﺕ‬
‫ﺗﺴﺮﺏ‬ ‫ﺍﻟﺸﻴﻜﺎﺕ‬

‫ﺍﻟﺸﻜﻞ‪:1-21‬ﻣﺠﺎﻻﺕ ﺍﻟﻌﻤﻞ ﺍﻟﺮﺉﻴﺴﻴﺔ ﺍﻟﻤﺸﺎﺭﻛﺔ ﻓﻲ ﺍﻟﻤﻨﻬﺠﻴﺔ‬

‫ﺍﺳﺘﺨﺪﻡﺍﻟﺨﻄﻮﺍﺕ ﺍﻟﻮﺍﺭﺩﺓ ﻓﻲ ﻫﺬﻩ ﺍﻟﻤﻨﻬﺠﻴﺔ ﻟﺘﻮﺟﻴﻪ ﻋﻤﻠﻚ‪ ،‬ﻭﻛﻘﺎﺉﻤﺔ ﻣﺮﺟﻌﻴﺔ ﻟﺘﺠﻨﺐ ﺃﻱ‬
‫ﺳﻬﻮ‪،‬ﻭﻟﻜﻦ ﻻ ﺗﺸﻌﺮ ﺑﺄﻧﻚ ﻣﻠﺰﻡ ﺑﺎﻻﻟﺘﺰﺍﻡ ﺑﻬﺎ ﺑﺸﻜﻞ ﺻﺎﺭﻡ‪.‬‬
‫‪793‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫ﺍﻟﻔﻜﺮﺓﺍﻟﺘﺎﻟﻴﺔ ﻓﻲ ﺍﻻﻋﺘﺒﺎﺭ‪ :‬ﺍﻟﻤﻬﺎﻡ ﺍﻟﺘﻲ ﻧﺼﻔﻬﺎ ﻫﻲ ﺇﻟﻰ ﺣﺪ ﻛﺒﻴﺮ ﻗﻴﺎﺳﻴﺔ ﻭﺗﻘﻠﻴﺪﻳﺔ؛ ﻭﺍﻟﻬﺠﻤﺎﺕ‬
‫ﺍﻷﻛﺜﺮﺇﺛﺎﺭﺓ ﻟﻺﻋﺠﺎﺏ ﺿﺪ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ ﺗﻨﻄﻮﻱ ﺩﺍﺉﻤﺎً ﻋﻠﻰ ﺍﻟﺘﻔﻜﻴﺮ ﺧﺎﺭﺟﻬﺎ‪.‬‬

‫ﺍﻟﻤﺒﺎﺩﺉﺍﻟﺘﻮﺟﻴﻬﻴﺔ ﺍﻟﻌﺎﻣﺔ‬

‫ﻳﺠﺐﻋﻠﻴﻚ ﺩﺍﺉﻤﺎً ﻣﺮﺍﻋﺎﺓ ﺑﻌﺾ ﺍﻻﻋﺘﺒﺎﺭﺍﺕ ﺍﻟﻌﺎﻣﺔ ﻋﻨﺪ ﺗﻨﻔﻴﺬ ﺍﻟﻤﻬﺎﻡ ﺍﻟﺘﻔﺼﻴﻠﻴﺔ ﺍﻟﻤﺘﻌﻠﻘﺔ‬
‫ﺑﻤﻬﺎﺟﻤﺔﺗﻄﺒﻴﻖ ﻭﻳﺐ‪ .‬ﻗﺪ ﺗﻨﻄﺒﻖ ﻫﺬﻩ ﺍﻻﻋﺘﺒﺎﺭﺍﺕ ﻋﻠﻰ ﻣﺨﺘﻠﻒ ﺍﻟﻤﺠﺎﻻﺕ ﺍﻟﺘﻲ ﺗﺤﺘﺎﺝ ﺇﻟﻰ ﻓﺤﺼﻬﺎ‬
‫ﻭﺍﻟﺘﻘﻨﻴﺎﺕﺍﻟﺘﻲ ﺗﺤﺘﺎﺝ ﺇﻟﻰ ﺗﻨﻔﻴﺬﻫﺎ‪.‬‬
‫ﺗﺬﻛﺮﺃﻥ ﻟﻜﻞ ﺣﺮﻑ ﻣﻌﻨﻰ ﺧﺎﺹ ﻓﻲ ﺃﺟﺰﺍء ﻣﺨﺘﻠﻔﺔ ﻣﻦ ﻃﻠﺐ ‪ .HTTP‬ﻋﻨﺪ ﺗﻌﺪﻳﻞ ﺍﻟﺒﻴﺎﻧﺎﺕ‬ ‫‪-‬‬

‫ﺿﻤﻦﺍﻟﻄﻠﺒﺎﺕ‪ ،‬ﻳﺠﺐ ﺗﺮﻣﻴﺰ ﻫﺬﻩ ﺍﻷﺣﺮﻑ ﻓﻲ ﻋﻨﺎﻭﻳﻦ ‪ URL‬ﻟﻀﻤﺎﻥ ﺗﻔﺴﻴﺮﻫﺎ ﺑﺎﻟﺸﻜﻞ‬


‫ﺍﻟﻤﻄﻠﻮﺏ‪.‬‬

‫&ﻳﺴُﺘﺨﺪﻡ ﻟﻔﺼﻞ ﺍﻟﻤﻌﺎﻣﻼﺕ ﻓﻲ ﺳﻠﺴﻠﺔ ﺍﺳﺘﻌﻼﻡ ﻋﻨﻮﺍﻥ ‪ URL‬ﻭﻧﺺ ﺍﻟﺮﺳﺎﻟﺔ‪ .‬ﻹﺩﺭﺍﺝ‬ ‫‪-‬‬

‫ﺣﺮﻑ&‪ ،‬ﻳﺠﺐ ﺗﺮﻣﻴﺰﻩ ﻛـ ‪.26.%‬‬

‫=ﻳﺴُﺘﺨﺪﻡ ﻟﻔﺼﻞ ﺍﺳﻢ ﻭﻗﻴﻤﺔ ﻛﻞ ﻣﻌﻠﻤﺔ ﻓﻲ ﺳﻠﺴﻠﺔ ﺍﺳﺘﻌﻼﻡ ﻋﻨﻮﺍﻥ ‪ URL‬ﻭﻧﺺ‬ ‫‪-‬‬

‫ﺍﻟﺮﺳﺎﻟﺔ‪.‬ﻹﺩﺭﺍﺝ ﺣﺮﻑ =‪ ،‬ﻳﺠﺐ ﺗﺮﻣﻴﺰﻩ ﻛـ ‪3.%‬ﺩ‪.‬‬

‫؟ﻳﺴُﺘﺨﺪﻡ ﻟﺘﺤﺪﻳﺪ ﺑﺪﺍﻳﺔ ﺳﻠﺴﻠﺔ ﺍﺳﺘﻌﻼﻡ ﻋﻨﻮﺍﻥ ‪ .URL‬ﻹﺩﺭﺍﺝ ﺣﺮﻑ "؟" ﺣﺮﻓﻴﺎً‪ ،‬ﻳﺠﺐ‬ ‫‪-‬‬

‫ﺗﺮﻣﻴﺰﻩﻛـ ‪3%‬ﻑ‪.‬‬

‫ﻳﺘﻢﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﻤﺴﺎﻓﺔ ﻟﺘﺤﺪﻳﺪ ﻧﻬﺎﻳﺔ ﻋﻨﻮﺍﻥ ‪ URL‬ﻓﻲ ﺍﻟﺴﻄﺮ ﺍﻷﻭﻝ ﻣﻦ ﺍﻟﻄﻠﺒﺎﺕ ﻭﻳﻤﻜﻦ‬ ‫‪-‬‬

‫ﺃﻥﺗﺸﻴﺮ ﺇﻟﻰ ﻧﻬﺎﻳﺔ ﻗﻴﻤﺔ ﻣﻠﻒ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﻓﻲﻛﻮﻛﻴﺰﺍﻟﺮﺃﺱ‪ .‬ﻹﺩﺭﺍﺝ ﻣﺴﺎﻓﺔ ﺣﺮﻓﻴﺔ‪،‬‬
‫ﻳﺠﺐﺗﺮﻣﻴﺰﻫﺎ ﻛـ ‪20%‬ﺃﻭ ‪.+‬‬
‫ﻧﻈﺮﺍًﻷﻥ ‪ +‬ﻳﻤﺜﻞ ﻣﺴﺎﻓﺔ ﻣﺸﻔﺮﺓ‪ ،‬ﻹﺩﺭﺍﺝ ﺣﺮﻑ ‪ +‬ﺣﺮﻓﻲ‪ ،‬ﻳﺠﺐ ﻋﻠﻴﻚ ﺗﺮﻣﻴﺰ ﻫﺬﺍ ﻋﻠﻰ‬ ‫‪-‬‬

‫ﻫﻴﺉﺔ‪2%‬ﺏ‪.‬‬

‫؛ﻳﺘﻢ ﺍﺳﺘﺨﺪﺍﻣﻪ ﻟﻔﺼﻞ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﺍﻟﻔﺮﺩﻳﺔ ﻓﻲﻛﻮﻛﻴﺰﺍﻟﺮﺃﺱ‪ .‬ﻹﺩﺭﺍﺝ ﺣﺮﻑ ;‪،‬‬ ‫‪-‬‬

‫ﻳﺠﺐﺗﺮﻣﻴﺰﻩ ﻛـ ‪3%‬ﺏ‪.‬‬

‫‪ #‬ﻳﺴُﺘﺨﺪﻡﻟﺘﺤﺪﻳﺪ ﻣﻌُﺮﻑِّ ﺍﻟﺠﺰء ﺩﺍﺧﻞ ﻋﻨﻮﺍﻥ ‪ .URL‬ﺇﺫﺍ ﺃﺩﺧﻠﺖ َﻫﺬﺍ ﺍﻟﺤﺮﻑ ﻓﻲ ﻋﻨﻮﺍﻥ‬ ‫‪-‬‬

‫‪ URL‬ﺩﺍﺧﻞ ﻣﺘﺼﻔﺤﻚ‪ ،‬ﻓﺴﻴﺆﺩﻱ ﺫﻟﻚ ﺇﻟﻰ ﺣﺬﻑ ﻋﻨﻮﺍﻥ ‪ URL‬ﺍﻟﻤﺮُﺳﻞَ ﺇﻟﻰ ﺍﻟﺨﺎﺩﻡ‪.‬‬
‫ﻹﺩﺭﺍﺝﺣﺮﻑ ‪ #‬ﺣﺮﻓﻴﺎً‪ ،‬ﻳﺠﺐ ﺗﺮﻣﻴﺰﻩ ﻛـ ‪.23.%‬‬

‫‪%‬ﻳﺴُﺘﺨﺪﻡ ﻛﺒﺎﺩﺉﺔ ﻓﻲ ﻧﻈﺎﻡ ﺗﺮﻣﻴﺰ ‪ .URL‬ﻹﺩﺭﺍﺝ ﺣﺮﻑ‬ ‫‪-‬‬

‫‪%‬ﺍﻟﺤﺮﻑ‪ ،‬ﻳﺠﺐ ﻋﻠﻴﻚ ﺗﺮﻣﻴﺰﻩ ﻛـ‪.25%‬‬

‫ﻳﺠﺐﺑﺎﻟﻄﺒﻊ ﺗﺮﻣﻴﺰ ﺃﻱ ﺃﺣﺮﻑ ﻏﻴﺮ ﻗﺎﺑﻠﺔ ﻟﻠﻄﺒﺎﻋﺔ ﻣﺜﻞ ﺍﻟﺒﺎﻳﺘﺎﺕ ﺍﻟﻔﺎﺭﻏﺔ ﻭﺍﻷﺳﻄﺮ ﺍﻟﺠﺪﻳﺪﺓ‬ ‫‪-‬‬

‫ﺑﺎﺳﺘﺨﺪﺍﻡﺭﻣﺰ ﺣﺮﻑ ‪ ASCII‬ﺍﻟﺨﺎﺹ ﺑﻬﺎ ‪ -‬ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ‪ ،‬ﻛـ‪00%‬ﻭ ‪0٪‬ﺃ‪,‬ﻋﻠﻰ ﺍﻟﺘﻮﺍﻟﻰ‪.‬‬

‫ﻋﻼﻭﺓﻋﻠﻰ ﺫﻟﻚ‪ ،‬ﺗﺠﺪﺭ ﺍﻹﺷﺎﺭﺓ ﺇﻟﻰ ﺃﻥ ﺇﺩﺧﺎﻝ ﺑﻴﺎﻧﺎﺕ ﻣﺮُﻣﺰَّﺓ ﺑﺮﺍﺑﻂ ‪ URL‬ﻓﻲ ﻧﻤﻮﺫﺝ ﻋﺎﺩﺓ ًﻣﺎ‬ ‫‪-‬‬

‫ﻳﺆُﺩﻱﺇﻟﻰ ﻗﻴﺎﻡ ﻣﺘﺼﻔﺤﻚ ﺑﻄﺒﻘﺔ ﺃﺧﺮﻯ ﻣﻦ ﺍﻟﺘﺮﻣﻴﺰ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪،‬‬


‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪794‬‬

‫ﺇﺭﺳﺎﻝ‪00%‬ﻓﻲ ﻧﻤﻮﺫﺝ ﻣﻦ ﺍﻟﻤﺤﺘﻤﻞ ﺃﻥ ﻳﺆﺩﻱ ﺇﻟﻰ ﻗﻴﻤﺔ ‪2500%‬ﻳﺘﻢ ﺇﺭﺳﺎﻟﻬﺎ ﺇﻟﻰ ﺍﻟﺨﺎﺩﻡ‪.‬‬
‫ﻟﻬﺬﺍﺍﻟﺴﺒﺐ‪ ،‬ﻳﻔُﻀﻞّ ﻋﺎﺩﺓ ًﻣﺮﺍﻗﺒﺔ ﺍﻟﻄﻠﺐ ﺍﻟﻨﻬﺎﺉﻲ ﺿﻤﻦ ﻭﻛﻴﻞ ﺍﻋﺘﺮﺍﺽ‪.‬‬

‫ﺗﺘﻀﻤﻦﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﺧﺘﺒﺎﺭﺍﺕ ﺛﻐﺮﺍﺕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ ﺍﻟﺸﺎﺉﻌﺔ ﺇﺭﺳﺎﻝ ﺳﻼﺳﻞ ﺇﺩﺧﺎﻝ‬ ‫‪-‬‬

‫ﻣﻌُﺪﺓّﻣﺨُﺘﻠﻔﺔ ﻭﻣﺮﺍﻗﺒﺔ ﺍﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺤﺜﺎً ﻋﻦ ﺃﻱ ﺷﺬﻭﺫ ﻳﺸُﻴﺮ ﺇﻟﻰ ﻭﺟﻮﺩ ﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ‪.‬‬
‫ﻓﻲﺑﻌﺾ ﺍﻟﺤﺎﻻﺕ‪ ،‬ﺗﺤﺘﻮﻱ ﺍﺳﺘﺠﺎﺑﺔ ﺍﻟﺘﻄﺒﻴﻖ ﻟﻄﻠﺐ ﻣﻌُﻴﻦّ ﻋﻠﻰ ﺗﻮﻗﻴﻊ ﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ ﻣﺤُﺪﺩّﺓ‪،‬‬
‫ﺑﻐﺾﺍﻟﻨﻈﺮ ﻋﻤﺎّ ﺇﺫﺍ ﻛﺎﻥ ﻗﺪ ﺗﻢ ﺇﺭﺳﺎﻝ ﻣﺤُﻔﺰّ ﻟﻬﺬﻩ ﺍﻟﺜﻐﺮﺓ ﺃﻡ ﻻ‪ .‬ﻓﻲ ﺃﻱ ﺣﺎﻟﺔ ﺗﺆُﺩﻱ ﻓﻴﻬﺎ‬
‫ﻣﺪُﺧﻼﺕﻣﻌُﺪﺓّ ﻣﺤُﺪﺩّﺓ ﺇﻟﻰ ﺳﻠﻮﻙ ﻣﺮُﺗﺒﻂ ﺑﺜﻐﺮﺓ ﺃﻣﻨﻴﺔ )ﻣﺜﻞ ﺭﺳﺎﻟﺔ ﺧﻄﺄ ﻣﻌُﻴﻨّﺔ(‪ ،‬ﻳﺠﺐ‬
‫ﻋﻠﻴﻚﺍﻟﺘﺤﻘﻖ ﻣﺠُﺪﺩّﺍً ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻥ ﺇﺭﺳﺎﻝ ﻣﺪُﺧﻼﺕ ﺳﻠﻴﻤﺔ ﻓﻲ ﺍﻟﻤﻌُﺎﻣﻞ ﺫﻱ ﺍﻟﺼﻠﺔ ﻳﺴُﺒﺐّ‬
‫ﺍﻟﺴﻠﻮﻙﻧﻔﺴﻪ ﺃﻳﻀﺎً‪ .‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻷﻣﺮ ﻛﺬﻟﻚ‪ ،‬ﻓﻤﻦ ﺍﻟﻤﺮُﺟﺢّ ﺃﻥ ﺗﻜﻮﻥ ﺍﻟﻨﺘﻴﺠﺔ ﺍﻟﻤﺒُﺪﺉﻴﺔ ﺇﻳﺠﺎﺑﻴﺔ‬
‫ﺧﺎﻃﺉﺔ‪.‬‬

‫ﻋﺎﺩﺓ ًﻣﺎ ﺗﺮُﺍﻛﻢ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﻛﻤﻴﺔ ﻣﻦ ﺍﻟﺤﺎﻻﺕ ﻣﻦ ﺍﻟﻄﻠﺒﺎﺕ ﺍﻟﺴﺎﺑﻘﺔ‪ ،‬ﻣﻤﺎ ﻳﺆﺛﺮ ﻋﻠﻰ ﻛﻴﻔﻴﺔ‬ ‫‪-‬‬

‫ﺍﺳﺘﺠﺎﺑﺘﻬﺎﻟﻠﻄﻠﺒﺎﺕ ﺍﻟﻼﺣﻘﺔ‪ .‬ﺃﺣﻴﺎﻧﺎً‪ ،‬ﻋﻨﺪ ﻣﺤﺎﻭﻟﺔ ﺍﻟﺘﺤﻘﻴﻖ ﻓﻲ ﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ ﻣﺆﻗﺘﺔ ﻭﻋﺰﻝ‬
‫ﺍﻟﺴﺒﺐﺍﻟﺪﻗﻴﻖ ﻟﺴﻠﻮﻙ ﺷﺎﺫ ﻣﻌُﻴﻦ‪ ،‬ﻳﺠﺐ ﺇﺯﺍﻟﺔ ﺁﺛﺎﺭ ﺃﻱ ﺣﺎﻟﺔ ﻣﺘُﺮﺍﻛﻤﺔ‪ .‬ﻟﻠﻘﻴﺎﻡ ﺑﺬﻟﻚ‪ ،‬ﻳﻜﻔﻲ‬
‫ﻋﺎﺩﺓ ًﺑﺪء ﺟﻠﺴﺔ ﺟﺪﻳﺪﺓ ﺑﻌﻤﻠﻴﺔ ﻣﺘﺼﻔﺢ ﺟﺪﻳﺪﺓ‪ ،‬ﻭﺍﻻﻧﺘﻘﺎﻝ ﺇﻟﻰ ﻣﻮﻗﻊ ﺍﻟﺸﺬﻭﺫ ﺍﻟﻤﻼُﺣﻆ‬
‫ﺑﺎﺳﺘﺨﺪﺍﻡﺍﻟﻄﻠﺒﺎﺕ ﺍﻟﺤﻤﻴﺪﺓ ﻓﻘﻂ‪ ،‬ﺛﻢ ﺇﻋﺎﺩﺓ ﺇﺭﺳﺎﻝ ﻣﺪُﺧﻼﺗﻚ ﺍﻟﻤﻌُﺪﺓّ‪ .‬ﻳﻤُﻜﻨﻚ ﻏﺎﻟﺒﺎً ﺗﻜﺮﺍﺭ‬
‫ﻫﺬﺍﺍﻹﺟﺮﺍء ﻋﻦ ﻃﺮﻳﻖ ﺗﻌﺪﻳﻞ ﺃﺟﺰﺍء ﻃﻠﺒﺎﺗﻚ ﺍﻟﺘﻲ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ‬
‫ﻭﻣﻌﻠﻮﻣﺎﺕﺍﻟﺘﺨﺰﻳﻦ ﺍﻟﻤﺆﻗﺖ‪ .‬ﻋﻼﻭﺓ ًﻋﻠﻰ ﺫﻟﻚ‪ ،‬ﻳﻤُﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﺃﺩﺍﺓ ﻣﺜﻞ ‪Repeater‬‬
‫‪ Burp‬ﻟﻌﺰﻝ ﻃﻠﺐ‪ ،‬ﻭﺇﺟﺮﺍء ﺗﻌﺪﻳﻼﺕ ﻣﺤُﺪﺩﺓ ﻋﻠﻴﻪ‪ ،‬ﻭﺇﻋﺎﺩﺓ ﺇﺻﺪﺍﺭﻩ ﻋﺪﺓ ﻣﺮﺍﺕ ﺣﺴﺐ‬
‫ﺍﻟﺤﺎﺟﺔ‪.‬‬

‫ﺗﺴﺘﺨﺪﻡﺑﻌﺾ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺗﻜﻮﻳﻨﺎً ﻣﺘﻮﺍﺯﻥ ﺍﻟﺤﻤﻞ‪ ،‬ﺣﻴﺚ ﻳﻤﻜﻦ ﻣﻌﺎﻟﺠﺔ ﻃﻠﺒﺎﺕ ‪HTTP‬‬ ‫‪-‬‬

‫ﺍﻟﻤﺘﺘﺎﻟﻴﺔﺑﻮﺍﺳﻄﺔ ﺧﻮﺍﺩﻡ ﺧﻠﻔﻴﺔ ﻣﺨﺘﻠﻔﺔ ﻋﻠﻰ ﺍﻟﻮﻳﺐ‪ ،‬ﺃﻭ ﺍﻟﻌﺮﺽ ﺍﻟﺘﻘﺪﻳﻤﻲ‪ ،‬ﺃﻭ ﺍﻟﺒﻴﺎﻧﺎﺕ‪ ،‬ﺃﻭ‬
‫ﻣﺴﺘﻮﻳﺎﺕﺃﺧﺮﻯ‪ .‬ﻗﺪ ﺗﺨﺘﻠﻒ ﺍﻟﺨﻮﺍﺩﻡ ﺍﻟﻤﺨﺘﻠﻔﺔ ﻓﻲ ﺍﻟﺘﻜﻮﻳﻦ‪ ،‬ﻣﻤﺎ ﻳﺆﺛﺮ ﻋﻠﻰ ﻧﺘﺎﺉﺠﻚ‪ .‬ﻋﻼﻭﺓ‬
‫ﻋﻠﻰﺫﻟﻚ‪ ،‬ﻗﺪ ﺗﺆﺩﻱ ﺑﻌﺾ ﺍﻟﻬﺠﻤﺎﺕ ﺍﻟﻨﺎﺟﺤﺔ ﺇﻟﻰ ﺗﻐﻴﻴﺮ ﻓﻲ ﺣﺎﻟﺔ ﺍﻟﺨﺎﺩﻡ ﺍﻟﻤﺤﺪﺩ ﺍﻟﺬﻱ ﻳﻌﺎﻟﺞ‬
‫ﻃﻠﺒﺎﺗﻚ‪،‬ﻣﺜﻞ ﺇﻧﺸﺎء ﻣﻠﻒ ﺟﺪﻳﺪ ﺩﺍﺧﻞ ﺟﺬﺭ ﺍﻟﻮﻳﺐ‪ .‬ﻟﻌﺰﻝ ﺁﺛﺎﺭ ﺇﺟﺮﺍءﺍﺕ ﻣﻌﻴﻨﺔ‪ ،‬ﻗﺪ ﻳﻜﻮﻥ ﻣﻦ‬
‫ﺍﻟﻀﺮﻭﺭﻱﺗﻨﻔﻴﺬ ﻋﺪﺓ ﻃﻠﺒﺎﺕ ﻣﺘﻄﺎﺑﻘﺔ ﺑﺎﻟﺘﺘﺎﺑﻊ‪ ،‬ﻭﺍﺧﺘﺒﺎﺭ ﻧﺘﻴﺠﺔ ﻛﻞ ﻣﻨﻬﺎ ﺣﺘﻰ ﺗﺘﻢ ﻣﻌﺎﻟﺠﺔ‬
‫ﻃﻠﺒﻚﺑﻮﺍﺳﻄﺔ ﺍﻟﺨﺎﺩﻡ ﺍﻟﻤﻌﻨﻲ‪.‬‬

‫ﺑﺎﻓﺘﺮﺍﺽﺃﻧﻚ ﺗﻄﺒﻖ ﻫﺬﻩ ﺍﻟﻤﻨﻬﺠﻴﺔ ﻛﺠﺰء ﻣﻦ ﻣﻬﻤﺔ ﺍﺳﺘﺸﺎﺭﻳﺔ‪ ،‬ﻳﺠﺐ ﻋﻠﻴﻚ ﺩﺍﺉﻤﺎً ﺍﻟﺘﺄﻛﺪ ﻣﻦ‬
‫ﺇﺟﺮﺍءﻋﻤﻠﻴﺔ ﺗﺤﺪﻳﺪ ﺍﻟﻨﻄﺎﻕ ﺍﻟﻤﻌﺘﺎﺩﺓ ﻟﻼﺗﻔﺎﻕ ﺑﺪﻗﺔ ﻋﻠﻰ ﺃﺳﻤﺎء ﺍﻟﻤﻀﻴﻔﻴﻦ ﻭﻋﻨﺎﻭﻳﻦ ‪URL‬‬
‫ﻭﺍﻟﻮﻇﺎﺉﻒﺍﻟﺘﻲ ﺳﻴﺘﻢ ﺗﻀﻤﻴﻨﻬﺎ‪ ،‬ﻭﻣﺎ ﺇﺫﺍ ﻛﺎﻧﺖ ﻫﻨﺎﻙ ﺃﻱ ﻗﻴﻮﺩ ﻋﻠﻰ ﺃﻧﻮﺍﻉ ﺍﻻﺧﺘﺒﺎﺭﺍﺕ ﺍﻟﻤﺴﻤﻮﺡ‬
‫ﻟﻚﺑﺈﺟﺮﺍﺉﻬﺎ‪ .‬ﻳﺠﺐ ﻋﻠﻴﻚ ﺗﻮﻋﻴﺔ ﻣﺎﻟﻚ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺎﻟﻤﺨﺎﻃﺮ ﺍﻟﻜﺎﻣﻨﺔ ﺍﻟﺘﻲ ﻳﻨﻄﻮﻱ ﻋﻠﻴﻬﺎ ﺇﺟﺮﺍء ﺃﻱ ﻧﻮﻉ‬
‫ﻣﻦﺍﺧﺘﺒﺎﺭﺍﺕ ﺍﻻﺧﺘﺮﺍﻕ ﺿﺪ ﻫﺪﻑ ﻏﻴﺮ ﻣﻌﺮﻭﻑ‪ .‬ﺃﻧﺼﺢ ﺍﻟﻤﺎﻟﻚ ﺑﻨﺴﺦ ﺃﻱ ﺑﻴﺎﻧﺎﺕ ﻣﻬﻤﺔ ﺍﺣﺘﻴﺎﻃﻴﺎً‬
‫ﻗﺒﻞﺑﺪء ﺍﻟﻌﻤﻞ‪.‬‬
‫‪795‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫ﺗﻌﻴﻴﻦﻣﺤﺘﻮﻯ ﺍﻟﺘﻄﺒﻴﻖ‬ ‫‪1‬‬

‫ﻏﻴﺮﻗﻴﺎﺳﻲ‬ ‫ﻣﺤﺘﻮﻯﺁﺧﺮ‬ ‫ﺍﻟﻤﺤﺘﻮﻯﺍﻟﻤﺮﺗﺒﻂ‬


‫ﻃﺮﻕﺍﻟﻮﺻﻮﻝ‬

‫‪.1.5‬ﺍﻟﻤﻌﺮﻑ‪-‬‬ ‫‪.1.3‬ﺍﻛﺘﺸﻒ‬ ‫‪.1.1‬ﺍﺳﺘﻜﺸﺎﻑ ﺍﻟﻤﺮﺉﻲ‬


‫ﻭﻇﺎﺉﻒﻣﺤﺪﺩﺓ‬ ‫ﺍﻟﻤﺤﺘﻮﻯﺍﻟﻤﺨﻔﻲ‬ ‫ﻣﺤﺘﻮﻯ‬

‫‪.1.6‬ﺗﺼﺤﻴﺢ ﺍﻷﺧﻄﺎء‬ ‫‪.1.4‬ﺍﻛﺘﺸﻒ‬ ‫‪.1.2‬ﺍﺳﺘﺸﺮ ﺍﻟﺠﻤﻬﻮﺭ‬


‫ﺣﺪﻭﺩ‬ ‫ﺍﻟﻤﺤﺘﻮﻯﺍﻻﻓﺘﺮﺍﺿﻲ‬ ‫ﻣﻮﺍﺭﺩ‬

‫ﺍﻟﺸﻜﻞ‪:2-21‬ﺗﻌﻴﻴﻦ ﻣﺤﺘﻮﻯ ﺍﻟﺘﻄﺒﻴﻖ‬

‫‪1.1‬ﺍﺳﺘﻜﺸﺎﻑ ﺍﻟﻤﺤﺘﻮﻯ ﺍﻟﻤﺮﺉﻲ‬


‫‪١.١.١‬ﻗﻢ ﺑﺘﻜﻮﻳﻦ ﻣﺘﺼﻔﺤﻚ ﻻﺳﺘﺨﺪﺍﻡ ﺃﺩﺍﺓ ﺍﻟﻮﻛﻴﻞ‪/‬ﺍﻟﺸﺒﻜﺔ ﺍﻟﻌﻨﻜﺒﻮﺗﻴﺔ ﺍﻟﻤﺪﻣﺠﺔ ﺍﻟﻤﻔﻀﻠﺔ ﻟﺪﻳﻚ‪.‬‬
‫ﻳﻤﻜﻦﺍﺳﺘﺨﺪﺍﻡ ﻛﻞ ٍّﻣﻦ ‪ Burp‬ﻭ‪ WebScarab‬ﻟﺘﺼﻔﺢ ﺍﻟﻤﻮﻗﻊ ﺑﺸﻜﻞ ﺳﻠﺒﻲ ﻣﻦ ﺧﻼﻝ‬
‫ﻣﺮﺍﻗﺒﺔﻭﺗﺤﻠﻴﻞ ﻣﺤﺘﻮﻯ ﺍﻟﻮﻳﺐ ﺍﻟﺬﻱ ﻳﻌﺎﻟﺠﻪ ﺍﻟﻮﻛﻴﻞ‪.‬‬
‫‪1.1.2‬ﺇﺫﺍ ﻭﺟﺪﺕ ﺃﻧﻪ ﻣﻦ ﺍﻟﻤﻔﻴﺪ‪ ،‬ﻗﻢ ﺑﺘﻜﻮﻳﻦ ﻣﺘﺼﻔﺤﻚ ﻻﺳﺘﺨﺪﺍﻡ ﻣﻠﺤﻖ ﻣﺜﻞ ‪IEWatch‬‬
‫ﻟﻤﺮﺍﻗﺒﺔﻭﺗﺤﻠﻴﻞ ﻣﺤﺘﻮﻯ ‪ HTTP‬ﻭ‪ HTML‬ﺍﻟﺬﻱ ﺗﺘﻢ ﻣﻌﺎﻟﺠﺘﻪ ﺑﻮﺍﺳﻄﺔ ﺍﻟﻤﺘﺼﻔﺢ‪.‬‬

‫‪١.١.٣‬ﺗﺼﻔﺢّ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺎﻟﻜﺎﻣﻞ ﺑﺎﻟﻄﺮﻳﻘﺔ ﺍﻻﻋﺘﻴﺎﺩﻳﺔ‪ ،‬ﺑﺰﻳﺎﺭﺓ ﺟﻤﻴﻊ ﺍﻟﺮﻭﺍﺑﻂ ﻭﻋﻨﺎﻭﻳﻦ ‪ ،URL‬ﻭﺇﺭﺳﺎﻝ‬
‫ﺟﻤﻴﻊﺍﻟﻨﻤﺎﺫﺝ‪ ،‬ﻭﻣﺘﺎﺑﻌﺔ ﺟﻤﻴﻊ ﺍﻟﻮﻇﺎﺉﻒ ﻣﺘﻌﺪﺩﺓ ﺍﻟﺨﻄﻮﺍﺕ ﺣﺘﻰ ﺍﻛﺘﻤﺎﻟﻬﺎ‪ .‬ﺟﺮﺏّ ﺍﻟﺘﺼﻔﺢ‬
‫ﻣﻊﺗﻔﻌﻴﻞ ﻭﺗﻌﻄﻴﻞ ‪ ،JavaScript‬ﻭﺗﻔﻌﻴﻞ ﻭﺗﻌﻄﻴﻞ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ‪ .‬ﻳﻤﻜﻦ‬
‫ﻟﻠﻌﺪﻳﺪﻣﻦ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ ﺇﻋﺪﺍﺩﺍﺕ ﻣﺘﺼﻔﺤﺎﺕ ﻣﺨﺘﻠﻔﺔ‪ ،‬ﻭﻗﺪ ﺗﺼﻞ ﺇﻟﻰ‬
‫ﻣﺴﺎﺭﺍﺕﻣﺤﺘﻮﻯ ﻭﺃﻛﻮﺍﺩ ﻣﺨﺘﻠﻔﺔ ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ‪.‬‬

‫‪1.1.4‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺴﺘﺨﺪﻡ ﺍﻟﻤﺼﺎﺩﻗﺔ‪ ،‬ﻭﻟﺪﻳﻚ ﺣﺴﺎﺏ ﺗﺴﺠﻴﻞ ﺩﺧﻮﻝ ﺃﻭ ﻳﻤﻜﻨﻚ ﺇﻧﺸﺎء ﺣﺴﺎﺏ‬
‫ﺗﺴﺠﻴﻞﺩﺧﻮﻝ‪ ،‬ﻓﺎﺳﺘﺨﺪﻡ ﻫﺬﺍ ﺍﻟﺤﺴﺎﺏ ﻟﻠﻮﺻﻮﻝ ﺇﻟﻰ ﺍﻟﻮﻇﺎﺉﻒ ﺍﻟﻤﺤﻤﻴﺔ‪.‬‬
‫‪1.1.5‬ﺃﺛﻨﺎء ﺍﻟﺘﺼﻔﺢ‪ ،‬ﻗﻢ ﺑﻤﺮﺍﻗﺒﺔ ﺍﻟﻄﻠﺒﺎﺕ ﻭﺍﻻﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺘﻲ ﺗﻤﺮ ﻋﺒﺮ ﻭﻛﻴﻞ ﺍﻻﻋﺘﺮﺍﺽ ﺍﻟﺨﺎﺹ‬
‫ﺑﻚﻟﻠﺤﺼﻮﻝ ﻋﻠﻰ ﻓﻬﻢ ﻷﻧﻮﺍﻉ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺘﻲ ﻳﺘﻢ ﺇﺭﺳﺎﻟﻬﺎ ﻭﺍﻟﻄﺮﻕ ﺍﻟﺘﻲ ﻳﺘﻢ ﺑﻬﺎ ﺍﺳﺘﺨﺪﺍﻡ‬
‫ﺍﻟﻌﻤﻴﻞﻟﻠﺘﺤﻜﻢ ﻓﻲ ﺳﻠﻮﻙ ﺗﻄﺒﻴﻖ ﺟﺎﻧﺐ ﺍﻟﺨﺎﺩﻡ‪.‬‬

‫‪١.١.٦‬ﺭﺍﺟﻊ ﺧﺮﻳﻄﺔ ﺍﻟﻤﻮﻗﻊ ﺍﻟﻤﻮُﻟﺪّﺓ ﺑﻮﺍﺳﻄﺔ ﺍﻟﺘﺘﺒﻊ ﺍﻟﺴﻠﺒﻲ‪ ،‬ﻭﺣﺪﺩ ﺃﻱ ﻣﺤﺘﻮﻯ ﺃﻭ ﻭﻇﻴﻔﺔ ﻟﻢ‬
‫ﺗﺘﺼﻔﺤﻬﺎﺑﺎﺳﺘﺨﺪﺍﻡ ﻣﺘﺼﻔﺤﻚ‪ .‬ﻣﻦ ﻧﺘﺎﺉﺞ ﺍﻟﺘﺘﺒﻊ‪ ،‬ﺣﺪﺩ ﻣﻜﺎﻥ ﺍﻛﺘﺸﺎﻑ ﻛﻞ ﻋﻨﺼﺮ )ﻋﻠﻰ‬
‫ﺳﺒﻴﻞﺍﻟﻤﺜﺎﻝ‪ ،‬ﻓﻲ ‪ ،Burp Spider‬ﺗﺤﻘﻖ ﻣﻦ ﺗﻔﺎﺻﻴﻞ "ﺍﻟﺮﺍﺑﻂ ﻣﻦ"(‪ .‬ﺍﺩﺧﻞ ﺇﻟﻰ ﻛﻞ‬
‫ﻋﻨﺼﺮﺑﺎﺳﺘﺨﺪﺍﻡ ﻣﺘﺼﻔﺤﻚ ﺣﺘﻰ ﻳﻘﻮﻡ ﺍﻟﺘﺘﺒﻊ ﺑﺘﺤﻠﻴﻞ ﺍﺳﺘﺠﺎﺑﺔ ﺍﻟﺨﺎﺩﻡ ﻟﺘﺤﺪﻳﺪ ﺃﻱ ﻣﺤﺘﻮﻯ‬
‫ﺇﺿﺎﻓﻲ‪.‬ﻛﺮﺭ ﻫﺬﻩ ﺍﻟﺨﻄﻮﺓ ﺣﺘﻰ ﻻ ﻳﺘﻢ ﺗﺤﺪﻳﺪ ﺃﻱ ﻣﺤﺘﻮﻯ ﺃﻭ ﻭﻇﻴﻔﺔ ﺇﺿﺎﻓﻴﺔ‪.‬‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪796‬‬

‫‪1.1.7‬ﺑﻌﺪ ﺍﻻﻧﺘﻬﺎء ﻣﻦ ﺍﻟﺘﺼﻔﺢ ﺍﻟﻴﺪﻭﻱ ﻭﺍﻟﺘﺘﺒﻊ ﺍﻟﺴﻠﺒﻲ‪ ،‬ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﻋﻨﻜﺒﻮﺗﻚ ﻟﻠﺰﺣﻒ‬
‫ﺍﻟﻨﺸﻂﺇﻟﻰ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﺑﺎﺳﺘﺨﺪﺍﻡ ﻣﺠﻤﻮﻋﺔ ﻋﻨﺎﻭﻳﻦ ‪ URL‬ﺍﻟﻤﻜﺘﺸﻔﺔ ﻛﺒﺬﻭﺭ‪ .‬ﻗﺪ ﻳﻜﺸﻒ ﻫﺬﺍ‬
‫ﺃﺣﻴﺎﻧﺎًﻋﻦ ﻣﺤﺘﻮﻯ ﺇﺿﺎﻓﻲ ﺃﻏﻔﻠﺘﻪ ﻋﻨﺪ ﺍﻟﻌﻤﻞ ﻳﺪﻭﻳﺎً‪ .‬ﻗﺒﻞ ﺇﺟﺮﺍء ﺍﻟﺰﺣﻒ ﺍﻟﺘﻠﻘﺎﺉﻲ‪ ،‬ﺣﺪﺩ‬
‫ﺃﻭﻻًﺃﻱ ﻋﻨﺎﻭﻳﻦ ‪ URL‬ﺧﻄﻴﺮﺓ ﺃﻭ ﻳﺤُﺘﻤﻞ ﺃﻥ ﺗﻌُﻄﻞ ﺟﻠﺴﺔ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﺛﻢ ﻗﻢ ﺑﺘﻜﻮﻳﻦ‬
‫ﻋﻨﻜﺒﻮﺗﻚﻻﺳﺘﺒﻌﺎﺩﻫﺎ ﻣﻦ ﻧﻄﺎﻗﻪ‪.‬‬

‫‪1.2‬ﺍﺳﺘﺸﺎﺭﺓ ﺍﻟﻤﻮﺍﺭﺩ ﺍﻟﻌﺎﻣﺔ‬


‫‪1.2.1‬ﺍﺳﺘﺨﺪﻡ ﻣﺤﺮﻛﺎﺕ ﺍﻟﺒﺤﺚ ﻭﺍﻷﺭﺷﻴﻔﺎﺕ ﻋﻠﻰ ﺍﻹﻧﺘﺮﻧﺖ )ﻣﺜﻞ ‪(Wayback Machine‬‬
‫ﻟﺘﺤﺪﻳﺪﺍﻟﻤﺤﺘﻮﻯ ﺍﻟﺬﻱ ﺗﻢ ﻓﻬﺮﺳﺘﻪ ﻭﺗﺨﺰﻳﻨﻪ ﻟﺘﻄﺒﻴﻘﻚ ﺍﻟﻤﺴﺘﻬﺪﻑ‪.‬‬

‫‪١.٢.٢‬ﺍﺳﺘﺨﺪﻡ ﺧﻴﺎﺭﺍﺕ ﺍﻟﺒﺤﺚ ﺍﻟﻤﺘﻘﺪﻣﺔ ﻟﺘﺤﺴﻴﻦ ﻓﻌﺎﻟﻴﺔ ﺑﺤﺜﻚ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﻳﻤﻜﻨﻚ‬
‫ﺍﺳﺘﺨﺪﺍﻡﺟﻮﺟﻞﻣﻮﻗﻊ‪:‬ﻻﺳﺘﺮﺩﺍﺩ ﻛﻞ ﺍﻟﻤﺤﺘﻮﻯ ﻟﻤﻮﻗﻌﻚ ﺍﻟﻤﺴﺘﻬﺪﻑ ﻭﻭﺻﻠﺔ‪:‬ﻻﺳﺘﺮﺟﺎﻉ‬
‫ﺍﻟﻤﻮﺍﻗﻊﺍﻷﺧﺮﻯ ﺍﻟﻤﺮﺗﺒﻄﺔ ﺑﻪ‪ .‬ﺇﺫﺍ ﻛﺸﻒ ﺑﺤﺜﻚ ﻋﻦ ﻣﺤﺘﻮﻯ ﻟﻢ ﻳﻌﺪ ﻣﻮﺟﻮﺩﺍً ﻓﻲ ﺍﻟﺘﻄﺒﻴﻖ‬
‫ﺍﻟﻨﺸﻂ‪،‬ﻓﻘﺪ ﺗﺘﻤﻜﻦ ﻣﻦ ﻋﺮﺿﻪ ﻣﻦ ﺫﺍﻛﺮﺓ ﺍﻟﺘﺨﺰﻳﻦ ﺍﻟﻤﺆﻗﺖ ﻟﻤﺤﺮﻙ ﺍﻟﺒﺤﺚ‪ .‬ﻗﺪ ﻳﺤﺘﻮﻱ‬
‫ﻫﺬﺍﺍﻟﻤﺤﺘﻮﻯ ﺍﻟﻘﺪﻳﻢ ﻋﻠﻰ ﺭﻭﺍﺑﻂ ﻟﻤﻮﺍﺭﺩ ﺇﺿﺎﻓﻴﺔ ﻟﻢ ﺗﺤُﺬﻑ ﺑﻌﺪ‪.‬‬

‫‪١.٢.٣‬ﺍﺑﺤﺚ ﻋﻦ ﺃﻱ ﺃﺳﻤﺎء ﻭﻋﻨﺎﻭﻳﻦ ﺑﺮﻳﺪ ﺇﻟﻜﺘﺮﻭﻧﻲ ﻭﺟﺪﺗﻬﺎ ﻓﻲ ﻣﺤﺘﻮﻯ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﻣﺜﻞ ﻣﻌﻠﻮﻣﺎﺕ‬
‫ﺍﻻﺗﺼﺎﻝ‪.‬ﺃﺿﻒ ﻋﻨﺎﺻﺮ ﻏﻴﺮ ﻇﺎﻫﺮﺓ ﻋﻠﻰ ﺍﻟﺸﺎﺷﺔ‪ ،‬ﻣﺜﻞ ﺗﻌﻠﻴﻘﺎﺕ ‪ .HTML‬ﺑﺎﻹﺿﺎﻓﺔ ﺇﻟﻰ‬
‫ﻋﻤﻠﻴﺎﺕﺍﻟﺒﺤﺚ ﻋﻠﻰ ﺍﻟﻮﻳﺐ‪ ،‬ﺍﺑﺤﺚ ﻓﻲ ﺍﻷﺧﺒﺎﺭ ﻭﺍﻟﻤﺠﻤﻮﻋﺎﺕ‪ .‬ﺍﺑﺤﺚ ﻋﻦ ﺃﻱ ﺗﻔﺎﺻﻴﻞ‬
‫ﺗﻘﻨﻴﺔﻣﻨﺸﻮﺭﺓ ﻓﻲ ﻣﻨﺘﺪﻳﺎﺕ ﺍﻹﻧﺘﺮﻧﺖ ﺗﺘﻌﻠﻖ ﺑﺎﻟﺘﻄﺒﻴﻖ ﺍﻟﻤﺴﺘﻬﺪﻑ ﻭﺑﻨﻴﺘﻪ ﺍﻟﺘﺤﺘﻴﺔ‬
‫ﺍﻟﺪﺍﻋﻤﺔ‪.‬‬

‫‪1.2.4‬ﻗﻢ ﺑﻤﺮﺍﺟﻌﺔ ﺃﻱ ﻣﻠﻔﺎﺕ ‪ WSDL‬ﻣﻨﺸﻮﺭﺓ ﻹﻧﺸﺎء ﻗﺎﺉﻤﺔ ﺑﺄﺳﻤﺎء ﺍﻟﻮﻇﺎﺉﻒ ﻭﻗﻴﻢ ﺍﻟﻤﻌﻠﻤﺎﺕ‬
‫ﺍﻟﺘﻲﻳﺤﺘﻤﻞ ﺃﻥ ﻳﺴﺘﺨﺪﻣﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ‪.‬‬

‫‪1.3‬ﺍﻛﺘﺸﻒ ﺍﻟﻤﺤﺘﻮﻯ ﺍﻟﻤﺨﻔﻲ‬


‫‪١.٣.١‬ﺗﺄﻛﺪ ﻣﻦ ﻛﻴﻔﻴﺔ ﺗﻌﺎﻣﻞ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻊ ﻃﻠﺒﺎﺕ ﺍﻟﻌﻨﺎﺻﺮ ﻏﻴﺮ ﺍﻟﻤﻮﺟﻮﺩﺓ‪ .‬ﺃﻧﺸﺊ ﺑﻌﺾ ﺍﻟﻄﻠﺒﺎﺕ‬
‫ﺍﻟﻴﺪﻭﻳﺔﻟﻠﻤﻮﺍﺭﺩ ﺍﻟﻤﻌﺮﻭﻓﺔ ﺍﻟﺼﺎﻟﺤﺔ ﻭﻏﻴﺮ ﺍﻟﺼﺎﻟﺤﺔ‪ ،‬ﻭﻗﺎﺭﻥ ﺍﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺨﺎﺩﻡ ﻹﻳﺠﺎﺩ ﻃﺮﻳﻘﺔ‬
‫ﺳﻬﻠﺔﻟﺘﺤﺪﻳﺪ ﻣﺘﻰ ﻳﻜﻮﻥ ﺍﻟﻌﻨﺼﺮ ﻏﻴﺮ ﻣﻮﺟﻮﺩ‪.‬‬

‫‪١.٣.٢‬ﺍﺣﺼﻞ ﻋﻠﻰ ﻗﻮﺍﺉﻢ ﺑﺄﺳﻤﺎء ﺍﻟﻤﻠﻔﺎﺕ ﻭﺍﻟﻤﺠﻠﺪﺍﺕ ﺍﻟﺸﺎﺉﻌﺔ ﻭﺍﻣﺘﺪﺍﺩﺍﺕ ﺍﻟﻤﻠﻔﺎﺕ ﺍﻟﺸﺎﺉﻌﺔ‪.‬‬
‫ﺃﺿﻒﺇﻟﻰ ﻫﺬﻩ ﺍﻟﻘﻮﺍﺉﻢ ﺟﻤﻴﻊ ﺍﻟﻌﻨﺎﺻﺮ ﺍﻟﺘﻲ ﺗﻤﺖ ﻣﻼﺣﻈﺘﻬﺎ ﻓﻌﻠﻴﺎً ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ‪،‬‬
‫ﺑﺎﻹﺿﺎﻓﺔﺇﻟﻰ ﺍﻟﻌﻨﺎﺻﺮ ﺍﻟﻤﺴﺘﻨﺘﺠﺔ ﻣﻨﻬﺎ‪ .‬ﺣﺎﻭﻝ ﻓﻬﻢ ﻗﻮﺍﻋﺪ ﺍﻟﺘﺴﻤﻴﺔ ﺍﻟﺘﻲ ﻳﺴﺘﺨﺪﻣﻬﺎ‬
‫ﻣﻄﻮﺭﻭﺍﻟﺘﻄﺒﻴﻘﺎﺕ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﺇﺫﺍ‬
‫ﻫﻨﺎﻙﺻﻔﺤﺎﺕ ﺗﺴﻤﻰﺇﺿﺎﻓﺔ ﻣﺴﺘﻨﺪ‪jsp.‬ﻭﻋﺮﺽ ﺍﻟﻤﺴﺘﻨﺪ‪،jsp.‬ﻗﺪ ﺗﻜﻮﻥ ﻫﻨﺎﻙ ﺃﻳﻀﺎً ﺻﻔﺤﺎﺕ‬
‫ﺗﺴﻤﻰ‪EditDocument.jsp‬ﻭﺇﺯﺍﻟﺔ ‪.Document.jsp‬‬
‫‪797‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫‪1.3.3‬ﻣﺮﺍﺟﻌﺔ ﺟﻤﻴﻊ ﺃﻛﻮﺍﺩ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ ﻟﺘﺤﺪﻳﺪ ﺃﻱ ﺃﺩﻟﺔ ﺣﻮﻝ ﺍﻟﻤﺤﺘﻮﻯ ﺍﻟﻤﺨﻔﻲ ﻋﻠﻰ ﺟﺎﻧﺐ‬
‫ﺍﻟﺨﺎﺩﻡ‪،‬ﺑﻤﺎ ﻓﻲ ﺫﻟﻚ ﺗﻌﻠﻴﻘﺎﺕ ‪ HTML‬ﻭﻋﻨﺎﺻﺮ ﺍﻟﻨﻤﺎﺫﺝ ﺍﻟﻤﻌﻄﻠﺔ‪.‬‬
‫‪١.٣.٤‬ﺑﺎﺳﺘﺨﺪﺍﻡ ﺗﻘﻨﻴﺎﺕ ﺍﻷﺗﻤﺘﺔ ﺍﻟﻤﻮﺿﺤﺔ ﻓﻲ ﺍﻟﻔﺼﻞ ‪ ،١٤‬ﻗﺪﻡّ ﻋﺪﺩﺍً ﻛﺒﻴﺮﺍً ﻣﻦ ﺍﻟﻄﻠﺒﺎﺕ ﺍﺳﺘﻨﺎﺩﺍً‬
‫ﺇﻟﻰﻗﻮﺍﺉﻢ ﺍﻟﺪﻟﻴﻞ ﻭﺍﺳﻢ ﺍﻟﻤﻠﻒ ﻭﺍﻣﺘﺪﺍﺩ ﺍﻟﻤﻠﻒ‪ .‬ﺭﺍﻗﺐ ﺍﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺨﺎﺩﻡ ﻟﻠﺘﺄﻛﺪ ﻣﻦ‬
‫ﺍﻟﻌﻨﺎﺻﺮﺍﻟﻤﻮﺟﻮﺩﺓ ﻭﺍﻟﻘﺎﺑﻠﺔ ﻟﻠﻮﺻﻮﻝ‪.‬‬

‫‪1.3.5‬ﻗﻢ ﺑﺈﺟﺮﺍء ﺗﻤﺎﺭﻳﻦ ﺍﻛﺘﺸﺎﻑ ﺍﻟﻤﺤﺘﻮﻯ ﻫﺬﻩ ﺑﺸﻜﻞ ﻣﺘﻜﺮﺭ‪ ،‬ﺑﺎﺳﺘﺨﺪﺍﻡ ﺍﻟﻤﺤﺘﻮﻯ ﻭﺍﻷﻧﻤﺎﻁ‬
‫ﺍﻟﺠﺪﻳﺪﺓﺍﻟﻤﺪﺭﺟﺔ ﻛﺄﺳﺎﺱ ﻟﻤﺰﻳﺪ ﻣﻦ ﺍﻟﺒﺤﺚ ﺍﻟﻤﻮﺟﻪ ﻟﻠﻤﺴﺘﺨﺪﻡ ﻭﻣﺰﻳﺪ ﻣﻦ ﺍﻻﻛﺘﺸﺎﻑ‬
‫ﺍﻵﻟﻲ‪.‬‬

‫‪1.4‬ﺍﻛﺘﺸﻒ ﺍﻟﻤﺤﺘﻮﻯ ﺍﻻﻓﺘﺮﺍﺿﻲ‬


‫‪1.4.1‬ﺷﻐﻞّ ‪ Nikto‬ﻋﻠﻰ ﺧﺎﺩﻡ ﺍﻟﻮﻳﺐ ﻟﻠﻜﺸﻒ ﻋﻦ ﺃﻱ ﻣﺤﺘﻮﻯ ﺍﻓﺘﺮﺍﺿﻲ ﺃﻭ ﺷﺎﺉﻊ‪ .‬ﺍﺳﺘﺨﺪﻡ‬
‫ﺧﻴﺎﺭﺍﺕ‪ Nikto‬ﻟﺰﻳﺎﺩﺓ ﻓﻌﺎﻟﻴﺘﻪ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ‪-‬ﺟﺬﺭﺧﻴﺎﺭ ﻟﺘﺤﺪﻳﺪ‬
‫ﺩﻟﻴﻞﻟﻠﺘﺤﻘﻖ ﻣﻦ ﺍﻟﻤﺤﺘﻮﻯ ﺍﻻﻓﺘﺮﺍﺿﻲ‪ ،‬ﺃﻭ ‪404-‬ﻟﺘﺤﺪﻳﺪ ﺳﻠﺴﻠﺔ ﺗﺤﺪﺩ ﺻﻔﺤﺔ ﻣﻠﻒ ﻏﻴﺮ‬
‫ﻣﻮﺟﻮﺩﻣﺨﺼﺼﺔ‪.‬‬

‫‪1.4.2‬ﺍﻟﺘﺤﻘﻖ ﻳﺪﻭﻳﺎً ﻣﻦ ﺃﻱ ﻧﺘﺎﺉﺞ ﻣﺜﻴﺮﺓ ﻟﻼﻫﺘﻤﺎﻡ ﻣﺤﺘﻤﻠﺔ ﻹﺯﺍﻟﺔ ﺃﻱ ﻧﺘﺎﺉﺞ ﺇﻳﺠﺎﺑﻴﺔ ﺧﺎﻃﺉﺔ‬
‫ﺿﻤﻦﺍﻟﻨﺘﺎﺉﺞ‪.‬‬
‫‪1.4.3‬ﺍﻃﻠﺐ ﺩﻟﻴﻞ ﺟﺬﺭ ﺍﻟﺨﺎﺩﻡ‪ ،‬ﻣﻊ ﺗﺤﺪﻳﺪ ﻋﻨﻮﺍﻥ ‪ IP‬ﻓﻲ‬
‫ﻳﺴﺘﻀﻴﻒﺍﻟﺮﺃﺱ‪ ،‬ﻭﺗﺤﻘﻖ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺴﺘﺠﻴﺐ ﺑﻤﺤﺘﻮﻯ ﻣﺨﺘﻠﻒ‪ .‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻷﻣﺮ‬
‫ﻛﺬﻟﻚ‪،‬ﻓﻘﻢ ﺑﺈﺟﺮﺍء ﻓﺤﺺ ‪ Nikto‬ﻋﻠﻰ ﻋﻨﻮﺍﻥ ‪ IP‬ﻭﺍﺳﻢ ﺍﻟﺨﺎﺩﻡ‪.‬‬

‫‪1.4.4‬ﻗﻢ ﺑﺈﺭﺳﺎﻝ ﻃﻠﺐ ﺇﻟﻰ ﺩﻟﻴﻞ ﺟﺬﺭ ﺍﻟﺨﺎﺩﻡ‪ ،‬ﻣﻊ ﺗﺤﺪﻳﺪ ﻧﻄﺎﻕ ﻣﻦ‬
‫ﻭﻛﻴﻞﺍﻟﻤﺴﺘﺨﺪﻡﺍﻟﻌﻨﺎﻭﻳﻦ‪ ،‬ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓﻲ‪/pages/useragentstring.php.‬‬
‫‪www.useragentstring.com‬‬

‫‪1.5‬ﺗﻌﺪﺍﺩ ﺍﻟﻮﻇﺎﺉﻒ ﺍﻟﻤﺤﺪﺩﺓ ﺑﺎﻟﻤﻌﺮﻑ‬


‫‪1.5.1‬ﺗﺤﺪﻳﺪ ﺃﻱ ﺣﺎﻻﺕ ﻳﺘﻢ ﻓﻴﻬﺎ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﻭﻇﺎﺉﻒ ﺗﻄﺒﻴﻖ ﻣﺤﺪﺩﺓ ﻋﻦ ﻃﺮﻳﻖ ﺗﻤﺮﻳﺮ ﻣﻌﺮﻑ‬
‫ﺍﻟﻮﻇﻴﻔﺔﻓﻲ ﻣﻌﻠﻤﺔ ﺍﻟﻄﻠﺐ )ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪،‬‬
‫‪/admin.jsp?action=editUser‬ﺃﻭ ‪main.php?func=A21(./‬‬

‫‪١.٥.٢‬ﻃﺒﻖّ ﺗﻘﻨﻴﺎﺕ ﺍﻛﺘﺸﺎﻑ ﺍﻟﻤﺤﺘﻮﻯ ﺍﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻲ ﺍﻟﺨﻄﻮﺓ ‪ ١.٣‬ﻋﻠﻰ ﺁﻟﻴﺔ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺍﻟﺪﻭﺍﻝ‬
‫ﺍﻟﻔﺮﺩﻳﺔ‪.‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺴﺘﺨﺪﻡ ﻣﻌُﺎﻣﻼً ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﺍﺳﻢ ﺩﺍﻟﺔ‪،‬‬
‫ﻓﺤﺪﺩﺃﻭﻻً ﺳﻠﻮﻛﻪ ﻋﻨﺪ ﺗﺤﺪﻳﺪ ﺩﺍﻟﺔ ﻏﻴﺮ ﺻﺎﻟﺤﺔ‪ ،‬ﻭﺣﺎﻭﻝ ﺇﻳﺠﺎﺩ ﻃﺮﻳﻘﺔ ﺳﻬﻠﺔ ﻟﺘﺤﺪﻳﺪ ﻭﻗﺖ‬
‫ﻃﻠﺐﺩﺍﻟﺔ ﺻﺎﻟﺤﺔ‪ .‬ﺃﻧﺸﺊ ﻗﺎﺉﻤﺔ ﺑﺄﺳﻤﺎء ﺍﻟﺪﻭﺍﻝ ﺍﻟﺸﺎﺉﻌﺔ ﺃﻭ ﺗﻔَﻘَﺪَّ ﻧﻄﺎﻕ ﺍﻟﻤﻌﺮﻓﺎﺕ‬
‫ﺍﻟﻨﺤﻮﻳﺔﺍﻟﻤﺴُﺘﺨﺪﻣﺔ‪ .‬ﺃﺗﻤﺖ ﺍﻟﻌﻤﻠﻴﺔ ﻟﺘﻌﺪﺍﺩ ﺍﻟﻮﻇﺎﺉﻒ ﺍﻟﺼﺎﻟﺤﺔ ﺑﺄﺳﺮﻉ ﻭﺃﺳﻬﻞ ﻃﺮﻳﻘﺔ‬
‫ﻣﻤﻜﻨﺔ‪.‬‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪798‬‬

‫‪1.5.3‬ﺇﻥ ﺃﻣﻜﻦ‪ ،‬ﻗﻢ ﺑﺘﺠﻤﻴﻊ ﺧﺮﻳﻄﺔ ﻟﻤﺤﺘﻮﻯ ﺍﻟﺘﻄﺒﻴﻖ ﺑﻨﺎء ًﻋﻠﻰ ﺍﻟﻤﺴﺎﺭﺍﺕ ﺍﻟﻮﻇﻴﻔﻴﺔ‪ ،‬ﺑﺪﻻ ًﻣﻦ‬
‫ﻋﻨﺎﻭﻳﻦ‪ ،URL‬ﻣﻊ ﺇﻇﻬﺎﺭ ﺟﻤﻴﻊ ﺍﻟﻮﻇﺎﺉﻒ ﺍﻟﻤﻌُﺪَﺓَّ ﻭﺍﻟﻤﺴﺎﺭﺍﺕ ﺍﻟﻤﻨﻄﻘﻴﺔ ﻭﺍﻟﺘﺒﻌﻴﺎﺕ ﺑﻴﻨﻬﺎ‪.‬‬
‫)ﺍﻧﻈﺮ ﺍﻟﻔﺼﻞ ‪ 4‬ﻟﻼﻃﻼﻉ ﻋﻠﻰ ﻣﺜﺎﻝ(‪.‬‬

‫‪1.6‬ﺍﺧﺘﺒﺎﺭ ﻣﻌﻠﻤﺎﺕ ﺍﻟﺘﺼﺤﻴﺢ‬


‫‪1.6.1‬ﺍﺧﺘﺮ ﺻﻔﺤﺔ ﺗﻄﺒﻴﻖ ﻭﺍﺣﺪﺓ ﺃﻭ ﺃﻛﺜﺮ ﺃﻭ ﻭﻇﺎﺉﻒ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﻣﻌﻠﻤﺎﺕ ﺗﺼﺤﻴﺢ ﺃﺧﻄﺎء ﻣﺨﻔﻴﺔ‬
‫)ﻣﺜﻞ(‪debug=true‬ﻗﺪ ﻳﺘﻢ ﺗﻨﻔﻴﺬﻫﺎ‪ .‬ﻣﻦ ﺍﻟﻤﺮﺟﺢ ﺃﻥ ﺗﻈﻬﺮ ﻫﺬﻩ ﻓﻲ ﻭﻇﺎﺉﻒ ﺭﺉﻴﺴﻴﺔ‬
‫ﻣﺜﻞﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ ﻭﺍﻟﺒﺤﺚ ﻭﺗﺤﻤﻴﻞ ﺃﻭ ﺗﻨﺰﻳﻞ ﺍﻟﻤﻠﻔﺎﺕ‪.‬‬

‫‪1.6.2‬ﺍﺳﺘﺨﺪﻡ ﻗﻮﺍﺉﻢ ﺃﺳﻤﺎء ﻣﻌﻠﻤﺎﺕ ﺍﻟﺘﺼﺤﻴﺢ ﺍﻟﺸﺎﺉﻌﺔ )ﻣﺜﻞﺗﺼﺤﻴﺢ ﺍﻷﺧﻄﺎء‪ ،‬ﺍﺧﺘﺒﺎﺭ‪ ،‬ﺇﺧﻔﺎء‪،‬ﻭ‬
‫ﻣﺼﺪﺭ(ﻭﺍﻟﻘﻴﻢ ﺍﻟﻤﺸﺘﺮﻛﺔ )ﻣﺜﻞﺻﺤﻴﺢ‪ ،‬ﻧﻌﻢ‪ ،‬ﻋﻠﻰ‪،‬ﻭ‪ .(1‬ﻛﺮﺭ ﺟﻤﻴﻊ ﻫﺬﻩ ﺍﻟﺘﺒﺎﺩﻳﻞ‪ ،‬ﻣﻊ ﺇﺭﺳﺎﻝ‬
‫ﻛﻞﺯﻭﺝ ﻣﻦ ﺍﻻﺳﻢ‪/‬ﺍﻟﻘﻴﻤﺔ ﺇﻟﻰ ﻛﻞ ﺩﺍﻟﺔ ﻣﺴﺘﻬﺪﻓﺔ‪.‬ﺑﺮﻳﺪﺍﻟﻄﻠﺒﺎﺕ‪ ،‬ﺃﺩﺧﻞ ﺍﻟﻤﻌﻠﻤﺔ ﻓﻲ ﻛﻞ ٍّ‬
‫ﻣﻦﺳﻠﺴﻠﺔ ﺍﺳﺘﻌﻼﻡ ﻋﻨﻮﺍﻥ ‪ URL‬ﻭﻧﺺ ﺍﻟﻄﻠﺐ‪ .‬ﺍﺳﺘﺨﺪﻡ ﺍﻟﺘﻘﻨﻴﺎﺕ ﺍﻟﻤﻮﺿﺤﺔ ﻓﻲ ﺍﻟﻔﺼﻞ‬
‫‪14‬ﻷﺗﻤﺘﺔ ﻫﺬﺍ ﺍﻟﺘﻤﺮﻳﻦ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﻧﻮﻉ ﻫﺠﻮﻡ ﺍﻟﻘﻨﺒﻠﺔ‬
‫ﺍﻟﻌﻨﻘﻮﺩﻳﺔﻓﻲ ‪ Burp Intruder‬ﻟﺪﻣﺞ ﺟﻤﻴﻊ ﺗﺒﺎﺩﻳﻞ ﻗﺎﺉﻤﺘﻲ ﺣﻤﻮﻟﺔ‪.‬‬

‫‪1.6.3‬ﻗﻢ ﺑﻤﺮﺍﺟﻌﺔ ﺍﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺤﺜﺎً ﻋﻦ ﺃﻱ ﺗﺸﻮﻫﺎﺕ ﻗﺪ ﺗﺸﻴﺮ ﺇﻟﻰ ﺃﻥ ﺍﻟﻤﻌﻠﻤﺔ ﺍﻟﻤﻀﺎﻓﺔ‬
‫ﻛﺎﻥﻟﻬﺎ ﺗﺄﺛﻴﺮ ﻋﻠﻰ ﻣﻌﺎﻟﺠﺔ ﺍﻟﺘﻄﺒﻴﻖ‪.‬‬

‫ﺗﺤﻠﻴﻞﺍﻟﺘﻄﺒﻴﻖ‬ ‫‪2‬‬

‫‪.2.3‬ﺗﺤﺪﻳﺪ‬ ‫‪.2.2‬ﺗﺤﺪﻳﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ‬ ‫‪.2.1‬ﺗﺤﺪﻳﺪ‬


‫ﺍﻟﺘﻘﻨﻴﺎﺕ‬ ‫ﻧﻘﺎﻁﺍﻟﺪﺧﻮﻝ‬ ‫ﺍﻟﻮﻇﻴﻔﺔ‬

‫‪.2.4‬ﺭﺳﻢ ﺧﺮﻳﻄﺔ ﻟﺴﻄﺢ ﺍﻟﻬﺠﻮﻡ‬

‫ﺍﻟﺸﻜﻞ‪:3-21‬ﺗﺤﻠﻴﻞ ﺍﻟﺘﻄﺒﻴﻖ‬

‫‪2.1‬ﺗﺤﺪﻳﺪ ﺍﻟﻮﻇﻴﻔﺔ‬
‫‪2.1.1‬ﺗﺤﺪﻳﺪ ﺍﻟﻮﻇﻴﻔﺔ ﺍﻷﺳﺎﺳﻴﺔ ﺍﻟﺘﻲ ﺗﻢ ﺇﻧﺸﺎء ﺍﻟﺘﻄﺒﻴﻖ ﻣﻦ ﺃﺟﻠﻬﺎ ﻭﺍﻹﺟﺮﺍءﺍﺕ ﺍﻟﺘﻲ ﺗﻢ ﺗﺼﻤﻴﻢ‬
‫ﻛﻞﻭﻇﻴﻔﺔ ﻷﺩﺍﺉﻬﺎ ﻋﻨﺪ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻋﻠﻰ ﺍﻟﻨﺤﻮ ﺍﻟﻤﻘﺼﻮﺩ‪.‬‬

‫‪٢.١.٢‬ﺗﺤﺪﻳﺪ ﺁﻟﻴﺎﺕ ﺍﻷﻣﺎﻥ ﺍﻷﺳﺎﺳﻴﺔ ﺍﻟﺘﻲ ﻳﺴﺘﺨﺪﻣﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ ﻭﻛﻴﻔﻴﺔ ﻋﻤﻠﻬﺎ‪ .‬ﻭﺑﺸﻜﻞ ﺧﺎﺹ‪،‬‬
‫ﻓﻬﻢﺍﻵﻟﻴﺎﺕ ﺍﻟﺮﺉﻴﺴﻴﺔ ﺍﻟﺘﻲ ﺗﺘﻌﺎﻣﻞ ﻣﻊ‬
‫‪799‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫ﺍﻟﻤﺼﺎﺩﻗﺔﻭﺇﺩﺍﺭﺓ ﺍﻟﺠﻠﺴﺔ ﻭﺍﻟﺘﺤﻜﻢ ﻓﻲ ﺍﻟﻮﺻﻮﻝ ﻭﺍﻟﻮﻇﺎﺉﻒ ﺍﻟﺘﻲ ﺗﺪﻋﻤﻬﺎ‪ ،‬ﻣﺜﻞ ﺗﺴﺠﻴﻞ‬


‫ﺍﻟﻤﺴﺘﺨﺪﻡﻭﺍﺳﺘﻌﺎﺩﺓ ﺍﻟﺤﺴﺎﺏ‪.‬‬
‫‪2.1.3‬ﺗﺤﺪﻳﺪ ﺟﻤﻴﻊ ﺍﻟﻮﻇﺎﺉﻒ ﻭﺍﻟﺴﻠﻮﻛﻴﺎﺕ ﺍﻷﻛﺜﺮ ﻫﺎﻣﺸﻴﺔ‪ ،‬ﻣﺜﻞ ﺍﺳﺘﺨﺪﺍﻡ ﻋﻤﻠﻴﺎﺕ ﺇﻋﺎﺩﺓ‬
‫ﺍﻟﺘﻮﺟﻴﻪ‪،‬ﻭﺍﻟﺮﻭﺍﺑﻂ ﺧﺎﺭﺝ ﺍﻟﻤﻮﻗﻊ‪ ،‬ﻭﺭﺳﺎﺉﻞ ﺍﻟﺨﻄﺄ‪ ،‬ﻭﺍﻟﻮﻇﺎﺉﻒ ﺍﻹﺩﺍﺭﻳﺔ ﻭﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ‪.‬‬

‫‪2.1.4‬ﺗﺤﺪﻳﺪ ﺃﻱ ﻭﻇﻴﻔﺔ ﺗﻨﺤﺮﻑ ﻋﻦ ﻣﻈﻬﺮ ﻭﺍﺟﻬﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﺮﺳﻮﻣﻴﺔ ﺍﻟﻘﻴﺎﺳﻴﺔ‪ ،‬ﺃﻭ ﺗﺴﻤﻴﺔ‬
‫ﺍﻟﻤﻌﻠﻤﺎﺕ‪،‬ﺃﻭ ﺁﻟﻴﺔ ﺍﻟﺘﻨﻘﻞ ﺍﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻲ ﺃﻱ ﻣﻜﺎﻥ ﺁﺧﺮ ﻓﻲ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﺛﻢ ﺗﺤﺪﻳﺪﻫﺎ‬
‫ﻟﻼﺧﺘﺒﺎﺭﺍﻟﻤﺘﻌﻤﻖ‪.‬‬

‫‪2.2‬ﺗﺤﺪﻳﺪ ﻧﻘﺎﻁ ﺇﺩﺧﺎﻝ ﺍﻟﺒﻴﺎﻧﺎﺕ‬


‫‪2.2.1‬ﺗﺤﺪﻳﺪ ﺟﻤﻴﻊ ﻧﻘﺎﻁ ﺍﻟﺪﺧﻮﻝ ﺍﻟﻤﺨﺘﻠﻔﺔ ﺍﻟﻤﻮﺟﻮﺩﺓ ﻹﺩﺧﺎﻝ ﺇﺩﺧﺎﻝ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻓﻲ ﻣﻌﺎﻟﺠﺔ‬
‫ﺍﻟﺘﻄﺒﻴﻖ‪،‬ﺑﻤﺎ ﻓﻲ ﺫﻟﻚ ﻋﻨﺎﻭﻳﻦ ‪ URL‬ﻭﻣﻌﻠﻤﺎﺕ ﺳﻠﺴﻠﺔ ﺍﻻﺳﺘﻌﻼﻡ‪،‬ﺑﺮﻳﺪﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﻣﻠﻔﺎﺕ‬
‫ﺗﻌﺮﻳﻒﺍﻻﺭﺗﺒﺎﻁ ﻭﺭﺅﻭﺱ ‪ HTTP‬ﺍﻷﺧﺮﻯ ﺍﻟﺘﻲ ﺗﺘﻢ ﻣﻌﺎﻟﺠﺘﻬﺎ ﺑﻮﺍﺳﻄﺔ ﺍﻟﺘﻄﺒﻴﻖ‪.‬‬

‫‪٢.٢.٢‬ﺍﻓﺤﺺ ﺃﻱ ﺁﻟﻴﺎﺕ ﻣﺨﺼﺼﺔ ﻟﻨﻘﻞ ﺃﻭ ﺗﺮﻣﻴﺰ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻳﺴﺘﺨﺪﻣﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﻣﺜﻞ ﺗﻨﺴﻴﻖ‬
‫ﺳﻠﺴﻠﺔﺍﻻﺳﺘﻌﻼﻡ ﻏﻴﺮ ﺍﻟﻘﻴﺎﺳﻲ‪ .‬ﺗﺄﻛﺪ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻧﺖ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺮﺳﻠﺔ ﺗﺘﻀﻤﻦ ﺃﺳﻤﺎء‬
‫ﻭﻗﻴﻢﺍﻟﻤﻌﻠﻤﺎﺕ‪ ،‬ﺃﻭ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﻳﺘﻢ ﺍﺳﺘﺨﺪﺍﻡ ﻭﺳﻴﻠﺔ ﺗﻤﺜﻴﻞ ﺑﺪﻳﻠﺔ‪.‬‬

‫‪2.2.3‬ﺗﺤﺪﻳﺪ ﺃﻱ ﻗﻨﻮﺍﺕ ﺧﺎﺭﺝ ﺍﻟﻨﻄﺎﻕ ﻳﺘﻢ ﻣﻦ ﺧﻼﻟﻬﺎ ﺇﺩﺧﺎﻝ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺘﻲ ﻳﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪﻡ‬
‫ﺍﻟﺘﺤﻜﻢﻓﻴﻬﺎ ﺃﻭ ﺑﻴﺎﻧﺎﺕ ﺍﻟﻄﺮﻑ ﺍﻟﺜﺎﻟﺚ ﺍﻷﺧﺮﻯ ﺇﻟﻰ ﻣﻌﺎﻟﺠﺔ ﺍﻟﺘﻄﺒﻴﻖ‪.‬‬
‫ﻭﻣﻦﺍﻷﻣﺜﻠﺔ ﻋﻠﻰ ﺫﻟﻚ ﺗﻄﺒﻴﻖ ﺍﻟﺒﺮﻳﺪ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ ﻋﻠﻰ ﺍﻟﻮﻳﺐ ﺍﻟﺬﻱ ﻳﻘﻮﻡ ﺑﻤﻌﺎﻟﺠﺔ ﺍﻟﺮﺳﺎﺉﻞ‬
‫ﺍﻟﻤﺴﺘﻠﻤﺔﻋﺒﺮ ‪ SMTP‬ﻭﻋﺮﺿﻬﺎ‪.‬‬

‫‪2.3‬ﺗﺤﺪﻳﺪ ﺍﻟﺘﻘﻨﻴﺎﺕ ﺍﻟﻤﺴﺘﺨﺪﻣﺔ‬


‫‪2.3.1‬ﺗﺤﺪﻳﺪ ﻛﻞ ﻣﻦ ﺍﻟﺘﻘﻨﻴﺎﺕ ﺍﻟﻤﺨﺘﻠﻔﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﺔ ﻋﻠﻰ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ‪ ،‬ﻣﺜﻞ ﺍﻟﻨﻤﺎﺫﺝ ﻭﺍﻟﺒﺮﺍﻣﺞ ﺍﻟﻨﺼﻴﺔ‬
‫ﻭﻣﻠﻔﺎﺕﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﻭﺗﻄﺒﻴﻘﺎﺕ ‪ Java‬ﻭﻋﻨﺎﺻﺮ ﺍﻟﺘﺤﻜﻢ ‪ ActiveX‬ﻭﻛﺎﺉﻨﺎﺕ ‪.Flash‬‬
‫‪2.3.2‬ﻗﺪﺭ ﺍﻹﻣﻜﺎﻥ‪ ،‬ﻗﻢ ﺑﺘﺤﺪﻳﺪ ﺍﻟﺘﻘﻨﻴﺎﺕ ﺍﻟﻤﺴﺘﺨﺪﻣﺔ ﻋﻠﻰ ﺟﺎﻧﺐ ﺍﻟﺨﺎﺩﻡ‪ ،‬ﺑﻤﺎ ﻓﻲ ﺫﻟﻚ ﻟﻐﺎﺕ‬
‫ﺍﻟﺒﺮﻣﺠﺔﺍﻟﻨﺼﻴﺔ‪ ،‬ﻭﻣﻨﺼﺎﺕ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ‪ ،‬ﻭﺍﻟﺘﻔﺎﻋﻞ ﻣﻊ ﻣﻜﻮﻧﺎﺕ ﺍﻟﻮﺍﺟﻬﺔ ﺍﻟﺨﻠﻔﻴﺔ ﻣﺜﻞ‬
‫ﻗﻮﺍﻋﺪﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﺃﻧﻈﻤﺔ ﺍﻟﺒﺮﻳﺪ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ‪.‬‬

‫‪2.3.3‬ﺍﻟﺘﺤﻘﻖ ﻣﻦ ‪HTTP‬ﺍﻟﺨﺎﺩﻡﺭﺍﺟﻊ ﺍﻟﺮﺃﺱ ﺍﻟﻤﻌُﺎﺩ ﻓﻲ ﺍﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﻭﺗﺤﻘﻖ ﺃﻳﻀﺎً ﻣﻦ ﺃﻱ‬


‫ﻣﻌُﺮﻓّﺎﺕﺑﺮﻣﺠﻴﺔ ﺃﺧﺮﻯ ﻣﻀُﻤﻨﺔ ﻓﻲ ﺭﺅﻭﺱ ‪ HTTP‬ﺍﻟﻤﺨُﺼﺼﺔ ﺃﻭ ﺗﻌﻠﻴﻘﺎﺕ ﻛﻮﺩ ﻣﺼﺪﺭ‬
‫‪ .HTML‬ﻳﺮُﺟﻰ ﻣﻼُﺣﻈﺔ ﺃﻧﻪ ﻓﻲ ﺑﻌﺾ ﺍﻟﺤﺎﻻﺕ‪ ،‬ﺗﺪُﺍﺭ ﻣﻨﺎﻃﻖ ﻣﺨُﺘﻠﻔﺔ ﻣﻦ ﺍﻟﺘﻄﺒﻴﻖ‬
‫ﺑﻮﺍﺳﻄﺔﻣﻜُﻮﻧﺎﺕ ﺧﻠﻔﻴﺔ ﻣﺨُﺘﻠﻔﺔ‪ ،‬ﻟﺬﺍ ﻗﺪ ﻳﺘﻢ ﺍﺳﺘﻼﻡ ﻻﻓﺘﺎﺕ ﻣﺨُﺘﻠﻔﺔ‪.‬‬

‫‪2.3.4‬ﻗﻢ ﺑﺘﺸﻐﻴﻞ ﺃﺩﺍﺓ ‪ Httprint‬ﻟﺒﺼﻤﺔ ﺧﺎﺩﻡ ﺍﻟﻮﻳﺐ‪.‬‬


‫‪2.3.5‬ﺭﺍﺟﻊ ﻧﺘﺎﺉﺞ ﺗﻤﺎﺭﻳﻦ ﺗﻌﻴﻴﻦ ﺍﻟﻤﺤﺘﻮﻯ ﻟﺪﻳﻚ ﻟﺘﺤﺪﻳﺪ ﺃﻱ ﻣﻠﺤﻘﺎﺕ ﻣﻠﻔﺎﺕ ﺃﻭ ﺃﺩﻟﺔ ﺃﻭ‬
‫ﺗﺴﻠﺴﻼﺕﻓﺮﻋﻴﺔ ﺃﺧﺮﻯ ﻟﻌﻨﺎﻭﻳﻦ ‪ URL‬ﺗﺒﺪﻭ ﻣﺜﻴﺮﺓ ﻟﻼﻫﺘﻤﺎﻡ‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪800‬‬

‫ﻗﺪﺗﻘُﺪﻡّ ﻣﻌﻠﻮﻣﺎﺕ ﺣﻮﻝ ﺍﻟﺘﻘﻨﻴﺎﺕ ﺍﻟﻤﺴُﺘﺨﺪﻣﺔ ﻋﻠﻰ ﺍﻟﺨﺎﺩﻡ‪ .‬ﺭﺍﺟﻊ ﺃﺳﻤﺎء ﺭﻣﻮﺯ ﺍﻟﺠﻠﺴﺔ‬
‫ﻭﻣﻠﻔﺎﺕﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﺍﻷﺧﺮﻯ ﺍﻟﺼﺎﺩﺭﺓ‪ .‬ﺍﺳﺘﺨﺪﻡ ﺟﻮﺟﻞ ﻟﻠﺒﺤﺚ ﻋﻦ ﺍﻟﺘﻘﻨﻴﺎﺕ‬
‫ﺍﻟﻤﺮُﺗﺒﻄﺔﺑﻬﺬﻩ ﺍﻟﻌﻨﺎﺻﺮ‪.‬‬
‫‪2.3.6‬ﺣﺪﺩ ﺃﻱ ﺃﺳﻤﺎء ﻧﺼﻮﺹ ﺑﺮﻣﺠﻴﺔ ﺟﺬﺍﺑﺔ ﻭﻣﻌﻠﻤﺎﺕ ﺳﻠﺴﻠﺔ ﺍﻻﺳﺘﻌﻼﻡ ﺍﻟﺘﻲ ﻗﺪ ﺗﻨﺘﻤﻲ ﺇﻟﻰ‬
‫ﻣﻜﻮﻧﺎﺕﺑﺮﻣﺠﻴﺔ ﺧﺎﺭﺟﻴﺔ‪ .‬ﺍﺑﺤﺚ ﻋﻨﻬﺎ ﻋﻠﻰ ﺟﻮﺟﻞ ﺑﺎﺳﺘﺨﺪﺍﻡﻋﻨﻮﺍﻥ ‪:URL‬ﻣﺆُﻫﻞ ﻟﻠﻌﺜﻮﺭ ﻋﻠﻰ‬
‫ﺃﻱﺗﻄﺒﻴﻘﺎﺕ ﺃﺧﺮﻯ ﺗﺴﺘﺨﺪﻡ ﻧﻔﺲ ﺍﻟﺒﺮﺍﻣﺞ ﺍﻟﻨﺼﻴﺔ ﻭﺍﻟﻤﻌﻠﻤﺎﺕ‪ ،‬ﻭﺍﻟﺘﻲ ﻗﺪ ﺗﺴﺘﺨﺪﻡ‬
‫ﺑﺎﻟﺘﺎﻟﻲﻧﻔﺲ ﻣﻜﻮﻧﺎﺕ ﺍﻟﺠﻬﺎﺕ ﺍﻟﺨﺎﺭﺟﻴﺔ‪ .‬ﻗﻢ ﺑﺈﺟﺮﺍء ﻣﺮﺍﺟﻌﺔ ﺩﻗﻴﻘﺔ ﻟﻬﺬﻩ ﺍﻟﻤﻮﺍﻗﻊ‪ ،‬ﻓﻘﺪ‬
‫ﻳﻜﺸﻒﺫﻟﻚ ﻋﻦ ﻣﺤﺘﻮﻯ ﻭﻭﻇﺎﺉﻒ ﺇﺿﺎﻓﻴﺔ ﻏﻴﺮ ﻣﺮﺗﺒﻄﺔ ﺻﺮﺍﺣﺔ ًﺑﺎﻟﺘﻄﺒﻴﻖ ﺍﻟﺬﻱ ﺗﻬﺎﺟﻤﻪ‪.‬‬

‫‪2.4‬ﺭﺳﻢ ﺧﺮﻳﻄﺔ ﻟﺴﻄﺢ ﺍﻟﻬﺠﻮﻡ‬


‫‪٢.٤.١‬ﺣﺎﻭﻝ ﺍﻟﺘﺄﻛﺪ ﻣﻦ ﺍﻟﺒﻨﻴﺔ ﺍﻟﺪﺍﺧﻠﻴﺔ ﺍﻟﻤﺤﺘﻤﻠﺔ ﻭﻭﻇﺎﺉﻒ ﺗﻄﺒﻴﻖ ﺍﻟﺨﺎﺩﻡ‪ ،‬ﻭﺍﻵﻟﻴﺎﺕ ﺍﻟﺘﻲ‬
‫ﻳﺴﺘﺨﺪﻣﻬﺎﺧﻠﻒ ﺍﻟﻜﻮﺍﻟﻴﺲ ﻟﺘﺤﻘﻴﻖ ﺍﻟﺴﻠﻮﻙ ﺍﻟﻤﺮﺉﻲ ﻣﻦ ﻣﻨﻈﻮﺭ ﺍﻟﻌﻤﻴﻞ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ‬
‫ﺍﻟﻤﺜﺎﻝ‪،‬ﻣﻦ ﺍﻟﻤﺮﺟﺢ ﺃﻥ ﺗﺘﻔﺎﻋﻞ ﻭﻇﻴﻔﺔ ﺍﺳﺘﺮﺩﺍﺩ ﻃﻠﺒﺎﺕ ﺍﻟﻌﻤﻼء ﻣﻊ ﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ‪.‬‬

‫‪٢.٤.٢‬ﻟﻜﻞ ﻋﻨﺼﺮ ﻣﻦ ﻋﻨﺎﺻﺮ ﺍﻟﻮﻇﻴﻔﺔ‪ ،‬ﺣﺪﺩ ﺃﻧﻮﺍﻉ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ ﺍﻟﺸﺎﺉﻌﺔ ﺍﻟﻤﺮﺗﺒﻄﺔ ﺑﻬﺎ‪ .‬ﻋﻠﻰ‬
‫ﺳﺒﻴﻞﺍﻟﻤﺜﺎﻝ‪ ،‬ﻗﺪ ﺗﻜﻮﻥ ﻭﻇﺎﺉﻒ ﺗﺤﻤﻴﻞ ﺍﻟﻤﻠﻔﺎﺕ ﻋﺮﺿﺔ ﻻﺧﺘﺮﺍﻕ ﺍﻟﻤﺴﺎﺭﺍﺕ‪ ،‬ﻭﻗﺪ ﺗﻜﻮﻥ‬
‫ﺍﻟﺮﺳﺎﺉﻞﺑﻴﻦ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﻋﺮﺿﺔ ﻟﻬﺠﻤﺎﺕ ‪ ،XSS‬ﻭﻗﺪ ﺗﻜﻮﻥ ﻭﻇﺎﺉﻒ "ﺍﺗﺼﻞ ﺑﻨﺎ"‬
‫ﻋﺮﺿﺔﻟﻬﺠﻤﺎﺕ ﺣﻘﻦ ‪.SMTP‬‬
‫ﺭﺍﺟﻊﺍﻟﻔﺼﻞ ﺍﻟﺮﺍﺑﻊ ﻟﻠﺤﺼﻮﻝ ﻋﻠﻰ ﺃﻣﺜﻠﺔ ﻋﻠﻰ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ ﺍﻟﻤﺮﺗﺒﻄﺔ ﻋﺎﺩﺓ ﺑﻮﻇﺎﺉﻒ‬
‫ﻭﺗﻘﻨﻴﺎﺕﻣﻌﻴﻨﺔ‪.‬‬
‫‪٢.٤.٣‬ﺿﻊ ﺧﻄﺔ ﻫﺠﻮﻣﻴﺔ‪ ،‬ﻣﻊ ﺇﻋﻄﺎء ﺍﻷﻭﻟﻮﻳﺔ ﻟﻠﻮﻇﺎﺉﻒ ﺍﻷﻛﺜﺮ ﺇﺛﺎﺭﺓ ﻟﻼﻫﺘﻤﺎﻡ ﻭﺃﺧﻄﺮ ﻧﻘﺎﻁ‬
‫ﺍﻟﻀﻌﻒﺍﻟﻤﺤﺘﻤﻠﺔ ﺍﻟﻤﺮﺗﺒﻄﺔ ﺑﻬﺎ‪ .‬ﺍﺳﺘﺨﺪﻡ ﺧﻄﺘﻚ ﻟﺘﻮﺟﻴﻪ ﻣﻘﺪﺍﺭ ﺍﻟﻮﻗﺖ ﻭﺍﻟﺠﻬﺪ ﺍﻟﺬﻱ‬
‫ﺗﺨﺼﺼﻪﻟﻜﻞ ﺟﺎﻧﺐ ﻣﻦ ﺍﻟﺠﻮﺍﻧﺐ ﺍﻟﻤﺘﺒﻘﻴﺔ ﻣﻦ ﻫﺬﻩ ﺍﻟﻤﻨﻬﺠﻴﺔ‪.‬‬

‫ﺍﺧﺘﺒﺎﺭﻋﻨﺎﺻﺮ ﺍﻟﺘﺤﻜﻢ ﻓﻲ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ‬ ‫‪3‬‬

‫‪.3.3‬ﺍﻟﻤﺘﺼﻔﺢ‬ ‫‪.3.2‬ﻣﺪﺧﻼﺕ ﻣﻦ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ‬ ‫‪.3.1‬ﻧﻘﻞ‬


‫ﺍﻻﻣﺘﺪﺍﺩﺍﺕ‬ ‫ﻋﻨﺎﺻﺮﺍﻟﺘﺤﻜﻢ‬ ‫ﺍﻟﺒﻴﺎﻧﺎﺕﻋﺒﺮ ﺍﻟﻌﻤﻴﻞ‬

‫ﺗﻄﺒﻴﻘﺎﺕﺟﺎﻓﺎ‬ ‫ﺣﺪﻭﺩﺍﻟﻄﻮﻝ‬ ‫ﺍﻟﺤﻘﻮﻝﺍﻟﻤﺨﻔﻴﺔ‬

‫ﻋﻨﺎﺻﺮﺗﺤﻜﻢ ‪ActiveX‬‬ ‫ﺍﻟﺘﺤﻘﻖﻣﻦ ﺻﺤﺔ ﺟﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ‬ ‫ﻣﻠﻔﺎﺕﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ‬

‫ﻛﺎﺉﻨﺎﺕﻓﻼﺵ‬ ‫ﺍﻟﻌﻨﺎﺻﺮﺍﻟﻤﻌﻮﻗﺔ‬ ‫ﺍﻟﻤﻌﻠﻤﺎﺕﺍﻟﻤﺤﺪﺩﺓ ﻣﺴﺒﻘﺎً‬

‫ﻛﺎﺉﻨﺎﺕ‪Silverlight‬‬ ‫ﺣﺎﻟﺔﻋﺮﺽ ‪ASP.NET‬‬

‫ﺍﻟﺸﻜﻞ‪:4-21‬ﺍﺧﺘﺒﺎﺭ ﻋﻨﺎﺻﺮ ﺍﻟﺘﺤﻜﻢ ﻣﻦ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ‬


‫‪801‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫‪3.1‬ﺍﺧﺘﺒﺎﺭ ﻧﻘﻞ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻋﺒﺮ ﺍﻟﻌﻤﻴﻞ‬


‫‪3.1.1‬ﺗﺤﺪﻳﺪ ﺟﻤﻴﻊ ﺍﻟﺤﺎﻻﺕ ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ ﺣﻴﺚ ﻳﺘﻢ ﺍﺳﺘﺨﺪﺍﻡ ﺣﻘﻮﻝ ﺍﻟﻨﻤﺎﺫﺝ ﺍﻟﻤﺨﻔﻴﺔ ﻭﻣﻠﻔﺎﺕ‬
‫ﺗﻌﺮﻳﻒﺍﻻﺭﺗﺒﺎﻁ ﻭﻣﻌﻠﻤﺎﺕ ‪ URL‬ﻋﻠﻰ ﻣﺎ ﻳﺒﺪﻭ ﻟﻨﻘﻞ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻋﺒﺮ ﺍﻟﻌﻤﻴﻞ‪.‬‬

‫‪3.1.2‬ﺣﺎﻭﻝ ﺗﺤﺪﻳﺪ ﺍﻟﻐﺮﺽ ﺍﻟﺬﻱ ﻳﻠﻌﺒﻪ ﺍﻟﻌﻨﺼﺮ ﻓﻲ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﺍﺳﺘﻨﺎﺩﺍً ﺇﻟﻰ ﺍﻟﺴﻴﺎﻕ ﺍﻟﺬﻱ‬
‫ﻳﻈﻬﺮﻓﻴﻪ ﻭﻋﻠﻰ ﺍﺳﻤﻪ ﻭﻗﻴﻤﺘﻪ‪.‬‬

‫‪3.1.3‬ﻋﺪﻝّ ﻗﻴﻤﺔ ﺍﻟﻌﻨﺼﺮ ﺑﻤﺎ ﻳﺘﻨﺎﺳﺐ ﻣﻊ ﺩﻭﺭﻩ ﻓﻲ ﻭﻇﺎﺉﻒ ﺍﻟﺘﻄﺒﻴﻖ‪ .‬ﺣﺪﺩّ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ‬
‫ﻳﻌﺎﻟﺞﻗﻴﻤﺎً ﻋﺸﻮﺍﺉﻴﺔ ﻣﺮُﺳﻠﺔ ﻓﻲ ﺍﻟﺤﻘﻞ‪ ،‬ﻭﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺍﺳﺘﻐﻼﻝ ﻫﺬﻩ ﺍﻟﺤﻘﻴﻘﺔ‬
‫ﻟﻠﺘﺪﺧﻞﻓﻲ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ ﺃﻭ ﺗﻘﻮﻳﺾ ﺃﻱ ﺿﻮﺍﺑﻂ ﺃﻣﻨﻴﺔ‪.‬‬

‫‪٣.١.٤‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﻨﻘﻞ ﺑﻴﺎﻧﺎﺕ ﻏﻴﺮ ﺷﻔﺎﻓﺔ ﻋﺒﺮ ﺍﻟﻌﻤﻴﻞ‪ ،‬ﻓﻴﻤﻜﻨﻚ ﻣﻬﺎﺟﻤﺔ ﺫﻟﻚ ﺑﻄﺮﻕ‬
‫ﻣﺨﺘﻠﻔﺔ‪.‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﻌﻨﺼﺮ ﻣﻌُﺘﻤﺎً‪ ،‬ﻓﻘﺪ ﺗﺘﻤﻜﻦ ﻣﻦ ﻓﻚ ﺗﺸﻔﻴﺮ ﺧﻮﺍﺭﺯﻣﻴﺔ ﺍﻟﺘﻌﺘﻴﻢ‪ ،‬ﻭﺑﺎﻟﺘﺎﻟﻲ‬
‫ﺇﺭﺳﺎﻝﺑﻴﺎﻧﺎﺕ ﻋﺸﻮﺍﺉﻴﺔ ﺩﺍﺧﻞ ﺍﻟﻌﻨﺼﺮ ﺍﻟﻤﻌُﺘﻢ‪ .‬ﺣﺘﻰ ﻟﻮ ﻛﺎﻥ ﻣﺸُﻔﺮّﺍً ﺑﺸﻜﻞ ﺁﻣﻦ‪ ،‬ﻓﻘﺪ‬
‫ﺗﺘﻤﻜﻦﻣﻦ ﺇﻋﺎﺩﺓ ﺗﺸﻐﻴﻞ ﺍﻟﻌﻨﺼﺮ ﻓﻲ ﺳﻴﺎﻗﺎﺕ ﺃﺧﺮﻯ ﻟﻠﺘﺪﺧﻞ ﻓﻲ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ‪ .‬ﺭﺍﺟﻊ‬
‫ﺍﻟﻔﺼﻞﺍﻟﺨﺎﻣﺲ ﻟﻤﺰﻳﺪ ﻣﻦ ﺍﻟﺘﻔﺎﺻﻴﻞ ﺣﻮﻝ ﻫﺬﻩ ﺍﻟﻬﺠﻤﺎﺕ ﻭﻏﻴﺮﻫﺎ‪.‬‬

‫‪3.1.5‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺴﺘﺨﺪﻡ ‪ASP.NET‬ﺣﺎﻟﺔ ﺍﻟﻌﺮﺽ‪،‬ﺍﺧﺘﺒﺎﺭ ﻟﻠﺘﺄﻛﺪ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ‬
‫ﺍﻟﺘﻼﻋﺐﺑﻪ ﺃﻭ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﺃﻱ ﻣﻌﻠﻮﻣﺎﺕ ﺣﺴﺎﺳﺔ‪ .‬ﻻﺣﻆ ﺃﻥﺣﺎﻟﺔ ﺍﻟﻌﺮﺽﻗﺪ ﻳﺘﻢ‬
‫ﺍﺳﺘﺨﺪﺍﻣﻬﺎﺑﺸﻜﻞ ﻣﺨﺘﻠﻒ ﻓﻲ ﺻﻔﺤﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﻤﺨﺘﻠﻔﺔ‪.‬‬

‫‪3.1.5.1‬ﺍﺳﺘﺨﺪﻡﺣﺎﻟﺔ ﺍﻟﻌﺮﺽﻣﺤﻠﻞ ﻓﻲ ‪ Burp Suite‬ﻟﺘﺄﻛﻴﺪ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ‬


‫ﺍﻝﺗﻤﻜﻴﻦ ﻋﺮﺽ ﺣﺎﻟﺔ ﻣﺎﻙﺗﻢ ﺗﻤﻜﻴﻦ ﺍﻟﺨﻴﺎﺭ‪ ،‬ﻣﻤﺎ ﻳﻌﻨﻲ ﺃﻧﻪﻋﺮﺽ ﺍﻟﺤﺎﻟﺔﻻ ﻳﻤﻜﻦ‬
‫ﺗﻌﺪﻳﻞﻣﺤﺘﻮﻳﺎﺗﻪ‪.‬‬
‫‪3.1.5.2‬ﻣﺮﺍﺟﻌﺔ ﻓﻚ ﺍﻟﺘﺸﻔﻴﺮﺣﺎﻟﺔ ﺍﻟﻌﺮﺽﻟﺘﺤﺪﻳﺪ ﺃﻱ ﺑﻴﺎﻧﺎﺕ ﺣﺴﺎﺳﺔ‬
‫ﻳﺘﻀﻤﻦ‪.‬‬
‫‪3.1.5.3‬ﺗﻌﺪﻳﻞ ﺇﺣﺪﻯ ﻗﻴﻢ ﺍﻟﻤﻌﻠﻤﺎﺕ ﺍﻟﻤﻔﻜﻮﻛﺔ ﻭﺇﻋﺎﺩﺓ ﺗﺮﻣﻴﺰﻫﺎ ﻭﺇﺭﺳﺎﻟﻬﺎﻋﺮﺽ ﺍﻟﺤﺎﻟﺔ‪.‬ﺇﺫﺍ‬
‫ﻗﺒﻞﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﻘﻴﻤﺔ ﺍﻟﻤﻌﺪﻟﺔ‪ ،‬ﻓﻴﺠﺐ ﻋﻠﻴﻚ ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊﺣﺎﻟﺔ ﺍﻟﻌﺮﺽﻛﻘﻨﺎﺓ‬
‫ﺇﺩﺧﺎﻝﻹﺩﺧﺎﻝ ﺑﻴﺎﻧﺎﺕ ﻋﺸﻮﺍﺉﻴﺔ ﻓﻲ ﻣﻌﺎﻟﺠﺔ ﺍﻟﺘﻄﺒﻴﻖ‪ .‬ﺃﺟﺮ ِﻧﻔﺲ ﺍﻻﺧﺘﺒﺎﺭﺍﺕ‬
‫ﻋﻠﻰﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺘﻲ ﺗﺤﺘﻮﻳﻬﺎ ﻛﻤﺎ ﺗﻔﻌﻞ ﻣﻊ ﺃﻱ ﻣﻌﻠﻤﺎﺕ ﻃﻠﺐ ﺃﺧﺮﻯ‪.‬‬

‫‪3.2‬ﺍﺧﺘﺒﺎﺭ ﻋﻨﺎﺻﺮ ﺍﻟﺘﺤﻜﻢ ﻣﻦ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ ﻋﻠﻰ ﺇﺩﺧﺎﻝ ﺍﻟﻤﺴﺘﺨﺪﻡ‬


‫‪3.2.1‬ﺗﺤﺪﻳﺪ ﺃﻱ ﺣﺎﻻﺕ ﻳﺘﻢ ﻓﻴﻬﺎ ﺍﺳﺘﺨﺪﺍﻡ ﻋﻨﺎﺻﺮ ﺍﻟﺘﺤﻜﻢ ﻣﻦ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ ﻣﺜﻞ ﺣﺪﻭﺩ ﺍﻟﻄﻮﻝ‬
‫ﻭﻓﺤﻮﺻﺎﺕ‪ JavaScript‬ﻟﻠﺘﺤﻘﻖ ﻣﻦ ﺻﺤﺔ ﺇﺩﺧﺎﻝ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻗﺒﻞ ﺇﺭﺳﺎﻟﻪ‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪802‬‬

‫ﺇﻟﻰﺍﻟﺨﺎﺩﻡ‪ .‬ﻳﻤﻜﻦ ﺗﺠﺎﻭﺯ ﻫﺬﻩ ﺍﻟﻀﻮﺍﺑﻂ ﺑﺴﻬﻮﻟﺔ‪ ،‬ﺇﺫ ﻳﻤﻜﻨﻚ ﺇﺭﺳﺎﻝ ﻃﻠﺒﺎﺕ ﻋﺸﻮﺍﺉﻴﺔ ﺇﻟﻰ‬
‫ﺍﻟﺨﺎﺩﻡ‪.‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪:‬‬
‫<”‪onsubmit=”return Validate)this(”< >input maxlength=”3” name=”quantity‬‬
‫”‪>form action=”order.asp‬‬
‫‪...‬‬

‫‪3.2.2‬ﺍﺧﺘﺒﺮ ﻛﻞ ﺣﻘﻞ ﺇﺩﺧﺎﻝ ﻣﺘﺄﺛﺮ ﺑﺪﻭﺭﻩ ﻋﻦ ﻃﺮﻳﻖ ﺇﺭﺳﺎﻝ ﺍﻹﺩﺧﺎﻝ ﺍﻟﺬﻱ ﻳﺘﻢ ﺣﻈﺮﻩ ﻋﺎﺩﺓ ًﺑﻮﺍﺳﻄﺔ‬
‫ﻋﻨﺎﺻﺮﺍﻟﺘﺤﻜﻢ ﺍﻟﻤﻮﺟﻮﺩﺓ ﻋﻠﻰ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ ﻟﻠﺘﺤﻘﻖ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻥ ﻳﺘﻢ ﺗﻜﺮﺍﺭﻩ ﻋﻠﻰ ﺍﻟﺨﺎﺩﻡ‪.‬‬

‫‪3.2.3‬ﺇﻥ ﺇﻣﻜﺎﻧﻴﺔ ﺗﺠﺎﻭﺯ ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ ﻻ ﺗﻤُﺜﻞ ﺑﺎﻟﻀﺮﻭﺭﺓ ﺃﻱ ﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ‪ .‬ﻣﻊ ﺫﻟﻚ‪،‬‬
‫ﻳﺠﺐﻋﻠﻴﻚ ﻣﺮﺍﺟﻌﺔ ﻋﻤﻠﻴﺎﺕ ﺍﻟﺘﺤﻘﻖ ﺍﻟﻤﻨُﻔﺬﺓ ﺑﺪﻗﺔ‪ .‬ﺗﺄﻛﺪ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﻌﺘﻤﺪ‬
‫ﻋﻠﻰﻋﻨﺎﺻﺮ ﺍﻟﺘﺤﻜﻢ ﻣﻦ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ ﻟﺤﻤﺎﻳﺔ ﻧﻔﺴﻪ ﻣﻦ ﺍﻹﺩﺧﺎﻻﺕ ﺍﻟﻤﺸﻮﻫﺔ‪ .‬ﺗﺄﻛﺪ ﺃﻳﻀﺎً‬
‫ﻣﻤﺎﺇﺫﺍ ﻛﺎﻧﺖ ﻫﻨﺎﻙ ﺃﻱ ﻇﺮﻭﻑ ﻗﺎﺑﻠﺔ ﻟﻼﺳﺘﻐﻼﻝ ﻳﻤﻜﻦ ﺃﻥ ﺗﻔُﻌﻠّﻬﺎ ﻫﺬﻩ ﺍﻹﺩﺧﺎﻻﺕ‪.‬‬

‫‪٣.٢.٤‬ﺭﺍﺟﻊ ﻛﻞ ﻧﻤﻮﺫﺝ ‪ HTML‬ﻟﺘﺤﺪﻳﺪ ﺃﻱ ﻋﻨﺎﺻﺮ ﻣﻌﻄﻠﺔ‪ ،‬ﻣﺜﻞ ﺃﺯﺭﺍﺭ ﺍﻹﺭﺳﺎﻝ ﺍﻟﻤﻌﺘﻤﺔ‪ .‬ﻋﻠﻰ‬
‫ﺳﺒﻴﻞﺍﻟﻤﺜﺎﻝ‪:‬‬
‫<”‪>input disabled=”true” name=”product‬‬

‫ﺇﺫﺍﻭﺟﺪﺕ َﺃﻳﺎً ﻣﻨﻬﺎ‪ ،‬ﻓﺄﺭﺳﻠﻬﺎ ﺇﻟﻰ ﺍﻟﺨﺎﺩﻡ‪ ،‬ﻣﻊ ﻣﻌﻠﻤﺎﺕ ﺍﻟﻨﻤﻮﺫﺝ ﺍﻷﺧﺮﻯ‪ .‬ﺗﺤﻘﻖ ﻣﻤﺎ ﺇﺫﺍ‬
‫ﻛﺎﻥﻟﻠﻤﻌﻠﻤﺔ ﺃﻱ ﺗﺄﺛﻴﺮ ﻋﻠﻰ ﻣﻌﺎﻟﺠﺔ ﺍﻟﺨﺎﺩﻡ‪ ،‬ﻣﻤﺎ ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻣﻪ ﻓﻲ ﺍﻟﻬﺠﻮﻡ‪ .‬ﻛﺒﺪﻳﻞ‪،‬‬
‫ﺍﺳﺘﺨﺪﻡﻗﺎﻋﺪﺓ ﻭﻛﻴﻞ ﺁﻟﻴﺔ ﻟﺘﻔﻌﻴﻞ ﺍﻟﺤﻘﻮﻝ ﺍﻟﻤﻌﻄﻠﺔ ﺗﻠﻘﺎﺉﻴﺎً‪ ،‬ﻣﺜﻞ ﻗﻮﺍﻋﺪ "ﺗﻌﺪﻳﻞ ‪"HTML‬‬
‫ﻓﻲ‪.Burp Proxy‬‬

‫‪3.3‬ﺍﺧﺘﺒﺎﺭ ﻣﻜﻮﻧﺎﺕ ﻣﻠﺤﻖ ﺍﻟﻤﺘﺼﻔﺢ‬


‫‪3.3.1‬ﻓﻬﻢ ﻋﻤﻠﻴﺔ ﺗﻄﺒﻴﻖ ﺍﻟﻌﻤﻴﻞ‬
‫‪.3.3.1.1‬ﺇﻋﺪﺍﺩ ﻭﻛﻴﻞ ﺍﻋﺘﺮﺍﺽ ﻣﺤﻠﻲ ﻟﺘﻘﻨﻴﺔ ﺍﻟﻌﻤﻴﻞ ﻗﻴﺪ ﺍﻟﻤﺮﺍﺟﻌﺔ‪ ،‬ﻭﻣﺮﺍﻗﺒﺔ ﺟﻤﻴﻊ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺎﺭﺓ‬
‫ﺑﻴﻦﺍﻟﻌﻤﻴﻞ ﻭﺍﻟﺨﺎﺩﻡ‪ .‬ﺇﺫﺍ ﻛﺎﻧﺖ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻣﺴُﻠﺴﻠﺔ‪ ،‬ﻓﺎﺳﺘﺨﺪﻡ ﺃﺩﺍﺓ ﺇﻟﻐﺎء ﺍﻟﺘﺴﻠﺴﻞ ﻣﺜﻞ‬
‫ﺩﻋﻢ‪ AMF‬ﺍﻟﻤﺪﻣﺞ ﻓﻲ ‪ Burp‬ﺃﻭ ﻣﻜُﻮﻥّ ‪ DSer Burp‬ﺍﻹﺿﺎﻓﻲ ﻟـ ‪.Java‬‬

‫‪3.3.1.2‬ﺍﺳﺘﻌﺮﺽ ﺍﻟﻮﻇﺎﺉﻒ ﺍﻟﻤﻌﺮﻭﺿﺔ ﻓﻲ ﺍﻟﻌﻤﻴﻞ‪ .‬ﺣﺪﺩ ﺃﻱ ﻭﻇﺎﺉﻒ ﺣﺴﺎﺳﺔ ﺃﻭ ﻗﻮﻳﺔ ﻣﺤﺘﻤﻠﺔ‪،‬‬


‫ﺑﺎﺳﺘﺨﺪﺍﻡﺍﻷﺩﻭﺍﺕ ﺍﻟﻘﻴﺎﺳﻴﺔ ﺩﺍﺧﻞ ﻭﻛﻴﻞ ﺍﻻﻋﺘﺮﺍﺽ ﻹﻋﺎﺩﺓ ﺗﺸﻐﻴﻞ ﻃﻠﺒﺎﺕ ﺍﻟﻤﻔﺎﺗﻴﺢ ﺃﻭ‬
‫ﺗﻌﺪﻳﻞﺍﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺨﺎﺩﻡ‪.‬‬

‫‪3.3.2‬ﻓﻚ ﺗﺠﻤﻴﻊ ﺍﻟﻌﻤﻴﻞ‬


‫‪3.3.2.1‬ﺣﺪﺩ ﺃﻱ ﺗﻄﺒﻴﻘﺎﺕ ﺻﻐﻴﺮﺓ ﻳﺴﺘﺨﺪﻣﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ‪ .‬ﺍﺑﺤﺚ ﻋﻦ ﺃﻱ ٍّﻣﻦ ﺃﻧﻮﺍﻉ ﺍﻟﻤﻠﻔﺎﺕ ﺍﻟﺘﺎﻟﻴﺔ‬
‫ﺍﻟﻤﻄﻠﻮﺑﺔﻋﺒﺮ ﻭﻛﻴﻞ ﺍﻻﻋﺘﺮﺍﺽ ﺍﻟﺨﺎﺹ ﺑﻚ‪:‬‬
‫‪ .‬ﺍﻟﻔﺉﺔ‪ :jar. ،‬ﺟﺎﻓﺎ‬ ‫‪-‬‬

‫‪ .‬ﻓﻼﺵ ‪swf:‬‬ ‫‪-‬‬

‫‪xap : Silverlight .‬‬ ‫‪-‬‬


‫‪803‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫ﻳﻤﻜﻨﻚﺃﻳﻀﺎً ﺍﻟﺒﺤﺚ ﻋﻦ ﻋﻼﻣﺎﺕ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺿﻤﻦ ﺷﻴﻔﺮﺓ ﻣﺼﺪﺭ ‪ HTML‬ﻟﺼﻔﺤﺎﺕ‬


‫ﺍﻟﺘﻄﺒﻴﻖ‪.‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪:‬‬
‫<‪>applet code=”input.class” id=”TheApplet” codebase=”/scripts/”<>/ applet‬‬

‫‪3.3.2.2‬ﺭﺍﺟﻊ ﺟﻤﻴﻊ ﺍﺳﺘﺪﻋﺎءﺍﺕ ﺩﻭﺍﻝ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺼﻐﻴﺮ ﻣﻦ ﺩﺍﺧﻞ ‪ HTML‬ﺍﻟﻤﺴُﺘﺪﻋﻰ‪ ،‬ﻭﺗﺄﻛﺪ ﻣﻦ‬
‫ﺇﺭﺳﺎﻝﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﻌُﺎﺩﺓ ﻣﻦ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺼﻐﻴﺮ ﺇﻟﻰ ﺍﻟﺨﺎﺩﻡ‪ .‬ﺇﺫﺍ ﻛﺎﻧﺖ ﻫﺬﻩ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻣﺒُﻬﻤﺔ )‬
‫ﺃﻱﻣﺸُﻮﺷﺔ ﺃﻭ ﻣﺸُﻔﺮﺓ(‪ ،‬ﻓﺮﺑﻤﺎ ﺗﺤﺘﺎﺝ ﻟﺘﻌﺪﻳﻠﻬﺎ ﺇﻟﻰ ﻓﻚ ﺗﺠﻤﻴﻊ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺼﻐﻴﺮ ﻟﻠﺤﺼﻮﻝ‬
‫ﻋﻠﻰﺷﻴﻔﺮﺗﻪ ﺍﻟﻤﺼﺪﺭﻳﺔ‪.‬‬

‫‪3.3.2.3‬ﻧﺰﻝّ ﻣﻠﻒ ﺑﺎﻳﺖ ﻛﻮﺩ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺈﺩﺧﺎﻝ ﻋﻨﻮﺍﻥ ‪ URL‬ﻓﻲ ﻣﺘﺼﻔﺤﻚ‪ ،‬ﻭﺍﺣﻔﻆ ﺍﻟﻤﻠﻒ ﻣﺤﻠﻴﺎً‪.‬‬
‫ﺍﺳﻢﻣﻠﻒ ﺑﺎﻳﺖ ﻛﻮﺩ ﻣﺤُﺪﺩ ﻓﻲﺷﻔﺮﺓﺳﻤﺔ ﻋﻼﻣﺔ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺼﻐﻴﺮ‪ .‬ﺳﻴﺘﻢ ﻭﺿﻊ ﺍﻟﻤﻠﻒ ﻓﻲ‬
‫ﺍﻟﺪﻟﻴﻞﺍﻟﻤﺤﺪﺩ ﻓﻲﻗﺎﻋﺪﺓ ﺍﻟﻜﻮﺩﺇﺫﺍ ﻛﺎﻧﺖ ﻫﺬﻩ ﺍﻟﺴﻤﺔ ﻣﻮﺟﻮﺩﺓ‪ ،‬ﻭﺇﻻ ﻓﺴﺘﻜﻮﻥ ﻣﻮﺟﻮﺩﺓ ﻓﻲ‬
‫ﻧﻔﺲﺍﻟﺪﻟﻴﻞ ﺍﻟﺬﻱ ﺗﻮﺟﺪ ﻓﻴﻪ ﺍﻟﺼﻔﺤﺔ ﺍﻟﺘﻲ ﺗﻈﻬﺮ ﻓﻴﻬﺎ ﻋﻼﻣﺔ ﺍﻟﺘﻄﺒﻴﻖ‪.‬‬

‫‪٣.٣.٢.٤‬ﺍﺳﺘﺨﺪﻡ ﺃﺩﺍﺓ ﻣﻨﺎﺳﺒﺔ ﻟﻔﻚ ﺷﻔﺮﺓ ﺍﻟﺒﺎﻳﺖ ﺇﻟﻰ ﺷﻴﻔﺮﺓ ﻣﺼﺪﺭﻳﺔ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪:‬‬

‫‪C:\<jad.exe input.class‬‬
‫ﺗﺤﻠﻴﻞ‪ ...input.class‬ﺇﻧﺸﺎء ‪input.jad‬‬

‫ﻓﻴﻤﺎﻳﻠﻲ ﺑﻌﺾ ﺍﻷﺩﻭﺍﺕ ﺍﻟﻤﻨﺎﺳﺒﺔ ﻟﻔﻚ ﺗﺠﻤﻴﻊ ﻣﻜﻮﻧﺎﺕ ﻣﻠﺤﻘﺎﺕ ﺍﻟﻤﺘﺼﻔﺢ ﺍﻟﻤﺨﺘﻠﻔﺔ‪:‬‬

‫ﺟﺎﻓﺎ‪ -‬ﺟﺎﺩ‬ ‫‪-‬‬

‫ﻓﻼﺵ— ‪SWFScan، Flasm/Flare‬‬ ‫‪-‬‬

‫‪Silverlight — .NET Reflector‬‬ ‫‪-‬‬

‫ﺇﺫﺍﺗﻢ ﺣﺰﻡ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺼﻐﻴﺮ ﻓﻲ ﻣﻠﻒ ‪ JAR‬ﺃﻭ ‪ XAP‬ﺃﻭ ‪ ،SWF‬ﻓﻴﻤﻜﻨﻚ ﻓﻚ ﺿﻐﻄﻪ‬


‫ﺑﺎﺳﺘﺨﺪﺍﻡﻗﺎﺭﺉ ﺃﺭﺷﻴﻒ ﻗﻴﺎﺳﻲ ﻣﺜﻞ ‪ WinRar‬ﺃﻭ ‪.WinZip‬‬
‫‪3.3.2.5‬ﻣﺮﺍﺟﻌﺔ ﺍﻟﻜﻮﺩ ﺍﻟﻤﺼﺪﺭ ﺫﻱ ﺍﻟﺼﻠﺔ )ﺑﺪءﺍً ﻣﻦ ﺗﻨﻔﻴﺬ‬
‫ﺍﻟﻄﺮﻳﻘﺔﺍﻟﺘﻲ ﺗﻘﻮﻡ ﺑﺈﺭﺟﺎﻉ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﻌﺘﻤﺔ( ﻟﻔﻬﻢ ﺍﻟﻤﻌﺎﻟﺠﺔ ﺍﻟﺘﻲ ﻳﺘﻢ ﺇﺟﺮﺍﺅﻫﺎ‪.‬‬

‫‪3.3.2.6‬ﺗﺤﺪﻳﺪ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺼﻐﻴﺮ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﺃﻱ ﻃﺮﻕ ﻋﺎﻣﺔ ﻳﻤﻜﻦ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻹﺟﺮﺍء‬
‫ﺍﻟﺘﻌﺘﻴﻢﺍﻟﻤﻨﺎﺳﺐ ﻋﻠﻰ ﺍﻟﻤﺪﺧﻼﺕ ﺍﻟﺘﻌﺴﻔﻴﺔ‪.‬‬
‫‪٣.٣.٢.٧‬ﺇﺫﺍ ﻟﻢ ﻳﻜﻦ ﻛﺬﻟﻚ‪ ،‬ﻓﻌﺪﻝّ ﻣﺼﺪﺭ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺼﻐﻴﺮ ﻟﺘﺤﻴﻴﺪ ﺃﻱ ﻋﻤﻠﻴﺔ ﺗﺤﻘﻖ ﺗﺠُﺮﻳﻬﺎ ﺃﻭ‬
‫ﻟﻠﺴﻤﺎﺡﻟﻚ ﺑﺈﺧﻔﺎء ﺃﻱ ﺇﺩﺧﺎﻝ ﻋﺸﻮﺍﺉﻲ‪ .‬ﻳﻤﻜﻨﻚ ﺑﻌﺪ ﺫﻟﻚ ﺇﻋﺎﺩﺓ ﺗﺠﻤﻴﻊ ﺍﻟﻤﺼﺪﺭ ﺇﻟﻰ‬
‫ﺻﻴﻐﺔﺍﻟﻤﻠﻒ ﺍﻷﺻﻠﻴﺔ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺃﺩﻭﺍﺕ ﺍﻟﺘﺠﻤﻴﻊ ﺍﻟﺘﻲ ﻳﻮﻓﺮﻫﺎ ﺍﻟﺒﺎﺉﻊ‪.‬‬

‫‪3.3.3‬ﺇﺭﻓﺎﻕ ﻣﺼﺤﺢ ﺍﻷﺧﻄﺎء‬


‫‪3.3.3.1‬ﺑﺎﻟﻨﺴﺒﺔ ﻟﺘﻄﺒﻴﻘﺎﺕ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ ﺍﻟﻜﺒﻴﺮﺓ‪ ،‬ﻏﺎﻟﺒﺎً ﻣﺎ ﻳﻜﻮﻥ ﻣﻦ ﺍﻟﺼﻌﺐ ﻟﻠﻐﺎﻳﺔ ﺗﻔﻜﻴﻚ‬
‫ﺍﻟﺘﻄﺒﻴﻖﺑﺄﻛﻤﻠﻪ ﻭﺗﻌﺪﻳﻠﻪ ﻭﺇﻋﺎﺩﺓ ﺗﻌﺒﺉﺘﻪ ﺩﻭﻥ‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪804‬‬

‫ﻣﻮﺍﺟﻬﺔﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻷﺧﻄﺎء‪ .‬ﻓﻲ ﻫﺬﻩ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ‪ ،‬ﻋﺎﺩﺓ ًﻣﺎ ﻳﻜﻮﻥ ﺭﺑﻂ ﻣﺼﺤﺢ ﺃﺧﻄﺎء‬
‫ﻭﻗﺖﺍﻟﺘﺸﻐﻴﻞ ﺑﺎﻟﻌﻤﻠﻴﺔ ﺃﺳﺮﻉ‪ .‬ﻳﻘﻮﻡ ‪ JavaSnoop‬ﺑﺬﻟﻚ ﺑﻜﻔﺎءﺓ ﻋﺎﻟﻴﺔ ﻣﻊ ‪Spy‬‬
‫‪ Java. Silverlight‬ﺃﺩﺍﺓ ﻣﺠﺎﻧﻴﺔ ﺗﺘﻴﺢ ﻣﺮﺍﻗﺒﺔ ﻋﻤﻼء ‪ Silverlight‬ﻭﻗﺖ ﺍﻟﺘﺸﻐﻴﻞ‪.‬‬

‫‪3.3.3.2‬ﺣﺪﺩ ﺍﻟﻮﻇﺎﺉﻒ ﻭﺍﻟﻘﻴﻢ ﺍﻟﺮﺉﻴﺴﻴﺔ ﺍﻟﺘﻲ ﻳﺴﺘﺨﺪﻣﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ ﻹﺩﺍﺭﺓ ﻣﻨﻄﻖ ﺍﻷﻋﻤﺎﻝ‬
‫ﺍﻟﻤﺘﻌﻠﻖﺑﺎﻷﻣﺎﻥ‪ ،‬ﻭﺿﻊ ﻧﻘﺎﻁ ﺗﻮﻗﻒ ﻋﻨﺪ ﺍﺳﺘﺪﻋﺎء ﺍﻟﻮﻇﻴﻔﺔ ﺍﻟﻤﺴﺘﻬﺪﻓﺔ‪ .‬ﻋﺪﻝّ ﺍﻟﻮﺳﺎﺉﻂ‬
‫ﺃﻭﻗﻴﻤﺔ ﺍﻹﺭﺟﺎﻉ ﺣﺴﺐ ﺍﻟﺤﺎﺟﺔ ﻟﺘﺠﺎﻭﺯ ﺍﻷﻣﺎﻥ‪.‬‬

‫‪3.3.4‬ﺍﺧﺘﺒﺎﺭ ﻋﻨﺎﺻﺮ ﺗﺤﻜﻢ ‪ActiveX‬‬

‫‪3.3.4.1‬ﺣﺪﺩ ﺃﻱ ﻋﻨﺎﺻﺮ ﺗﺤﻜﻢ ‪ ActiveX‬ﻳﺴﺘﺨﺪﻣﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ‪ .‬ﺍﺑﺤﺚ ﻋﻦ ﺃﻱ ‪.‬ﺳﻴﺎﺭﺓ ﺃﺟﺮﺓﺃﻧﻮﺍﻉ‬


‫ﺍﻟﻤﻠﻔﺎﺕﺍﻟﻤﻄﻠﻮﺑﺔ ﻋﺒﺮ ﻭﻛﻴﻞ ﺍﻻﻋﺘﺮﺍﺽ‪ ،‬ﺃﻭ ﺍﺑﺤﺚ ﻋﻦ ﻋﻼﻣﺎﺕ ﺍﻟﻜﺎﺉﻨﺎﺕ ﺿﻤﻦ ﻛﻮﺩ‬
‫ﻣﺼﺪﺭ‪ HTML‬ﻟﺼﻔﺤﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪:‬‬

‫>ﺍﻟﻬﺪﻑ‬
‫ﻣﻌﺮﻑﺍﻟﻔﺉﺔ = "ﻣﻌﺮﻑّ ﺍﻟﻔﺉﺔ‪"4F878398-E58A-11D3-BEE9-00C04FA0D6BA :‬‬
‫ﻗﺎﻋﺪﺓﺍﻟﻜﻮﺩ = "‪ "https://wahh app.com/scripts/input.cab‬ﻣﻌﺮﻑ =‬
‫"‪<"TheAxControl‬‬
‫>‪/‬ﺍﻟﻬﺪﻑ<‬

‫‪3.3.4.2‬ﻋﺎﺩﺓ ًﻣﺎ ﻳﻜﻮﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺇﻓﺴﺎﺩ ﺃﻱ ﻋﻤﻠﻴﺔ ﺗﺤﻘﻖ ﻣﻦ ﺻﺤﺔ ﺍﻟﻤﺪﺧﻼﺕ ﺗﺠُﺮﻯ ﺩﺍﺧﻞ‬
‫ﻋﻨﺼﺮﺗﺤﻜﻢ ‪ ActiveX‬ﻋﻦ ﻃﺮﻳﻖ ﺭﺑﻂ ﻣﺼﺤﺢ ﺃﺧﻄﺎء ﺑﺎﻟﻌﻤﻠﻴﺔ ﻭﺗﻌﺪﻳﻞ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺘﻲ ﺗﺘﻢ‬
‫ﻣﻌﺎﻟﺠﺘﻬﺎﻣﺒﺎﺷﺮﺓ ًﺃﻭ ﺗﻐﻴﻴﺮ ﻣﺴﺎﺭ ﺗﻨﻔﻴﺬ ﺍﻟﺒﺮﻧﺎﻣﺞ‪ .‬ﺭﺍﺟﻊ ﺍﻟﻔﺼﻞ ‪ 5‬ﻟﻤﺰﻳﺪ ﻣﻦ ﺍﻟﺘﻔﺎﺻﻴﻞ‬
‫ﺣﻮﻝﻫﺬﺍ ﺍﻟﻨﻮﻉ ﻣﻦ ﺍﻟﻬﺠﻤﺎﺕ‪.‬‬
‫‪٣.٣.٤.٣‬ﻏﺎﻟﺒﺎً ﻣﺎ ﻳﻤُﻜﻦ ﺗﺨﻤﻴﻦ ﻏﺮﺽ ﺍﻟﻄﺮﻕ ﺍﻟﻤﺨﺘﻠﻔﺔ ﺍﻟﺘﻲ ﻳﺼُﺪﺭّﻫﺎ ﻋﻨﺼﺮ ﺗﺤﻜﻢ ‪ ActiveX‬ﺑﻨﺎء ً‬
‫ﻋﻠﻰﺃﺳﻤﺎﺉﻬﺎ ﻭﺍﻟﻤﻌﻠﻤﺎﺕ ﺍﻟﻤﻤُﺮﺭّﺓ ﺇﻟﻴﻬﺎ‪ .‬ﺍﺳﺘﺨﺪﻡ ﺃﺩﺍﺓ ‪ COMRaider‬ﻹﺣﺼﺎء ﺍﻟﻄﺮﻕ‬
‫ﺍﻟﺘﻲﻳﺼُﺪﺭّﻫﺎ ﻋﻨﺼﺮ ﺍﻟﺘﺤﻜﻢ‪ .‬ﺍﺧﺘﺒﺮ ﺇﻣﻜﺎﻧﻴﺔ ﺍﻟﺘﻼﻋﺐ ﺑﺄﻱ ٍّﻣﻨﻬﺎ ﻟﻠﺘﺄﺛﻴﺮ ﻋﻠﻰ ﺳﻠﻮﻙ ﻋﻨﺼﺮ‬
‫ﺍﻟﺘﺤﻜﻢ‪،‬ﻭﺇﻟﻐﺎء ﺃﻱ ﺍﺧﺘﺒﺎﺭﺍﺕ ﺗﺤﻘﻖ ﻳﻨُﻔﺬّﻫﺎ‪.‬‬

‫‪3.3.4.4‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﻐﺮﺽ ﻣﻦ ﺍﻟﺘﺤﻜﻢ ﻫﻮ ﺟﻤﻊ ﺃﻭ ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﻣﻌﻠﻮﻣﺎﺕ ﻣﻌﻴﻨﺔ ﺣﻮﻝ‬


‫ﺑﺎﻟﻨﺴﺒﺔﻟﺠﻬﺎﺯ ﺍﻟﻌﻤﻴﻞ‪ ،‬ﺍﺳﺘﺨﺪﻡ ﺃﺩﺍﺗﻲ ‪ Filemon‬ﻭ‪ Regmon‬ﻟﻤﺮﺍﻗﺒﺔ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﺍﻟﺘﻲ‬
‫ﻳﺠﻤﻌﻬﺎﻋﻨﺼﺮ ﺍﻟﺘﺤﻜﻢ‪ .‬ﻏﺎﻟﺒﺎً ﻣﺎ ﻳﻜﻮﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺇﻧﺸﺎء ﻋﻨﺎﺻﺮ ﻣﻨﺎﺳﺒﺔ ﺩﺍﺧﻞ ﺳﺠﻞ‬
‫ﺍﻟﻨﻈﺎﻡﻭﻧﻈﺎﻡ ﺍﻟﻤﻠﻔﺎﺕ ﻹﺻﻼﺡ ﺍﻟﻤﺪﺧﻼﺕ ﺍﻟﺘﻲ ﻳﺴﺘﺨﺪﻣﻬﺎ ﻋﻨﺼﺮ ﺍﻟﺘﺤﻜﻢ‪ ،‬ﻭﺑﺎﻟﺘﺎﻟﻲ ﺍﻟﺘﺄﺛﻴﺮ‬
‫ﻋﻠﻰﺳﻠﻮﻛﻪ‪.‬‬
‫‪3.3.4.5‬ﺍﺧﺘﺒﺮ ﻋﻨﺎﺻﺮ ﺗﺤﻜﻢ ‪ ActiveX‬ﺑﺤﺜﺎً ﻋﻦ ﺛﻐﺮﺍﺕ ﺃﻣﻨﻴﺔ ﻳﻤُﻜﻦ ﺍﺳﺘﻐﻼﻟﻬﺎ ﻟﻤﻬﺎﺟﻤﺔ‬
‫ﻣﺴﺘﺨﺪﻣﻴﻦﺁﺧﺮﻳﻦ ﻟﻠﺘﻄﺒﻴﻖ‪ .‬ﻳﻤﻜﻨﻚ ﺗﻌﺪﻳﻞ ‪ HTML‬ﺍﻟﻤﺴﺘﺨﺪﻡ ﻻﺳﺘﺪﻋﺎء ﻋﻨﺼﺮ ﺗﺤﻜﻢ‬
‫ﻟﺘﻤﺮﻳﺮﺑﻴﺎﻧﺎﺕ ﻋﺸﻮﺍﺉﻴﺔ ﺇﻟﻰ ﺃﺳﺎﻟﻴﺒﻪ ﻭﻣﺮﺍﻗﺒﺔ ﺍﻟﻨﺘﺎﺉﺞ‪ .‬ﺍﺑﺤﺚ ﻋﻦ ﺃﺳﺎﻟﻴﺐ ﺫﺍﺕ ﺃﺳﻤﺎء‬
‫ﺗﺒﺪﻭﺧﻄﻴﺮﺓ‪ ،‬ﻣﺜﻞ‪LaunchExe.‬ﻳﻤﻜﻨﻚ ﺃﻳﻀﺎً ﺍﺳﺘﺨﺪﺍﻡ ‪ COMRaider‬ﻹﺟﺮﺍء ﺑﻌﺾ‬
‫ﺍﺧﺘﺒﺎﺭﺍﺕ‪ fuzz‬ﺍﻷﺳﺎﺳﻴﺔ ﻟﻌﻨﺎﺻﺮ ﺗﺤﻜﻢ ‪ ActiveX‬ﻟﺘﺤﺪﻳﺪ ﺍﻟﻌﻴﻮﺏ ﻣﺜﻞ ﺗﺠﺎﻭﺯﺍﺕ ﺍﻟﻤﺨﺰﻥ‬
‫ﺍﻟﻤﺆﻗﺖ‪.‬‬
‫‪805‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫ﺍﺧﺘﺒﺎﺭﺁﻟﻴﺔ ﺍﻟﻤﺼﺎﺩﻗﺔ‬ ‫‪4‬‬

‫‪.4.1‬ﻓﻬﻢ ﺍﻵﻟﻴﺔ‬

‫ﺍﻟﻤﺼﺎﺩﻗﺔ‬ ‫ﻣﻌﺎﻟﺠﺔﺑﻴﺎﻧﺎﺕ ﺍﻻﻋﺘﻤﺎﺩ‬ ‫ﻭﻇﺎﺉﻒﺧﺎﺻﺔ‬ ‫ﻫﺠﻤﺎﺕﺍﻟﺒﻴﺎﻧﺎﺕ‬


‫ﻣﻨﻄﻖ‬

‫‪.4.13.1‬ﺍﺧﺘﺒﺎﺭ ﻟـ‬ ‫‪.4.8‬ﺍﺧﺘﺒﺎﺭ ﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ‬ ‫‪.4.5‬ﺣﺴﺎﺏ ﺍﺧﺘﺒﺎﺭﻱ‬ ‫‪.4.2‬ﺍﺧﺘﺒﺎﺭ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‬
‫ﻣﻨﻄﻖﺍﻟﻔﺸﻞ ﺍﻟﻤﻔﺘﻮﺡ‬ ‫ﺍﻟﺘﻔﺮﺩ‬ ‫ﺍﺳﺘﻌﺎﺩﺓ‬ ‫ﺟﻮﺩﺓ‬

‫‪.4.13.2‬ﺍﺧﺘﺒﺎﺭ‬ ‫‪.4.3‬ﺍﺧﺘﺒﺎﺭ ﻝ‬
‫‪.4.9‬ﺷﻬﺎﺩﺓ ﺍﻻﺧﺘﺒﺎﺭ‬ ‫‪.4.6‬ﺍﺧﺘﺒﺎﺭ "ﺗﺬﻛﺮ‬
‫ﻣﺘﻌﺪﺩﺍﻟﻤﺮﺍﺣﻞ‬ ‫ﺍﺳﻢﺍﻟﻤﺴﺘﺨﺪﻡ‬
‫ﺍﻟﻘﺪﺭﺓﻋﻠﻰ ﺍﻟﺘﻨﺒﺆ‬ ‫ﺃﻧﺎ"‬
‫ﺍﻟﻌﻤﻠﻴﺎﺕ‬ ‫ﺗﻌﺪﺍﺩ‬

‫‪.4.7‬ﺍﻻﺧﺘﺒﺎﺭ‬
‫‪.4.10‬ﺗﺤﻘﻖ ﻣﻦ‬ ‫‪.4.4‬ﺍﺧﺘﺒﺎﺭ ﻟـ‬
‫ﺍﻟﺘﻤﺜﻴﻞ‬
‫ﺍﻧﺘﻘﺎﻝﻏﻴﺮ ﺁﻣﻦ‬ ‫ﺗﺨﻤﻴﻦﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‬
‫ﺍﻟﻮﻇﺎﺉﻒ‬

‫‪.4.11‬ﺗﺤﻘﻖ ﻣﻦ‬
‫ﺗﻮﺯﻳﻊﻏﻴﺮ ﺁﻣﻦ‬

‫‪.4.12‬ﺗﺤﻘﻖ ﻣﻦ‬
‫ﺗﺨﺰﻳﻦﻏﻴﺮ ﺁﻣﻦ‬

‫‪.4.14‬ﺍﺳﺘﻐﻼﻝ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ‬

‫ﺍﻟﺸﻜﻞ‪:5-21‬ﺍﺧﺘﺒﺎﺭ ﺁﻟﻴﺔ ﺍﻟﻤﺼﺎﺩﻗﺔ‬

‫‪4.1‬ﻓﻬﻢ ﺍﻵﻟﻴﺔ‬
‫‪4.1.1‬ﺗﺤﺪﻳﺪ ﺗﻘﻨﻴﺎﺕ ﺍﻟﻤﺼﺎﺩﻗﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﺔ )ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﺍﻟﻨﻤﺎﺫﺝ‪ ،‬ﺃﻭ ﺍﻟﺸﻬﺎﺩﺍﺕ‪ ،‬ﺃﻭ‬
‫ﺍﻟﻌﻮﺍﻣﻞﺍﻟﻤﺘﻌﺪﺩﺓ(‪.‬‬
‫‪4.1.2‬ﺣﺪﺩ ﻣﻮﻗﻊ ﺟﻤﻴﻊ ﺍﻟﻮﻇﺎﺉﻒ ﺍﻟﻤﺘﻌﻠﻘﺔ ﺑﺎﻟﻤﺼﺎﺩﻗﺔ )ﺑﻤﺎ ﻓﻲ ﺫﻟﻚ ﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ‪،‬‬
‫ﻭﺍﻟﺘﺴﺠﻴﻞ‪،‬ﻭﺍﺳﺘﻌﺎﺩﺓ ﺍﻟﺤﺴﺎﺏ‪ ،‬ﻭﻣﺎ ﺇﻟﻰ ﺫﻟﻚ(‪.‬‬
‫‪4.1.3‬ﺇﺫﺍ ﻟﻢ ﻳﻨﻔﺬ ﺍﻟﺘﻄﺒﻴﻖ ﺁﻟﻴﺔ ﺍﻟﺘﺴﺠﻴﻞ ﺍﻟﺬﺍﺗﻲ ﺍﻵﻟﻴﺔ‪ ،‬ﻓﺤﺪﺩ ﻣﺎ ﺇﺫﺍ ﻛﺎﻧﺖ ﻫﻨﺎﻙ ﺃﻱ ﻭﺳﺎﺉﻞ‬
‫ﺃﺧﺮﻯﻟﻠﺤﺼﻮﻝ ﻋﻠﻰ ﻋﺪﺓ ﺣﺴﺎﺑﺎﺕ ﻣﺴﺘﺨﺪﻡ‪.‬‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪806‬‬

‫‪4.2‬ﺍﺧﺘﺒﺎﺭ ﺟﻮﺩﺓ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‬


‫‪4.2.1‬ﻗﻢ ﺑﻤﺮﺍﺟﻌﺔ ﺍﻟﻄﻠﺐ ﺑﺤﺜﺎً ﻋﻦ ﺃﻱ ﻭﺻﻒ ﻟﻘﻮﺍﻋﺪ ﺍﻟﺠﻮﺩﺓ ﺍﻟﺪﻧﻴﺎ ﺍﻟﻤﻄﺒﻘﺔ ﻋﻠﻰ ﻛﻠﻤﺎﺕ ﻣﺮﻭﺭ‬
‫ﺍﻟﻤﺴﺘﺨﺪﻡ‪.‬‬
‫‪4.2.2‬ﻣﺤﺎﻭﻟﺔ ﺗﻌﻴﻴﻦ ﺃﻧﻮﺍﻉ ﻣﺨﺘﻠﻔﺔ ﻣﻦ ﻛﻠﻤﺎﺕ ﺍﻟﻤﺮﻭﺭ ﺍﻟﻀﻌﻴﻔﺔ‪ ،‬ﺑﺎﺳﺘﺨﺪﺍﻡ ﺃﻱ ﻭﻇﺎﺉﻒ‬
‫ﺍﻟﺘﺴﺠﻴﻞﺍﻟﺬﺍﺗﻲ ﺃﻭ ﺗﻐﻴﻴﺮ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ ﻟﺘﺤﺪﻳﺪ ﺍﻟﻘﻮﺍﻋﺪ ﺍﻟﺘﻲ ﻳﺘﻢ ﺗﻄﺒﻴﻘﻬﺎ ﻓﻌﻠﻴﺎً‪.‬‬
‫ﺣﺎﻭﻝﺍﺳﺘﺨﺪﺍﻡ ﻛﻠﻤﺎﺕ ﻣﺮﻭﺭ ﻗﺼﻴﺮﺓ‪ ،‬ﻭﺃﺣﺮﻑ ﺃﺑﺠﺪﻳﺔ ﻓﻘﻂ‪ ،‬ﻭﺃﺣﺮﻑ ﻣﻔﺮﺩﺓ ﻓﻘﻂ‪ ،‬ﻭﻛﻠﻤﺎﺕ‬
‫ﻣﻦﺍﻟﻘﺎﻣﻮﺱ‪ ،‬ﻭﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﺤﺎﻟﻲ‪.‬‬
‫‪٤.٢.٣‬ﺍﺧﺘﺒﺮ ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺻﺤﺔ ﺑﻴﺎﻧﺎﺕ ﺍﻻﻋﺘﻤﺎﺩ ﺑﺸﻜﻞ ﻏﻴﺮ ﻛﺎﻣﻞ‪ .‬ﺍﺧﺘﺮ ﻛﻠﻤﺔ ﻣﺮﻭﺭ ﻗﻮﻳﺔ ﻭﻣﻌﻘﺪﺓ )‬
‫ﻋﻠﻰﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ١٢ ،‬ﺣﺮﻓﺎً ﺑﺄﺣﺮﻑ ﻛﺒﻴﺮﺓ ﻭﺻﻐﻴﺮﺓ ﻭﺃﺭﻗﺎﻡ ﻭﺃﺣﺮﻑ ﻃﺒﺎﻋﻴﺔ ﻣﺨﺘﻠﻄﺔ(‪ .‬ﺣﺎﻭﻝ‬
‫ﺗﺴﺠﻴﻞﺍﻟﺪﺧﻮﻝ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺻﻴﻎ ﻣﺨﺘﻠﻔﺔ ﻣﻦ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ ﻫﺬﻩ‪ ،‬ﺑﺈﺯﺍﻟﺔ ﺍﻟﺤﺮﻑ ﺍﻷﺧﻴﺮ‪،‬‬
‫ﻭﺗﻐﻴﻴﺮﺣﺎﻟﺔ ﺍﻟﺤﺮﻑ‪ ،‬ﻭﺇﺯﺍﻟﺔ ﺃﻱ ﺃﺣﺮﻑ ﺧﺎﺻﺔ‪ .‬ﺇﺫﺍ ﻧﺠﺤﺖ ﺃﻱ ﻣﻦ ﻣﺤﺎﻭﻻﺕ ﺗﺴﺠﻴﻞ‬
‫ﺍﻟﺪﺧﻮﻝﻫﺬﻩ‪ ،‬ﻓﺘﺎﺑﻊ ﺍﻟﺘﺠﺮﺑﺔ ﺑﺸﻜﻞ ﻣﻨﻬﺠﻲ ﻟﺘﺤﺪﻳﺪ ﻋﻤﻠﻴﺔ ﺍﻟﺘﺤﻘﻖ ﺍﻟﺘﻲ ﻳﺘﻢ ﺇﺟﺮﺍﺅﻫﺎ‬
‫ﺑﺎﻟﻔﻌﻞ‪.‬‬

‫‪4.2.4‬ﺑﻌﺪ ﺗﺤﺪﻳﺪ ﺍﻟﺤﺪ ﺍﻷﺩﻧﻰ ﻟﺠﻮﺩﺓ ﻛﻠﻤﺎﺕ ﺍﻟﻤﺮﻭﺭ‪ ،‬ﻭﻣﺪﻯ ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺻﺤﺘﻬﺎ‪ ،‬ﺣﺪﺩ ﻧﻄﺎﻕ‬
‫ﺍﻟﻘﻴﻢﺍﻟﺘﻲ ﻳﺠﺐ ﺃﻥ ﻳﺴﺘﺨﺪﻣﻬﺎ ﻫﺠﻮﻡ ﺗﺨﻤﻴﻦ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ ﻟﺘﺤﻘﻴﻖ ﺍﺣﺘﻤﺎﻟﻴﺔ ﻧﺠﺎﺡ ﺟﻴﺪﺓ‪.‬‬
‫ﺣﺎﻭﻝﺗﺤﺪﻳﺪ ﺃﻱ ﺣﺴﺎﺑﺎﺕ ﻣﺪﻣﺠﺔ ﻗﺪ ﻻ ﺗﻜﻮﻥ ﺧﺎﺿﻌﺔ ﻟﻤﺘﻄﻠﺒﺎﺕ ﺗﻌﻘﻴﺪ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‬
‫ﺍﻟﻘﻴﺎﺳﻴﺔ‪.‬‬

‫‪4.3‬ﺍﺧﺘﺒﺎﺭ ﺗﻌﺪﺍﺩ ﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ‬


‫‪4.3.1‬ﺗﺤﺪﻳﺪ ﻛﻞ ﻣﻮﻗﻊ ﺩﺍﺧﻞ ﻭﻇﺎﺉﻒ ﺍﻟﻤﺼﺎﺩﻗﺔ ﺍﻟﻤﺨﺘﻠﻔﺔ ﺣﻴﺚ ﻳﺘﻢ ﺇﺭﺳﺎﻝ ﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ‪،‬‬
‫ﺑﻤﺎﻓﻲ ﺫﻟﻚ ﻋﺒﺮ ﺣﻘﻞ ﺍﻹﺩﺧﺎﻝ ﻋﻠﻰ ﺍﻟﺸﺎﺷﺔ‪،‬‬
‫ﺣﻘﻞﻧﻤﻮﺫﺝ ﻣﺨﻔﻲ‪ ،‬ﺃﻭ ﻣﻠﻒ ﺗﻌﺮﻳﻒ ﺍﺭﺗﺒﺎﻁ‪ .‬ﺗﺸﻤﻞ ﺍﻟﻤﻮﺍﻗﻊ ﺍﻟﺸﺎﺉﻌﺔ ﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ‬
‫ﺍﻷﺳﺎﺳﻲ‪،‬ﻭﺍﻟﺘﺴﺠﻴﻞ ﺍﻟﺬﺍﺗﻲ‪ ،‬ﻭﺗﻐﻴﻴﺮ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‪ ،‬ﻭﺗﺴﺠﻴﻞ ﺍﻟﺨﺮﻭﺝ‪ ،‬ﻭﺍﺳﺘﻌﺎﺩﺓ ﺍﻟﺤﺴﺎﺏ‪.‬‬
‫‪4.3.2‬ﻟﻜﻞ ﻣﻮﻗﻊ‪ ،‬ﺃﺭﺳﻞ ﻃﻠﺒﻴﻦ‪ ،‬ﻳﺤﺘﻮﻳﺎﻥ ﻋﻠﻰ ﺍﺳﻢ ﻣﺴﺘﺨﺪﻡ ﺻﺎﻟﺢ ﻭﺁﺧﺮ ﻏﻴﺮ ﺻﺎﻟﺢ‪ .‬ﺭﺍﺟﻊ ﺟﻤﻴﻊ‬
‫ﺗﻔﺎﺻﻴﻞﺍﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺨﺎﺩﻡ ﻟﻜﻞ ﺯﻭﺝ ﻣﻦ ﺍﻟﻄﻠﺒﺎﺕ‪ ،‬ﺑﻤﺎ ﻓﻲ ﺫﻟﻚ ﺭﻣﺰ ﺣﺎﻟﺔ ‪ ،HTTP‬ﻭﺃﻱ‬
‫ﻋﻤﻠﻴﺎﺕﺇﻋﺎﺩﺓ ﺗﻮﺟﻴﻪ‪ ،‬ﻭﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﺍﻟﻤﻌﺮﻭﺿﺔ ﻋﻠﻰ ﺍﻟﺸﺎﺷﺔ‪ ،‬ﻭﺃﻱ ﺍﺧﺘﻼﻓﺎﺕ ﻣﺨﻔﻴﺔ ﻓﻲ‬
‫ﻣﺼﺪﺭﺻﻔﺤﺔ ‪ ،HTML‬ﻭﺍﻟﻮﻗﺖ ﺍﻟﺬﻱ ﻳﺴﺘﻐﺮﻗﻪ ﺍﻟﺨﺎﺩﻡ ﻟﻼﺳﺘﺠﺎﺑﺔ‪ .‬ﻳﺮُﺟﻰ ﻣﻼﺣﻈﺔ ﺃﻥ‬
‫ﺑﻌﺾﺍﻻﺧﺘﻼﻓﺎﺕ ﻗﺪ ﺗﻜﻮﻥ ﻃﻔﻴﻔﺔ )ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﻗﺪ ﺗﺤﺘﻮﻱ ﺭﺳﺎﻟﺔ ﺍﻟﺨﻄﺄ ﻧﻔﺴﻬﺎ‬
‫ﻋﻠﻰﺍﺧﺘﻼﻓﺎﺕ ﻣﻄﺒﻌﻴﺔ ﻃﻔﻴﻔﺔ(‪ .‬ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﻭﻇﻴﻔﺔ ﺍﻟﺴﺠﻞ ﻓﻲ ﻭﻛﻴﻞ ﺍﻻﻋﺘﺮﺍﺽ‬
‫ﻟﻤﺮﺍﺟﻌﺔﺟﻤﻴﻊ ﺣﺮﻛﺔ ﺍﻟﻤﺮﻭﺭ ﻣﻦ ﻭﺇﻟﻰ ﺍﻟﺨﺎﺩﻡ‪ .‬ﻳﻮﻓﺮ ‪ WebScarab‬ﻭﻇﻴﻔﺔ ﻟﻤﻘﺎﺭﻧﺔ‬
‫ﺍﺳﺘﺠﺎﺑﺘﻴﻦﻟﺘﺴﻠﻴﻂ ﺍﻟﻀﻮء ﺑﺴﺮﻋﺔ ﻋﻠﻰ ﺃﻱ ﺍﺧﺘﻼﻓﺎﺕ ﺑﻴﻨﻬﻤﺎ‪.‬‬

‫‪4.3.3‬ﺇﺫﺍ ﻻﺣﻈﺖ ﺃﻱ ﺍﺧﺘﻼﻓﺎﺕ ﺑﻴﻦ ﺍﻻﺳﺘﺠﺎﺑﺎﺕ ﺣﻴﺚ ﺗﻢ ﺗﻘﺪﻳﻢ ﺍﺳﻢ ﻣﺴﺘﺨﺪﻡ ﺻﺎﻟﺢ ﻭﻏﻴﺮ‬
‫ﺻﺎﻟﺢ‪،‬ﻓﻜﺮﺭ ﺍﻻﺧﺘﺒﺎﺭ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺯﻭﺝ ﻣﺨﺘﻠﻒ ﻣﻦ ﺍﻟﻘﻴﻢ ﻭﺗﺄﻛﺪ ﻣﻦ ﻭﺟﻮﺩ ﺍﺧﺘﻼﻑ ﻣﻨﻬﺠﻲ‬
‫ﻳﻤﻜﻦﺃﻥ ﻳﻮﻓﺮ ﺃﺳﺎﺳﺎً ﻹﺣﺼﺎء ﺃﺳﻤﺎء ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺗﻠﻘﺎﺉﻴﺎً‪.‬‬
‫‪807‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫‪4.3.4‬ﺗﺤﻘﻖ ﻣﻦ ﺃﻱ ﻣﺼﺎﺩﺭ ﺃﺧﺮﻯ ﻟﺘﺴﺮﻳﺐ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﻭﺍﻟﺘﻲ ﻗﺪ ﺗﻤُﻜﻨّﻚ ﻣﻦ‬
‫ﺗﺠﻤﻴﻊﻗﺎﺉﻤﺔ ﺑﺄﺳﻤﺎء ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻟﺼﺤﻴﺤﺔ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﻭﻇﻴﻔﺔ ﺍﻟﺘﺴﺠﻴﻞ‪،‬‬
‫ﻭﻗﻮﺍﺉﻢﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻟﻤﺴﺠﻠﻴﻦ‪ ،‬ﻭﺍﻹﺷﺎﺭﺓ ﺍﻟﻤﺒﺎﺷﺮﺓ ﺇﻟﻰ ﺍﻷﺳﻤﺎء ﺃﻭ ﻋﻨﺎﻭﻳﻦ ﺍﻟﺒﺮﻳﺪ‬
‫ﺍﻹﻟﻜﺘﺮﻭﻧﻲﻓﻲ ﺗﻌﻠﻴﻘﺎﺕ ﺍﻟﻜﻮﺩ ﺍﻟﻤﺼﺪﺭﻱ‪.‬‬
‫‪4.3.5‬ﺣﺪﺩ ﺃﻱ ﻣﺼﺎﺩﻗﺔ ﻓﺮﻋﻴﺔ ﺗﻘﺒﻞ ﺍﺳﻢ ﻣﺴﺘﺨﺪﻡ‪ ،‬ﻭﺗﺄﻛﺪ ﻣﻦ ﺇﻣﻜﺎﻧﻴﺔ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻟﺘﻌﺪﺍﺩ ﺃﺳﻤﺎء‬
‫ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ‪.‬ﺍﻧﺘﺒﻪ ﺟﻴﺪﺍً ﻟﺼﻔﺤﺔ ﺍﻟﺘﺴﺠﻴﻞ ﺍﻟﺘﻲ ﺗﺴﻤﺢ ﺑﺘﺤﺪﻳﺪ ﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ‪.‬‬

‫‪4.4‬ﺍﺧﺘﺒﺎﺭ ﺍﻟﻤﺮﻭﻧﺔ ﻓﻲ ﻣﻮﺍﺟﻬﺔ ﺗﺨﻤﻴﻦ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‬


‫‪4.4.1‬ﺣﺪﺩ ﻛﻞ ﻣﻮﻗﻊ ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ ﺗﺮُﺳﻞ ﺇﻟﻴﻪ ﺑﻴﺎﻧﺎﺕ ﺍﻋﺘﻤﺎﺩ ﺍﻟﻤﺴﺘﺨﺪﻡ‪ .‬ﻋﺎﺩﺓ ًﻣﺎ ﻳﻜﻮﻥ‬
‫ﺍﻟﻤﻮﻗﻌﺎﻥﺍﻟﺮﺉﻴﺴﻴﺎﻥ ﻫﻤﺎ ﻭﻇﻴﻔﺔ ﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ ﺍﻟﺮﺉﻴﺴﻴﺔ ﻭﻭﻇﻴﻔﺔ ﺗﻐﻴﻴﺮ ﻛﻠﻤﺔ‬
‫ﺍﻟﻤﺮﻭﺭ‪.‬ﻋﺎﺩﺓ ًﻣﺎ ﺗﻜﻮﻥ ﺍﻟﻮﻇﻴﻔﺔ ﺍﻷﺧﻴﺮﺓ ﻫﺪﻓﺎً ﻣﻨﺎﺳﺒﺎً ﻟﻬﺠﻤﺎﺕ ﺗﺨﻤﻴﻦ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ ﻓﻘﻂ‬
‫ﺇﺫﺍﺃﻣﻜﻦ ﺇﺩﺧﺎﻝ ﺍﺳﻢ ﻣﺴﺘﺨﺪﻡ ﻋﺸﻮﺍﺉﻲ‪.‬‬

‫‪4.4.2‬ﻓﻲ ﻛﻞ ﻣﻮﻗﻊ‪ ،‬ﺑﺎﺳﺘﺨﺪﺍﻡ ﺣﺴﺎﺏ ﺗﺘﺤﻜﻢ ﻓﻴﻪ‪ ،‬ﺃﺭﺳﻞ ﻳﺪﻭﻳﺎً ﻋﺪﺓ ﻃﻠﺒﺎﺕ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺍﺳﻢ‬
‫ﻣﺴﺘﺨﺪﻡﺻﺤﻴﺢ ﻭﺑﻴﺎﻧﺎﺕ ﺍﻋﺘﻤﺎﺩ ﺃﺧﺮﻯ ﻏﻴﺮ ﺻﺎﻟﺤﺔ‪ .‬ﺭﺍﻗﺐ ﺍﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ ﻟﺘﺤﺪﻳﺪ‬
‫ﺃﻱﺍﺧﺘﻼﻓﺎﺕ‪ .‬ﺑﻌﺪ ﺣﻮﺍﻟﻲ ‪ 10‬ﻣﺤﺎﻭﻻﺕ ﺗﺴﺠﻴﻞ ﺩﺧﻮﻝ ﻓﺎﺷﻠﺔ‪ ،‬ﺇﺫﺍ ﻟﻢ ﻳﺮُﺳﻞ ﺍﻟﺘﻄﺒﻴﻖ‬
‫ﺭﺳﺎﻟﺔﺗﻔﻴﺪ ﺑﺈﻏﻼﻕ ﺍﻟﺤﺴﺎﺏ‪ ،‬ﻓﺄﺭﺳﻞ ﻃﻠﺒﺎً ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﺑﻴﺎﻧﺎﺕ ﺍﻋﺘﻤﺎﺩ ﺻﺎﻟﺤﺔ‪ .‬ﻓﻲ ﺣﺎﻝ‬
‫ﻧﺠﺎﺡﻫﺬﺍ ﺍﻟﻄﻠﺐ‪ ،‬ﻓﻤﻦ ﺍﻟﻤﺮﺟﺢ ﺃﻥ ﺳﻴﺎﺳﺔ ﺇﻏﻼﻕ ﺍﻟﺤﺴﺎﺏ ﻏﻴﺮ ﺳﺎﺭﻳﺔ‪.‬‬

‫‪٤.٤.٣‬ﺇﺫﺍ ﻟﻢ ﺗﻜﻦ ﺗﺘﺤﻜﻢ ﻓﻲ ﺃﻱ ﺣﺴﺎﺑﺎﺕ‪ ،‬ﻓﺤﺎﻭﻝ ﺗﻌﺪﺍﺩ ﺃﻭ ﺗﺨﻤﻴﻦ ﺍﺳﻢ ﻣﺴﺘﺨﺪﻡ ﺻﺤﻴﺢ‪،‬‬
‫ﻭﻗﻤﺖﺑﻌﺪﺓ ﻃﻠﺒﺎﺕ ﻏﻴﺮ ﺻﺤﻴﺤﺔ ﺑﺎﺳﺘﺨﺪﺍﻡ ﻫﺬﺍ ﺍﻟﺘﺨﻤﻴﻦ‪ ،‬ﻣﻊ ﻣﺮﺍﻗﺒﺔ ﺃﻱ ﺭﺳﺎﺉﻞ ﺧﻄﺄ‬
‫ﺗﺸﻴﺮﺇﻟﻰ ﻗﻔﻞ ﺍﻟﺤﺴﺎﺏ‪ .‬ﺑﺎﻟﻄﺒﻊ‪ ،‬ﻳﺠﺐ ﺃﻥ ﺗﻌﻠﻢ ﺃﻥ ﻫﺬﺍ ﺍﻻﺧﺘﺒﺎﺭ ﻗﺪ ﻳﺆﺩﻱ ﺇﻟﻰ ﺗﻌﻠﻴﻖ ﺃﻭ‬
‫ﺗﻌﻄﻴﻞﺣﺴﺎﺏ ﻣﺴﺘﺨﺪﻡ ﺁﺧﺮ‪.‬‬

‫‪4.5‬ﺍﺧﺘﺒﺎﺭ ﺃﻱ ﻭﻇﻴﻔﺔ ﺍﺳﺘﺮﺩﺍﺩ ﺍﻟﺤﺴﺎﺏ‬


‫‪4.5.1‬ﺗﺄﻛﺪ ﻣﻦ ﺃﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﻮﻓﺮ ﺃﻱ ﺇﻣﻜﺎﻧﻴﺔ ﺗﺘﻴﺢ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﺳﺘﻌﺎﺩﺓ ﺣﺴﺎﺑﺎﺗﻬﻢ ﻓﻲ ﺣﺎﻝ‬
‫ﻧﺴﻴﺎﻥﺑﻴﺎﻧﺎﺕ ﺍﻋﺘﻤﺎﺩﻫﻢ‪ .‬ﻳﺸُﺎﺭ ﺇﻟﻰ ﺫﻟﻚ ﻋﺎﺩﺓ ًﺑﺮﺍﺑﻂ "ﻧﺴﻴﺖ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ" ﺑﺠﻮﺍﺭ ﺧﺎﺻﻴﺔ‬
‫ﺗﺴﺠﻴﻞﺍﻟﺪﺧﻮﻝ ﺍﻟﺮﺉﻴﺴﻴﺔ‪.‬‬

‫‪4.5.2‬ﻗﻢ ﺑﺘﺤﺪﻳﺪ ﻛﻴﻔﻴﺔ ﻋﻤﻞ ﻭﻇﻴﻔﺔ ﺍﺳﺘﺮﺩﺍﺩ ﺍﻟﺤﺴﺎﺏ ﻣﻦ ﺧﻼﻝ ﺍﻟﻘﻴﺎﻡ ﺑﺠﻮﻟﺔ ﻛﺎﻣﻠﺔ ﻓﻲ ﻋﻤﻠﻴﺔ‬
‫ﺍﻻﺳﺘﺮﺩﺍﺩﺑﺎﺳﺘﺨﺪﺍﻡ ﺍﻟﺤﺴﺎﺏ ﺍﻟﺬﻱ ﺗﺘﺤﻜﻢ ﻓﻴﻪ‪.‬‬
‫‪4.5.3‬ﺇﺫﺍ ﻛﺎﻧﺖ ﺍﻟﻮﻇﻴﻔﺔ ﺗﺴﺘﺨﺪﻡ ﺗﺤﺪﻳﺎً ﻣﺜﻞ ﺳﺆﺍﻝ ﺳﺮﻱ‪ ،‬ﻓﺤﺪﺩ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﺑﺈﻣﻜﺎﻥ‬
‫ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦﺗﻌﻴﻴﻦ ﺃﻭ ﺗﺤﺪﻳﺪ ﺍﻟﺘﺤﺪﻱ ﺍﻟﺨﺎﺹ ﺑﻬﻢ ﺃﺛﻨﺎء ﺍﻟﺘﺴﺠﻴﻞ‪.‬‬
‫ﺇﺫﺍﻛﺎﻥ ﺍﻷﻣﺮ ﻛﺬﻟﻚ‪ ،‬ﻓﺎﺳﺘﺨﺪﻡ ﻗﺎﺉﻤﺔ ﺑﺄﺳﻤﺎء ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻟﻤﺬﻛﻮﺭﺓ ﺃﻭ ﺍﻟﺸﺎﺉﻌﺔ ﻟﺠﻤﻊ‬
‫ﻗﺎﺉﻤﺔﺑﺎﻟﺘﺤﺪﻳﺎﺕ‪ ،‬ﺛﻢ ﺭﺍﺟﻌﻬﺎ ﺑﺤﺜﺎً ﻋﻦ ﺃﻱ ﻣﻨﻬﺎ ﻳﺒﺪﻭ ﺃﻧﻪ ﻳﻤﻜﻦ ﺗﺨﻤﻴﻨﻪ ﺑﺴﻬﻮﻟﺔ‪.‬‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪808‬‬

‫‪4.5.4‬ﺇﺫﺍ ﻛﺎﻧﺖ ﺍﻟﻮﻇﻴﻔﺔ ﺗﺴﺘﺨﺪﻡ ﺗﻠﻤﻴﺢ ﻛﻠﻤﺔ ﻣﺮﻭﺭ‪ ،‬ﻓﻘﻢ ﺑﺈﺟﺮﺍء ﻧﻔﺲ ﺍﻟﺘﻤﺮﻳﻦ ﻟﺠﻤﻊ ﻗﺎﺉﻤﺔ ﻣﻦ‬
‫ﺗﻠﻤﻴﺤﺎﺕﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‪ ،‬ﻭﺗﺤﺪﻳﺪ ﺃﻱ ﻣﻨﻬﺎ ﻳﺒﺪﻭ ﺃﻧﻪ ﻳﻤﻜﻦ ﺗﺨﻤﻴﻨﻪ ﺑﺴﻬﻮﻟﺔ‪.‬‬

‫‪4.5.5‬ﻗﻢ ﺑﺈﺟﺮﺍء ﻧﻔﺲ ﺍﻻﺧﺘﺒﺎﺭﺍﺕ ﻋﻠﻰ ﺃﻱ ﺗﺤﺪﻳﺎﺕ ﺍﺳﺘﺮﺩﺍﺩ ﺍﻟﺤﺴﺎﺏ ﺍﻟﺘﻲ ﺃﺟﺮﻳﺘﻬﺎ ﻓﻲ ﻭﻇﻴﻔﺔ‬
‫ﺗﺴﺠﻴﻞﺍﻟﺪﺧﻮﻝ ﺍﻟﺮﺉﻴﺴﻴﺔ ﻟﺘﻘﻴﻴﻢ ﺍﻟﻀﻌﻒ ﺃﻣﺎﻡ ﻫﺠﻤﺎﺕ ﺍﻟﺘﺨﻤﻴﻦ ﺍﻵﻟﻴﺔ‪.‬‬

‫‪4.5.6‬ﺇﺫﺍ ﻛﺎﻧﺖ ﺍﻟﻮﻇﻴﻔﺔ ﺗﺘﻄﻠﺐ ﺇﺭﺳﺎﻝ ﺑﺮﻳﺪ ﺇﻟﻜﺘﺮﻭﻧﻲ ﻟﻠﻤﺴﺘﺨﺪﻡ ﻹﻛﻤﺎﻝ ﻋﻤﻠﻴﺔ ﺍﻻﺳﺘﺮﺩﺍﺩ‪،‬‬
‫ﻓﺎﺑﺤﺚﻋﻦ ﺃﻱ ﻧﻘﺎﻁ ﺿﻌﻒ ﻗﺪ ﺗﻤُﻜﻨّﻚ ﻣﻦ ﺍﻟﺘﺤﻜﻢ ﻓﻲ ﺣﺴﺎﺑﺎﺕ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻵﺧﺮﻳﻦ‪.‬‬
‫ﺣﺪﺩّﺇﻣﻜﺎﻧﻴﺔ ﺍﻟﺘﺤﻜﻢ ﻓﻲ ﻋﻨﻮﺍﻥ ﺍﻟﺒﺮﻳﺪ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ ﺍﻟﻤﺮُﺳﻞَ ﺇﻟﻴﻪ‪ .‬ﺇﺫﺍ ﻛﺎﻧﺖ ﺍﻟﺮﺳﺎﻟﺔ ﺗﺤﺘﻮﻱ‬
‫ﻋﻠﻰﻋﻨﻮﺍﻥ ‪ URL‬ﻓﺮﻳﺪ ﻟﻼﺳﺘﺮﺩﺍﺩ‪ ،‬ﻓﺎﺣﺼﻞ ﻋﻠﻰ ﻋﺪﺩ ﻣﻦ ﺍﻟﺮﺳﺎﺉﻞ ﺑﺎﺳﺘﺨﺪﺍﻡ ﻋﻨﻮﺍﻥ ﺑﺮﻳﺪ‬
‫ﺇﻟﻜﺘﺮﻭﻧﻲﺗﺘﺤﻜﻢ ﻓﻴﻪ‪ ،‬ﻭﺣﺎﻭﻝ ﺗﺤﺪﻳﺪ ﺃﻱ ﺃﻧﻤﺎﻁ ﻗﺪ ﺗﻤُﻜﻨّﻚ ﻣﻦ ﺍﻟﺘﻨﺒﺆ ﺑﻌﻨﺎﻭﻳﻦ ‪URL‬‬
‫ﺍﻟﻤﺮُﺳﻠَﺔﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻵﺧﺮﻳﻦ‪ .‬ﻃﺒﻖّ ﺍﻟﻤﻨﻬﺠﻴﺔ ﺍﻟﻤﻮﺿﺤﺔ ﻓﻲ ﺍﻟﺨﻄﻮﺓ ‪ 5.3‬ﻟﺘﺤﺪﻳﺪ ﺃﻱ‬
‫ﺗﺴﻠﺴﻼﺕﻣﺘﻮﻗﻌﺔ‪.‬‬

‫‪4.6‬ﺍﺧﺘﺒﺎﺭ ﺃﻱ ﻭﻇﻴﻔﺔ ﺗﺬﻛﺮﻧﻲ‬


‫‪٤.٦.١‬ﺇﺫﺍ ﻛﺎﻧﺖ ﻭﻇﻴﻔﺔ ﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ ﺍﻟﺮﺉﻴﺴﻴﺔ ﺃﻭ ﻣﻨﻄﻘﻬﺎ ﺍﻟﺪﺍﻋﻢ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﻭﻇﻴﻔﺔ "ﺗﺬﻛﺮﻧﻲ"‬
‫‪،‬ﻓﻔﻌﻠّﻬﺎ ﻭﺭﺍﺟﻊ ﺁﺛﺎﺭﻫﺎ‪ .‬ﺇﺫﺍ ﻛﺎﻧﺖ ﻫﺬﻩ ﺍﻟﻮﻇﻴﻔﺔ ﺗﺴﻤﺢ ﻟﻠﻤﺴﺘﺨﺪﻡ ﺑﺘﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ ﻓﻲ‬
‫ﻣﻨﺎﺳﺒﺎﺕﻻﺣﻘﺔ ﺩﻭﻥ ﺇﺩﺧﺎﻝ ﺃﻱ ﺑﻴﺎﻧﺎﺕ ﺍﻋﺘﻤﺎﺩ‪ ،‬ﻓﻴﻨﺒﻐﻲ ﻋﻠﻴﻚ ﻣﺮﺍﺟﻌﺘﻬﺎ ﺑﺪﻗﺔ ﺑﺤﺜﺎً ﻋﻦ‬
‫ﺃﻱﺛﻐﺮﺍﺕ ﺃﻣﻨﻴﺔ‪.‬‬
‫‪4.6.2‬ﺍﻓﺤﺺ ﺑﺪﻗﺔ ﺟﻤﻴﻊ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﺍﻟﺪﺍﺉﻤﺔ ﺍﻟﻤﻔُﻌﻠّﺔ ﻋﻨﺪ ﺗﻔﻌﻴﻞ ﺧﺎﺻﻴﺔ "ﺗﺬﻛﺮﻧﻲ"‬
‫‪.‬ﺍﺑﺤﺚ ﻋﻦ ﺃﻱ ﺑﻴﺎﻧﺎﺕ ﺗﻌُﺮﻑّ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺻﺮﺍﺣﺔ ًﺃﻭ ﻳﺒﺪﻭ ﺃﻧﻬﺎ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﻣﻌُﺮﻑّ ﻣﺘُﻮﻗﻊ‬
‫ﻟﻪ‪.‬‬
‫‪4.6.3‬ﺣﺘﻰ ﻓﻲ ﺍﻟﺤﺎﻻﺕ ﺍﻟﺘﻲ ﺗﺒﺪﻭ ﻓﻴﻬﺎ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺨﺰﻧﺔ ﻣﺸﻔﺮﺓ ﺃﻭ ﻣﺸﻮﺷﺔ ﺑﺸﻜﻞ ﻛﺒﻴﺮ‪ ،‬ﺭﺍﺟﻊ‬
‫ﻫﺬﺍﺍﻷﻣﺮ ﺑﺪﻗﺔ‪ ،‬ﻭﻗﺎﺭﻥ ﻧﺘﺎﺉﺞ ﺗﺬﻛﺮ ﻋﺪﺓ ﺃﺳﻤﺎء ﻣﺴﺘﺨﺪﻣﻴﻦ ﻭ‪/‬ﺃﻭ ﻛﻠﻤﺎﺕ ﻣﺮﻭﺭ ﻣﺘﺸﺎﺑﻬﺔ‬
‫ﺟﺪﺍًﻟﺘﺤﺪﻳﺪ ﺃﻱ ﻓﺮﺹ ﻟﻬﻨﺪﺳﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻷﺻﻠﻴﺔ ﻋﻜﺴﻴﺎً‪ .‬ﻃﺒﻖّ ﺍﻟﻤﻨﻬﺠﻴﺔ ﺍﻟﻤﻮﺿﺤﺔ ﻓﻲ‬
‫ﺍﻟﺨﻄﻮﺓ‪ 5.2‬ﻟﺘﺤﺪﻳﺪ ﺃﻱ ﺑﻴﺎﻧﺎﺕ ﺫﺍﺕ ﻣﻌﻨﻰ‪.‬‬

‫‪4.6.4‬ﺑﻨﺎء ًﻋﻠﻰ ﻧﺘﺎﺉﺠﻚ‪ ،‬ﻗﻢ ﺑﺘﻌﺪﻳﻞ ﻣﺤﺘﻮﻳﺎﺕ ﻣﻠﻒ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﺍﻟﺨﺎﺹ ﺑﻚ ﺑﺎﻟﻄﺮﻕ‬
‫ﺍﻟﻤﻨﺎﺳﺒﺔﻓﻲ ﻣﺤﺎﻭﻟﺔ ﻟﻠﺘﻈﺎﻫﺮ ﺑﺄﻧﻚ ﻣﺴﺘﺨﺪﻣﻮﻥ ﺁﺧﺮﻭﻥ ﻟﻠﺘﻄﺒﻴﻖ‪.‬‬

‫‪4.7‬ﺍﺧﺘﺒﺎﺭ ﺃﻱ ﻭﻇﻴﻔﺔ ﺍﻧﺘﺤﺎﻝ‬


‫‪4.7.1‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﺃﻱ ﻭﻇﻴﻔﺔ ﺻﺮﻳﺤﺔ ﺗﺴﻤﺢ ﻟﻤﺴﺘﺨﺪﻡ ﻭﺍﺣﺪ ﺑﺎﻧﺘﺤﺎﻝ ﺷﺨﺼﻴﺔ‬
‫ﻣﺴﺘﺨﺪﻡﺁﺧﺮ‪ ،‬ﻓﻘﻢ ﺑﻤﺮﺍﺟﻌﺔ ﻫﺬﺍ ﻋﻦ ﻛﺜﺐ ﺑﺤﺜﺎً ﻋﻦ ﺃﻱ ﺛﻐﺮﺍﺕ ﺃﻣﻨﻴﺔ ﻗﺪ ﺗﻤﻜﻨﻚ ﻣﻦ‬
‫ﺍﻧﺘﺤﺎﻝﺷﺨﺼﻴﺔ ﻣﺴﺘﺨﺪﻣﻴﻦ ﻋﺸﻮﺍﺉﻴﻴﻦ ﺩﻭﻥ ﺍﻟﺤﺼﻮﻝ ﻋﻠﻰ ﺇﺫﻥ ﻣﻨﺎﺳﺐ‪.‬‬

‫‪4.7.2‬ﺍﺑﺤﺚ ﻋﻦ ﺃﻱ ﺑﻴﺎﻧﺎﺕ ﻣﻘُﺪﻣﺔ ﻣﻦ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺗﺴُﺘﺨﺪﻡ ﻟﺘﺤﺪﻳﺪ ﻫﺪﻑ ﺍﻧﺘﺤﺎﻝ ﺍﻟﺸﺨﺼﻴﺔ‪.‬‬


‫ﺣﺎﻭﻝﺍﻟﺘﻼﻋﺐ ﺑﻬﺎ ﻻﻧﺘﺤﺎﻝ ﺍﻟﺸﺨﺼﻴﺔ‪.‬‬
‫‪809‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫ﻣﺴﺘﺨﺪﻣﻴﻦﺁﺧﺮﻳﻦ‪ ،‬ﻭﺧﺎﺻﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻹﺩﺍﺭﻳﻴﻦ‪ ،‬ﺍﻟﺬﻳﻦ ﻗﺪ ﻳﻤﻜﻨّﻮﻧﻚ ﻣﻦ ﺗﺼﻌﻴﺪ‬


‫ﺍﻻﻣﺘﻴﺎﺯﺍﺕ‪.‬‬
‫‪4.7.3‬ﺇﺫﺍ ﻧﻔﺬﺕ َﺃﻱ ﻫﺠﻤﺎﺕ ﺗﺨﻤﻴﻦ ﻛﻠﻤﺎﺕ ﻣﺮﻭﺭ ﺁﻟﻴﺔ ﻋﻠﻰ ﺣﺴﺎﺑﺎﺕ ﻣﺴﺘﺨﺪﻣﻴﻦ ﺁﺧﺮﻳﻦ‪،‬‬
‫ﻓﺎﺑﺤﺚﻋﻦ ﺃﻱ ﺣﺴﺎﺑﺎﺕ ﻳﺒﺪﻭ ﺃﻧﻬﺎ ﺗﺴﺘﺨﺪﻡ ﺃﻛﺜﺮ ﻣﻦ ﻛﻠﻤﺔ ﻣﺮﻭﺭ ﺻﺤﻴﺤﺔ‪ ،‬ﺃﻭ ﺣﺴﺎﺑﺎﺕ‬
‫ﻣﺘﻌﺪﺩﺓﻳﺒﺪﻭ ﺃﻧﻬﺎ ﺗﺴﺘﺨﺪﻡ ﻧﻔﺲ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‪ .‬ﻗﺪ ﻳﺸﻴﺮ ﻫﺬﺍ ﺇﻟﻰ ﻭﺟﻮﺩ ﻛﻠﻤﺔ ﻣﺮﻭﺭ ﺧﻠﻔﻴﺔ‪،‬‬
‫ﻳﻤﻜﻦﻟﻠﻤﺴﺆﻭﻟﻴﻦ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻟﻠﻮﺻﻮﻝ ﺇﻟﻰ ﺍﻟﺘﻄﺒﻴﻖ ﻛﺄﻱ ﻣﺴﺘﺨﺪﻡ‪.‬‬

‫‪4.8‬ﺍﺧﺘﺒﺎﺭ ﺗﻔﺮﺩ ﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ‬


‫‪4.8.1‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﻭﻇﻴﻔﺔ ﺍﻟﺘﺴﺠﻴﻞ ﺍﻟﺬﺍﺗﻲ ﺍﻟﺘﻲ ﺗﺴﻤﺢ ﻟﻚ ﺑﺘﺤﺪﻳﺪ ﺍﺳﻢ‬
‫ﺍﻟﻤﺴﺘﺨﺪﻡﺍﻟﻤﻄﻠﻮﺏ‪ ،‬ﻓﺤﺎﻭﻝ ﺗﺴﺠﻴﻞ ﻧﻔﺲ ﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻣﺮﺗﻴﻦ ﺑﺎﺳﺘﺨﺪﺍﻡ ﻛﻠﻤﺎﺕ‬
‫ﻣﺮﻭﺭﻣﺨﺘﻠﻔﺔ‪.‬‬
‫‪4.8.2‬ﺇﺫﺍ ﻗﺎﻡ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺤﻈﺮ ﻣﺤﺎﻭﻟﺔ ﺍﻟﺘﺴﺠﻴﻞ ﺍﻟﺜﺎﻧﻴﺔ‪ ،‬ﻓﻴﻤﻜﻨﻚ ﺍﺳﺘﻐﻼﻝ ﻫﺬﺍ ﺍﻟﺴﻠﻮﻙ ﻹﺣﺼﺎء‬
‫ﺃﺳﻤﺎءﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻟﻤﺴﺠﻠﻴﻦ‪.‬‬
‫‪٤.٨.٣‬ﺇﺫﺍ ﺳﺠﻞّ ﺍﻟﺘﻄﺒﻴﻖ ﻛﻼ ﺍﻟﺤﺴﺎﺑﻴﻦ‪ ،‬ﻓﺘﺤﻘﻖ ﺃﻛﺜﺮ ﻟﺘﺤﺪﻳﺪ ﺳﻠﻮﻛﻪ ﻋﻨﺪ ﺣﺪﻭﺙ ﺗﻌﺎﺭﺽ ﺑﻴﻦ‬
‫ﺍﺳﻢﺍﻟﻤﺴﺘﺨﺪﻡ ﻭﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‪ .‬ﺣﺎﻭﻝ ﺗﻐﻴﻴﺮ ﻛﻠﻤﺔ ﻣﺮﻭﺭ ﺃﺣﺪ ﺍﻟﺤﺴﺎﺑﻴﻦ ﻟﺘﺘﻄﺎﺑﻖ ﻣﻊ ﻛﻠﻤﺔ‬
‫ﻣﺮﻭﺭﺍﻟﺤﺴﺎﺏ ﺍﻵﺧﺮ‪ .‬ﺣﺎﻭﻝ ﺃﻳﻀﺎً ﺗﺴﺠﻴﻞ ﺣﺴﺎﺑﻴﻦ ﺑﺎﺳﻤﻲ ﻣﺴﺘﺨﺪﻡ ﻭﻛﻠﻤﺔ ﻣﺮﻭﺭ‬
‫ﻣﺘﻄﺎﺑﻘﻴﻦ‪.‬‬

‫‪٤.٨.٤‬ﺇﺫﺍ ﻧﺒﻬﻚ ﺍﻟﺘﻄﺒﻴﻖ ﺃﻭ ﺃﺻﺪﺭ ﺧﻄﺄ ًﻋﻨﺪ ﺣﺪﻭﺙ ﺗﻌﺎﺭﺽ ﺑﻴﻦ ﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻭﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‪،‬‬
‫ﻓﻴﻤﻜﻨﻚﻋﻠﻰ ﺍﻷﺭﺟﺢ ﺍﺳﺘﻐﻼﻝ ﺫﻟﻚ ﻟﺘﻨﻔﻴﺬ ﻫﺠﻮﻡ ﺗﺨﻤﻴﻦ ﺁﻟﻲ ﻻﻛﺘﺸﺎﻑ ﻛﻠﻤﺔ ﻣﺮﻭﺭ‬
‫ﻣﺴﺘﺨﺪﻡﺁﺧﺮ‪ .‬ﺍﺳﺘﻬﺪﻑ ﺍﺳﻢ ﻣﺴﺘﺨﺪﻡ ﻣﻌُﺪﺩّﺍً ﺃﻭ ﻣﺨُﻤﻨّﺎً‪ ،‬ﻭﺣﺎﻭﻝ ﺇﻧﺸﺎء ﺣﺴﺎﺑﺎﺕ ﺗﺤﻤﻞ‬
‫ﻫﺬﺍﺍﻻﺳﻢ ﻭﻛﻠﻤﺎﺕ ﻣﺮﻭﺭ ﻣﺨﺘﻠﻔﺔ‪ .‬ﻋﻨﺪﻣﺎ ﻳﺮﻓﺾ ﺍﻟﺘﻄﺒﻴﻖ ﻛﻠﻤﺔ ﻣﺮﻭﺭ ﻣﻌﻴﻨﺔ‪ ،‬ﻓﻤﻦ‬
‫ﺍﻟﻤﺤﺘﻤﻞﺃﻧﻚ ﻭﺟﺪﺕ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ ﺍﻟﺤﺎﻟﻴﺔ ﻟﻠﺤﺴﺎﺏ ﺍﻟﻤﺴﺘﻬﺪﻑ‪.‬‬

‫‪٤.٨.٥‬ﺇﺫﺍ ﺑﺪﺍ ﺃﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺘﻘﺒﻞ ﺗﻌﺎﺭﺽ ﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻭﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ ﺩﻭﻥ ﺃﻱ ﺧﻄﺄ‪ ،‬ﻓﺴﺠ ّ‬
‫ﻞ‬
‫ﺍﻟﺪﺧﻮﻝﺑﺎﺳﺘﺨﺪﺍﻡ ﺑﻴﺎﻧﺎﺕ ﺍﻻﻋﺘﻤﺎﺩ ﺍﻟﻤﺘﻌﺎﺭﺿﺔ‪ .‬ﺣﺪﺩ ﻣﺎ ﺳﻴﺤﺪﺙ‪ ،‬ﻭﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﺳﻠﻮﻙ‬
‫ﺍﻟﺘﻄﺒﻴﻖﻳﺴُﺘﻐﻞ ﻟﻠﻮﺻﻮﻝ ﻏﻴﺮ ﺍﻟﻤﺼﺮﺡ ﺑﻪ ﺇﻟﻰ ﺣﺴﺎﺑﺎﺕ ﻣﺴﺘﺨﺪﻣﻴﻦ ﺁﺧﺮﻳﻦ‪.‬‬

‫‪4.9‬ﺍﺧﺘﺒﺎﺭ ﻗﺎﺑﻠﻴﺔ ﺍﻟﺘﻨﺒﺆ ﺑﺒﻴﺎﻧﺎﺕ ﺍﻻﻋﺘﻤﺎﺩ ﺍﻟﻤﻮُﻟﺪَّﺓ ﺗﻠﻘﺎﺉﻴﺎً‬


‫‪4.9.1‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﻨﺸﺊ ﺃﺳﻤﺎء ﻣﺴﺘﺨﺪﻣﻴﻦ ﺃﻭ ﻛﻠﻤﺎﺕ ﻣﺮﻭﺭ ﺗﻠﻘﺎﺉﻴﺎً‪ ،‬ﻓﺤﺎﻭﻝ ﺍﻟﺤﺼﻮﻝ ﻋﻠﻰ‬
‫ﻋﺪﺓﻗﻴﻢ ﻓﻲ ﺗﺘﺎﺑﻊ ﺳﺮﻳﻊ ﻭﺗﺤﺪﻳﺪ ﺃﻱ ﺗﺴﻠﺴﻼﺕ ﺃﻭ ﺃﻧﻤﺎﻁ ﻳﻤﻜﻦ ﺍﻛﺘﺸﺎﻓﻬﺎ‪.‬‬

‫‪4.9.2‬ﺇﺫﺍ ﺗﻢ ﺇﻧﺸﺎء ﺃﺳﻤﺎء ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺑﻄﺮﻳﻘﺔ ﻣﺘﻮﻗﻌﺔ‪ ،‬ﻓﺎﺳﺘﻌﻦ ﺑﺎﻟﻨﺘﺎﺉﺞ ﺍﻟﻌﻜﺴﻴﺔ ﻟﻠﺤﺼﻮﻝ‬
‫ﻋﻠﻰﻗﺎﺉﻤﺔ ﺑﺄﺳﻤﺎء ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻟﺼﺎﻟﺤﺔ ﺍﻟﻤﺤﺘﻤﻠﺔ‪ .‬ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﻫﺬﺍ ﻛﺄﺳﺎﺱ‬
‫ﻟﺘﺨﻤﻴﻦﻛﻠﻤﺎﺕ ﺍﻟﻤﺮﻭﺭ ﺗﻠﻘﺎﺉﻴﺎً ﻭﻫﺠﻤﺎﺕ ﺃﺧﺮﻯ‪.‬‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪810‬‬

‫‪4.9.3‬ﺇﺫﺍ ﺗﻢ ﺇﻧﺸﺎء ﻛﻠﻤﺎﺕ ﺍﻟﻤﺮﻭﺭ ﺑﻄﺮﻳﻘﺔ ﻳﻤﻜﻦ ﺍﻟﺘﻨﺒﺆ ﺑﻬﺎ‪ ،‬ﻓﻘﻢ ﺑﺎﺳﺘﻘﺮﺍء ﺍﻟﻨﻤﻂ ﻟﻠﺤﺼﻮﻝ ﻋﻠﻰ‬
‫ﻗﺎﺉﻤﺔﺑﻜﻠﻤﺎﺕ ﺍﻟﻤﺮﻭﺭ ﺍﻟﻤﺤﺘﻤﻠﺔ ﺍﻟﺘﻲ ﺗﻢ ﺇﺻﺪﺍﺭﻫﺎ ﻟﻤﺴﺘﺨﺪﻣﻲ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻵﺧﺮﻳﻦ‪.‬‬
‫ﻳﻤﻜﻦﺩﻣﺞ ﻫﺬﺍ ﻣﻊ ﺃﻱ ﻗﻮﺍﺉﻢ ﺃﺳﻤﺎء ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻟﺘﻲ ﺗﺤﺼﻞ ﻋﻠﻴﻬﺎ ﻟﺘﻨﻔﻴﺬ ﻫﺠﻮﻡ‬
‫ﺗﺨﻤﻴﻦﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‪.‬‬

‫‪4.10‬ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺍﻟﻨﻘﻞ ﻏﻴﺮ ﺍﻵﻣﻦ ﻟﺒﻴﺎﻧﺎﺕ ﺍﻻﻋﺘﻤﺎﺩ‬


‫‪4.10.1‬ﺗﻌﺮﻑّ ﻋﻠﻰ ﺟﻤﻴﻊ ﻭﻇﺎﺉﻒ ﺍﻟﻤﺼﺎﺩﻗﺔ ﺍﻟﺘﻲ ﺗﺘﻀﻤﻦ ﻧﻘﻞ ﺑﻴﺎﻧﺎﺕ ﺍﻻﻋﺘﻤﺎﺩ‪ ،‬ﺑﻤﺎ ﻓﻲ ﺫﻟﻚ‬
‫ﺗﺴﺠﻴﻞﺍﻟﺪﺧﻮﻝ ﺍﻟﺮﺉﻴﺴﻲ‪ ،‬ﻭﺗﺴﺠﻴﻞ ﺍﻟﺤﺴﺎﺏ‪ ،‬ﻭﺗﻐﻴﻴﺮ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‪ ،‬ﻭﺃﻱ ﺻﻔﺤﺔ ﺗﺘﻴﺢ‬
‫ﻋﺮﺽﻣﻌﻠﻮﻣﺎﺕ ﻣﻠﻒ ﺗﻌﺮﻳﻒ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺃﻭ ﺗﺤﺪﻳﺜﻬﺎ‪ .‬ﺭﺍﻗﺐ ﺟﻤﻴﻊ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺎﺭﺓ ﻓﻲ‬
‫ﻛﻼﺍﻻﺗﺠﺎﻫﻴﻦ ﺑﻴﻦ ﺍﻟﻌﻤﻴﻞ ﻭﺍﻟﺨﺎﺩﻡ ﺑﺎﺳﺘﺨﺪﺍﻡ ﻭﻛﻴﻞ ﺍﻻﻋﺘﺮﺍﺽ‪.‬‬

‫‪4.10.2‬ﺣﺪﺩ ﺟﻤﻴﻊ ﺍﻟﺤﺎﻻﺕ ﺍﻟﺘﻲ ﺗﺮُﺳﻞ ﻓﻴﻬﺎ ﺑﻴﺎﻧﺎﺕ ﺍﻻﻋﺘﻤﺎﺩ ﻓﻲ ﺃﻱ ﺍﺗﺠﺎﻩ‪ .‬ﻳﻤﻜﻨﻚ ﺿﺒﻂ ﻗﻮﺍﻋﺪ‬
‫ﺍﻻﻋﺘﺮﺍﺽﻓﻲ ﺧﺎﺩﻡ ﺍﻟﻮﻛﻴﻞ ﺍﻟﺨﺎﺹ ﺑﻚ ﻟﺘﺤﺪﻳﺪ ﺍﻟﺮﺳﺎﺉﻞ ﺍﻟﺘﻲ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺳﻼﺳﻞ‬
‫ﻧﺼﻴﺔﻣﺤﺪﺩﺓ‪.‬‬
‫‪4.10.3‬ﺇﺫﺍ ﺗﻢ ﻧﻘﻞ ﺑﻴﺎﻧﺎﺕ ﺍﻻﻋﺘﻤﺎﺩ ﻓﻲ ﺳﻠﺴﻠﺔ ﺍﺳﺘﻌﻼﻡ ﻋﻨﻮﺍﻥ ‪ ،URL‬ﻓﻤﻦ ﺍﻟﻤﺤﺘﻤﻞ ﺃﻥ ﺗﻜﻮﻥ‬
‫ﻋﺮﺿﺔﻟﻠﻜﺸﻒ ﻓﻲ ﺳﺠﻞ ﺍﻟﻤﺘﺼﻔﺢ‪ ،‬ﻭﻋﻠﻰ ﺍﻟﺸﺎﺷﺔ‪،‬‬
‫ﻓﻲﺳﺠﻼﺕ ﺍﻟﺨﺎﺩﻡ‪ ،‬ﻭﻓﻲﺍﻟﻤﺤُﻴﻞﺍﻟﺮﺃﺱ ﻋﻨﺪ ﺍﺗﺒﺎﻉ ﺭﻭﺍﺑﻂ ﺍﻟﻄﺮﻑ ﺍﻟﺜﺎﻟﺚ‪.‬‬

‫‪4.10.4‬ﺇﺫﺍ ﺗﻢ ﺗﺨﺰﻳﻦ ﺑﻴﺎﻧﺎﺕ ﺍﻻﻋﺘﻤﺎﺩ ﻓﻲ ﻣﻠﻒ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ‪ ،‬ﻓﻤﻦ ﺍﻟﻤﺤﺘﻤﻞ ﺃﻥ ﺗﻜﻮﻥ ﻋﺮﺿﺔ‬
‫ﻟﻠﻜﺸﻒﻣﻦ ﺧﻼﻝ ﻫﺠﻤﺎﺕ ‪ XSS‬ﺃﻭ ﻫﺠﻤﺎﺕ ﺍﻟﺨﺼﻮﺻﻴﺔ ﺍﻟﻤﺤﻠﻴﺔ‪.‬‬
‫‪4.10.5‬ﺇﺫﺍ ﺗﻢ ﻧﻘﻞ ﺑﻴﺎﻧﺎﺕ ﺍﻻﻋﺘﻤﺎﺩ ﻣﻦ ﺍﻟﺨﺎﺩﻡ ﺇﻟﻰ ﺍﻟﻌﻤﻴﻞ‪ ،‬ﻓﻘﺪ ﺗﺘﻌﺮﺽ ﻟﻠﺨﻄﺮ ﻣﻦ ﺧﻼﻝ ﺃﻱ‬
‫ﺛﻐﺮﺍﺕﻓﻲ ﺇﺩﺍﺭﺓ ﺍﻟﺠﻠﺴﺔ ﺃﻭ ﻋﻨﺎﺻﺮ ﺍﻟﺘﺤﻜﻢ ﻓﻲ ﺍﻟﻮﺻﻮﻝ‪ ،‬ﺃﻭ ﻓﻲ ﻫﺠﻮﻡ ‪.XSS‬‬

‫‪4.10.6‬ﺇﺫﺍ ﺗﻢ ﻧﻘﻞ ﺑﻴﺎﻧﺎﺕ ﺍﻻﻋﺘﻤﺎﺩ ﻋﺒﺮ ﺍﺗﺼﺎﻝ ﻏﻴﺮ ﻣﺸﻔﺮ‪ ،‬ﻓﺈﻧﻬﺎ ﺗﻜﻮﻥ ﻋﺮﺿﺔ ﻟﻠﺘﻨﺼﺖ ﻣﻦ ﻗﺒﻞ‬
‫ﺍﻟﻤﺘﻨﺼﺖ‪.‬‬
‫‪4.10.7‬ﺇﺫﺍ ﺗﻢ ﺇﺭﺳﺎﻝ ﺑﻴﺎﻧﺎﺕ ﺍﻻﻋﺘﻤﺎﺩ ﺑﺎﺳﺘﺨﺪﺍﻡ ‪ HTTPS‬ﻭﻟﻜﻦ ﻧﻤﻮﺫﺝ ﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ ﻧﻔﺴﻪ‬
‫ﺇﺫﺍﺗﻢ ﺗﺤﻤﻴﻞ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺎﺳﺘﺨﺪﺍﻡ ‪ ،HTTP‬ﻓﺈﻧﻪ ﻳﻜﻮﻥ ﻋﺮﺿﺔ ﻟﻬﺠﻮﻡ ﺍﻟﻮﺳﻴﻂ ﺍﻟﺬﻱ ﻗﺪ‬
‫ﻳﺴﺘﺨﺪﻡﻻﻟﺘﻘﺎﻁ ﺑﻴﺎﻧﺎﺕ ﺍﻻﻋﺘﻤﺎﺩ‪.‬‬

‫‪4.11‬ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺍﻟﺘﻮﺯﻳﻊ ﻏﻴﺮ ﺍﻵﻣﻦ ﻟﺒﻴﺎﻧﺎﺕ ﺍﻻﻋﺘﻤﺎﺩ‬


‫‪4.11.1‬ﺇﺫﺍ ﺗﻢ ﺇﻧﺸﺎء ﺍﻟﺤﺴﺎﺑﺎﺕ ﻋﺒﺮ ﺑﻌﺾ ﺍﻟﻘﻨﻮﺍﺕ ﺧﺎﺭﺝ ﺍﻟﻨﻄﺎﻕ‪ ،‬ﺃﻭ ﺍﻟﺘﻄﺒﻴﻖ‬
‫ﻳﺤﺘﻮﻱﺍﻟﻨﻈﺎﻡ ﻋﻠﻰ ﻭﻇﻴﻔﺔ ﺗﺴﺠﻴﻞ ﺫﺍﺗﻲ‪ ،‬ﻻ ﺗﺤﺪﺩ ﺟﻤﻴﻊ ﺑﻴﺎﻧﺎﺕ ﺍﻋﺘﻤﺎﺩ ﺍﻟﻤﺴﺘﺨﺪﻡ‬
‫ﺍﻷﻭﻟﻴﺔ‪،‬ﺑﻞ ﺗﺤﺪﺩ ﺁﻟﻴﺔ ﺗﻮﺯﻳﻌﻬﺎ ﻋﻠﻰ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻟﺠﺪﺩ‪ .‬ﻣﻦ ﺍﻟﻄﺮﻕ ﺍﻟﺸﺎﺉﻌﺔ ﺇﺭﺳﺎﻝ‬
‫ﺭﺳﺎﻟﺔﺇﻟﻰ ﺑﺮﻳﺪ ﺇﻟﻜﺘﺮﻭﻧﻲ ﺃﻭ ﻋﻨﻮﺍﻥ ﺑﺮﻳﺪﻱ‪.‬‬
‫‪811‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫‪4.11.2‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﻨُﺸﺊ ﺭﻭﺍﺑﻂ ﻟﺘﻔﻌﻴﻞ ﺍﻟﺤﺴﺎﺑﺎﺕ ﻣﻮﺯﻋﺔ ﺧﺎﺭﺝ ﻧﻄﺎﻕ ﺍﻟﺘﻐﻄﻴﺔ‪ ،‬ﻓﺤﺎﻭﻝ‬
‫ﺗﺴﺠﻴﻞﻋﺪﺓ ﺣﺴﺎﺑﺎﺕ ﺟﺪﻳﺪﺓ ﺑﺎﻟﺘﺘﺎﺑﻊ‪ ،‬ﻭﺣﺪﺩ ﺃﻱ ﺗﺴﻠﺴﻞ ﻓﻲ ﺍﻟﺮﻭﺍﺑﻂ ﺍﻟﺘﻲ ﺗﺘﻠﻘﺎﻫﺎ‪ .‬ﺇﺫﺍ‬
‫ﺃﻣﻜﻦﺗﺤﺪﻳﺪ ﻧﻤﻂ‪ ،‬ﻓﺤﺎﻭﻝ ﺗﻮﻗﻊ ﺍﻟﺮﻭﺍﺑﻂ ﺍﻟﻤﺮﺳﻠﺔ ﺇﻟﻰ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻟﺤﺎﻟﻴﻴﻦ‬
‫ﻭﺍﻟﻤﺴﺘﻘﺒﻠﻴﻴﻦ‪،‬ﻭﺍﺳﺘﺨﺪﻡ ﻫﺬﻩ ﺍﻟﺮﻭﺍﺑﻂ ﻹﺩﺍﺭﺓ ﺣﺴﺎﺑﺎﺗﻬﻢ‪.‬‬

‫‪4.11.3‬ﺣﺎﻭﻝ ﺇﻋﺎﺩﺓ ﺍﺳﺘﺨﺪﺍﻡ ﺭﺍﺑﻂ ﺗﻔﻌﻴﻞ ﻭﺍﺣﺪ ﻋﺪﺓ ﻣﺮﺍﺕ‪ ،‬ﻭﺗﺄﻛﺪ ﻣﻦ ﺃﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺴﻤﺢ ﺑﺬﻟﻚ‪.‬‬
‫ﺇﺫﺍﻟﻢ ﻳﻜﻦ ﻛﺬﻟﻚ‪ ،‬ﻓﺤﺎﻭﻝ ﺣﻈﺮ ﺍﻟﺤﺴﺎﺏ ﺍﻟﻤﺴﺘﻬﺪﻑ ﻗﺒﻞ ﺇﻋﺎﺩﺓ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﺮﺍﺑﻂ‪ ،‬ﻭﺗﺄﻛﺪ‬
‫ﻣﻦﺃﻧﻪ ﻻ ﻳﺰﺍﻝ ﻳﻌﻤﻞ‪ .‬ﺗﺄﻛﺪ ﻣﻦ ﺃﻥ ﻫﺬﺍ ﻳﻤُﻜﻨّﻚ ﻣﻦ ﺗﻌﻴﻴﻦ ﻛﻠﻤﺔ ﻣﺮﻭﺭ ﺟﺪﻳﺪﺓ ﻟﺤﺴﺎﺏ‬
‫ﻧﺸﻂ‪.‬‬

‫‪4.12‬ﺍﺧﺘﺒﺎﺭ ﺍﻟﺘﺨﺰﻳﻦ ﻏﻴﺮ ﺍﻵﻣﻦ‬


‫‪4.12.1‬ﺇﺫﺍ ﺗﻤﻜﻨﺖ ﻣﻦ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﻛﻠﻤﺎﺕ ﻣﺮﻭﺭ ﻣﺠُﺰﺃﺓ‪ ،‬ﻓﺘﺤﻘﻖ ﻣﻦ ﺍﻟﺤﺴﺎﺑﺎﺕ ﺍﻟﺘﻲ ﺗﺸﺘﺮﻙ ﻓﻲ‬
‫ﻗﻴﻤﺔﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ ﺍﻟﻤﺠُﺰﺃﺓ ﻧﻔﺴﻬﺎ‪ .‬ﺣﺎﻭﻝ ﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ ﺑﺎﺳﺘﺨﺪﺍﻡ ﻛﻠﻤﺎﺕ ﻣﺮﻭﺭ ﺷﺎﺉﻌﺔ‬
‫ﻟﻘﻴﻤﺔﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ ﺍﻟﻤﺠُﺰﺃﺓ ﺍﻷﻛﺜﺮ ﺷﻴﻮﻋﺎً‪.‬‬
‫‪4.12.2‬ﺍﺳﺘﺨﺪﻡ ﺟﺪﻭﻝ ﻗﻮﺱ ﻗﺰﺡ ﻏﻴﺮ ﻣﺘﺼﻞ ﺑﺎﻹﻧﺘﺮﻧﺖ ﻟﺨﻮﺍﺭﺯﻣﻴﺔ ﺍﻟﺘﺠﺰﺉﺔ ﺍﻟﻤﻌﻨﻴﺔ ﻻﺳﺘﻌﺎﺩﺓ‬
‫ﻗﻴﻤﺔﺍﻟﻨﺺ ﺍﻟﻌﺎﺩﻱ‪.‬‬

‫‪4.13‬ﺍﺧﺘﺒﺎﺭ ﺍﻟﻌﻴﻮﺏ ﺍﻟﻤﻨﻄﻘﻴﺔ‬


‫‪4.13.1‬ﺍﺧﺘﺒﺎﺭ ﺷﺮﻭﻁ ﺍﻟﻔﺸﻞ ﺍﻟﻤﻔﺘﻮﺡ‬
‫‪4.13.1.1‬ﺑﺎﻟﻨﺴﺒﺔ ﻟﻜﻞ ﻭﻇﻴﻔﺔ ﻳﺘﺤﻘﻖ ﻓﻴﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻦ ﺑﻴﺎﻧﺎﺕ ﺍﻋﺘﻤﺎﺩ ﺍﻟﻤﺴﺘﺨﺪﻡ‪،‬‬
‫ﺑﻤﺎﻓﻲ ﺫﻟﻚ ﻭﻇﺎﺉﻒ ﺗﻐﻴﻴﺮ ﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻭﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‪ ،‬ﺍﺗﺒﻊ ﺍﻟﻌﻤﻠﻴﺔ ﺑﺎﻟﻄﺮﻳﻘﺔ‬
‫ﺍﻟﻤﻌﺘﺎﺩﺓﺑﺎﺳﺘﺨﺪﺍﻡ ﺣﺴﺎﺏ ﺗﺘﺤﻜﻢ ﺑﻪ‪ .‬ﺩﻭﻥّ ﺟﻤﻴﻊ ﻣﻌﺎﻣﻼﺕ ﺍﻟﻄﻠﺐ ﺍﻟﻤﺮُﺳﻠﺔ ﺇﻟﻰ‬
‫ﺍﻟﺘﻄﺒﻴﻖ‪.‬‬
‫‪4.13.1.2‬ﻛﺮﺭ ﺍﻟﻌﻤﻠﻴﺔ ﻋﺪﺓ ﻣﺮﺍﺕ‪ ،‬ﻣﻊ ﺗﻌﺪﻳﻞ ﻛﻞ ﻣﻌﻠﻤﺔ ﺑﺪﻭﺭﻫﺎ‬
‫ﺑﻄﺮﻕﻏﻴﺮ ﻣﺘﻮﻗﻌﺔ ﻭﻣﺼُﻤﻤﺔ ﻟﻠﺘﺪﺧﻞ ﻓﻲ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ‪ .‬ﻟﻜﻞ ﻣﻌﻠﻤﺔ‪ ،‬ﻗﻢ ﺑﺘﻀﻤﻴﻦ‬
‫ﺍﻟﺘﻐﻴﻴﺮﺍﺕﺍﻟﺘﺎﻟﻴﺔ‪:‬‬
‫ﺇﺭﺳﺎﻝﺳﻠﺴﻠﺔ ﻓﺎﺭﻏﺔ ﻛﻘﻴﻤﺔ‪.‬‬ ‫‪-‬‬

‫ﺇﺯﺍﻟﺔﺯﻭﺝ ﺍﻻﺳﻢ‪/‬ﺍﻟﻘﻴﻤﺔ‪.‬‬ ‫‪-‬‬

‫ﺇﺭﺳﺎﻝﻗﻴﻢ ﻃﻮﻳﻠﺔ ﺟﺪﺍً ﻭﻗﻴﻢ ﻗﺼﻴﺮﺓ ﺟﺪﺍً‪.‬‬ ‫‪-‬‬

‫ﺇﺭﺳﺎﻝﺍﻟﺴﻼﺳﻞ ﺑﺪﻻ ًﻣﻦ ﺍﻷﺭﻗﺎﻡ‪ ،‬ﻭﺍﻟﻌﻜﺲ ﺻﺤﻴﺢ‪.‬‬ ‫‪-‬‬

‫ﺇﺭﺳﺎﻝﻧﻔﺲ ﺍﻟﻤﻌﻠﻤﺔ ﺍﻟﻤﺴﻤﺎﺓ ﻋﺪﺓ ﻣﺮﺍﺕ‪ ،‬ﺑﻨﻔﺲ ﺍﻟﻘﻴﻢ ﻭﻗﻴﻢ ﻣﺨﺘﻠﻔﺔ‪.‬‬ ‫‪-‬‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪812‬‬

‫‪4.13.1.3‬ﺭﺍﺟﻊ ﺑﻌﻨﺎﻳﺔ ﺭﺩﻭﺩ ﺍﻟﻄﻠﺐ ﻋﻠﻰ ﺍﻟﻄﻠﺒﺎﺕ ﺍﻟﺴﺎﺑﻘﺔ‪ .‬ﺇﺫﺍ‬


‫ﺇﺫﺍﺣﺪﺛﺖ ﺃﻱ ﺍﻧﺤﺮﺍﻓﺎﺕ ﻏﻴﺮ ﻣﺘﻮﻗﻌﺔ ﻋﻦ ﺍﻟﺤﺎﻟﺔ ﺍﻷﺳﺎﺳﻴﺔ‪ ،‬ﻓﺄﻋﺪ ﻫﺬﻩ ﺍﻟﻤﻼﺣﻈﺔ ﺇﻟﻰ‬
‫ﺻﻴﺎﻏﺔﺣﺎﻻﺕ ﺍﻻﺧﺘﺒﺎﺭ ﺍﻹﺿﺎﻓﻴﺔ‪ .‬ﺇﺫﺍ ﺗﺴﺒﺐ ﺗﻌﺪﻳﻞ ﻭﺍﺣﺪ ﻓﻲ ﺗﻐﻴﻴﺮ ﺍﻟﺴﻠﻮﻙ‪ ،‬ﻓﺤﺎﻭﻝ‬
‫ﺩﻣﺠﻪﻣﻊ ﺗﻐﻴﻴﺮﺍﺕ ﺃﺧﺮﻯ ﻟﺪﻓﻊ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ ﺇﻟﻰ ﺃﻗﺼﻰ ﺣﺪﻭﺩﻩ‪.‬‬

‫‪4.13.2‬ﺍﺧﺘﺒﺎﺭ ﺃﻱ ﺁﻟﻴﺎﺕ ﻣﺘﻌﺪﺩﺓ ﺍﻟﻤﺮﺍﺣﻞ‬


‫‪4.13.2.1‬ﺇﺫﺍ ﻛﺎﻧﺖ ﺃﻱ ﻭﻇﻴﻔﺔ ﻣﺘﻌﻠﻘﺔ ﺑﺎﻟﻤﺼﺎﺩﻗﺔ ﺗﺘﻀﻤﻦ ﺇﺭﺳﺎﻝ ﺑﻴﺎﻧﺎﺕ ﺍﻻﻋﺘﻤﺎﺩ‬
‫ﻓﻲﺳﻠﺴﻠﺔ ﻣﻦ ﺍﻟﻄﻠﺒﺎﺕ ﺍﻟﻤﺨﺘﻠﻔﺔ‪ ،‬ﺣﺪﺩ ﺍﻟﻐﺮﺽ ﺍﻟﻮﺍﺿﺢ ﻟﻜﻞ ﻣﺮﺣﻠﺔ ﻣﻤﻴﺰﺓ‪ ،‬ﻭﻻﺣﻆ‬
‫ﺍﻟﻤﻌﻠﻤﺎﺕﺍﻟﻤﻘﺪﻣﺔ ﻓﻲ ﻛﻞ ﻣﺮﺣﻠﺔ‪.‬‬
‫‪4.13.2.2‬ﻛﺮﺭ ﺍﻟﻌﻤﻠﻴﺔ ﻋﺪﺓ ﻣﺮﺍﺕ‪ ،‬ﻣﻊ ﺗﻌﺪﻳﻞ ﺗﺴﻠﺴﻞ ﺍﻟﻄﻠﺒﺎﺕ‬
‫ﺑﻄﺮﻕﻣﺼﻤﻤﺔ ﻟﻠﺘﺪﺧﻞ ﻓﻲ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﺑﻤﺎ ﻓﻲ ﺫﻟﻚ ﺍﻻﺧﺘﺒﺎﺭﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬

‫ﻗﻢﺑﺎﻻﻧﺘﻘﺎﻝ ﻋﺒﺮ ﺟﻤﻴﻊ ﺍﻟﻤﺮﺍﺣﻞ‪ ،‬ﻭﻟﻜﻦ ﺑﺘﺴﻠﺴﻞ ﻣﺨﺘﻠﻒ ﻋﻦ ﺍﻟﺘﺴﻠﺴﻞ ﺍﻟﻤﻘﺼﻮﺩ‪.‬‬ ‫‪-‬‬

‫ﺍﻧﺘﻘﻞﻣﺒﺎﺷﺮﺓ ﺇﻟﻰ ﻛﻞ ﻣﺮﺣﻠﺔ ﺑﺪﻭﺭﻫﺎ‪ ،‬ﻭﺍﺳﺘﻤﺮ ﻓﻲ ﺍﻟﺘﺴﻠﺴﻞ ﺍﻟﻄﺒﻴﻌﻲ ﻣﻦ ﻫﻨﺎﻙ‪.‬‬ ‫‪-‬‬

‫ﻗﻢﺑﺎﻟﻤﺘﺎﺑﻌﺔ ﻋﺒﺮ ﺍﻟﺘﺴﻠﺴﻞ ﺍﻟﻄﺒﻴﻌﻲ ﻋﺪﺓ ﻣﺮﺍﺕ‪ ،‬ﻭﺗﺨﻄﻲ ﻛﻞ ﻣﺮﺣﻠﺔ ﺑﺪﻭﺭﻫﺎ‪،‬‬ ‫‪-‬‬

‫ﻭﻣﻮﺍﺻﻠﺔﺍﻟﺘﺴﻠﺴﻞ ﺍﻟﻄﺒﻴﻌﻲ ﻣﻦ ﺍﻟﻤﺮﺣﻠﺔ ﺍﻟﺘﺎﻟﻴﺔ‪.‬‬


‫ﺑﻨﺎء ًﻋﻠﻰ ﻣﻼﺣﻈﺎﺗﻚ ﻭﺍﻟﻐﺮﺽ ﺍﻟﻮﺍﺿﺢ ﻟﻜﻞ ﻣﺮﺣﻠﺔ ﻣﻦ ﻣﺮﺍﺣﻞ ﺍﻵﻟﻴﺔ‪ ،‬ﺣﺎﻭﻝ ﺍﻟﺘﻔﻜﻴﺮ‬ ‫‪-‬‬

‫ﻓﻲﻃﺮﻕ ﺃﺧﺮﻯ ﻟﺘﻌﺪﻳﻞ ﺍﻟﺘﺴﻠﺴﻞ ﻭﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺍﻟﻤﺮﺍﺣﻞ ﺍﻟﻤﺨﺘﻠﻔﺔ ﺍﻟﺘﻲ ﺭﺑﻤﺎ ﻟﻢ‬
‫ﻳﺘﻮﻗﻌﻬﺎﺍﻟﻤﻄﻮﺭﻭﻥ‪.‬‬

‫‪4.13.2.3‬ﺗﺤﺪﻳﺪ ﻣﺎ ﺇﺫﺍ ﻛﺎﻧﺖ ﺃﻱ ﻗﻄﻌﺔ ﻭﺍﺣﺪﺓ ﻣﻦ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ )ﻣﺜﻞ ﻣﻌﻠﻮﻣﺎﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ(‬


‫ﺗﻢﺇﺭﺳﺎﻝ ﺑﻴﺎﻧﺎﺕ )ﻣﺜﻞ ﺍﻻﺳﻢ( ﻓﻲ ﺃﻛﺜﺮ ﻣﻦ ﻣﺮﺣﻠﺔ‪ ،‬ﺇﻣﺎ ﻷﻧﻬﺎ ﺍﺳﺘﺨُﺪﻣﺖ ﺃﻛﺜﺮ ﻣﻦ ﻣﺮﺓ‬
‫ﻣﻦﺍﻟﻤﺴﺘﺨﺪﻡ‪ ،‬ﺃﻭ ﻷﻧﻬﺎ ﺗﺮُﺳﻞ ﻋﺒﺮ ﺍﻟﻌﻤﻴﻞ ﻓﻲ ﺣﻘﻞ ﻧﻤﻮﺫﺝ ﻣﺨﻔﻲ‪ ،‬ﺃﻭ ﻣﻠﻒ ﺗﻌﺮﻳﻒ‬
‫ﺍﺭﺗﺒﺎﻁ‪،‬ﺃﻭ ﻣﻌﻠﻤﺔ ﺳﻠﺴﻠﺔ ﺍﺳﺘﻌﻼﻡ ﻣﻌُﺪﺓّ ﻣﺴﺒﻘﺎً‪ .‬ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ‪ ،‬ﺣﺎﻭﻝ ﺇﺭﺳﺎﻝ ﻗﻴﻢ‬
‫ﻣﺨﺘﻠﻔﺔﻓﻲ ﻣﺮﺍﺣﻞ ﻣﺨﺘﻠﻔﺔ )ﺳﻮﺍء ًﻛﺎﻧﺖ ﺻﺎﻟﺤﺔ ﺃﻭ ﻏﻴﺮ ﺻﺎﻟﺤﺔ( ﻭﻻﺣﻆ ﺍﻟﻨﺘﻴﺠﺔ‪ .‬ﺣﺎﻭﻝ‬
‫ﺗﺤﺪﻳﺪﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﻌﻨﺼﺮ ﺍﻟﻤﺮُﺳﻞ ﻏﻴﺮ ﺿﺮﻭﺭﻱ ﺃﺣﻴﺎﻧﺎً‪ ،‬ﺃﻭ ﺗﻢ ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺻﺤﺘﻪ ﻓﻲ‬
‫ﻣﺮﺣﻠﺔﻣﺎ ﺛﻢ ﺗﻢ ﺍﻟﻮﺛﻮﻕ ﺑﻪ ﻻﺣﻘﺎً‪ ،‬ﺃﻭ ﺗﻢ ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺻﺤﺘﻪ ﻓﻲ ﻣﺮﺍﺣﻞ ﻣﺨﺘﻠﻔﺔ ﻋﺒﺮ‬
‫ﻋﻤﻠﻴﺎﺕﺗﺤﻘﻖ ﻣﺨﺘﻠﻔﺔ‪ .‬ﺣﺎﻭﻝ ﺍﺳﺘﻐﻼﻝ ﺳﻠﻮﻙ ﺍﻟﺘﻄﺒﻴﻖ ﻟﻠﺤﺼﻮﻝ ﻋﻠﻰ ﻭﺻﻮﻝ ﻏﻴﺮ‬
‫ﻣﺼﺮﺡﺑﻪ ﺃﻭ ﺗﻘﻠﻴﻞ ﻓﻌﺎﻟﻴﺔ ﺍﻟﻀﻮﺍﺑﻂ ﺍﻟﺘﻲ ﺗﻔﺮﺿﻬﺎ ﺍﻵﻟﻴﺔ‪.‬‬

‫‪4.13.2.4‬ﺍﺑﺤﺚ ﻋﻦ ﺃﻱ ﺑﻴﺎﻧﺎﺕ ﻣﺮُﺳﻠﺔ ﻋﺒﺮ ﺍﻟﻌﻤﻴﻞ ﻭﻟﻢ ﻳﺘﻢ ﺍﻟﺘﻘﺎﻃﻬﺎ ﻣﻦ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻓﻲ ﺃﻱ ﻭﻗﺖ‪.‬‬
‫ﻓﻲﺣﺎﻝ ﺍﺳﺘﺨﺪﺍﻡ ﻣﻌﻠﻤﺎﺕ ﻣﺨﻔﻴﺔ‪،‬‬
‫‪813‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫ﻟﺘﺘﺒﻊﺣﺎﻟﺔ ﺍﻟﻌﻤﻠﻴﺔ ﻋﺒﺮ ﺍﻟﻤﺮﺍﺣﻞ ﺍﻟﻤﺘﻌﺎﻗﺒﺔ‪ ،‬ﻗﺪ ﻳﻜﻮﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺍﻟﺘﺪﺧﻞ ﻓﻲ ﻣﻨﻄﻖ‬
‫ﺍﻟﺘﻄﺒﻴﻖﻋﻦ ﻃﺮﻳﻖ ﺗﻌﺪﻳﻞ ﻫﺬﻩ ﺍﻟﻤﻌﻠﻤﺎﺕ ﺑﻄﺮﻕ ﻣﺼﻤﻤﺔ‪.‬‬

‫‪4.13.2.5‬ﺇﺫﺍ ﻛﺎﻥ ﺃﻱ ﺟﺰء ﻣﻦ ﺍﻟﻌﻤﻠﻴﺔ ﻳﺘﻀﻤﻦ ﺗﻘﺪﻳﻢ ﺍﻟﻄﻠﺐ ﻟﻘﺎﺉﻤﺔ ﻣﻦ ﺍﻟﻄﻠﺒﺎﺕ‪،‬‬


‫ﺗﺤﺪﻱﻣﺘﻐﻴﺮ ﺑﺸﻜﻞ ﻛﺒﻴﺮ‪ ،‬ﺍﺧﺘﺒﺎﺭ ﻟﻌﻴﺒﻴﻦ ﺷﺎﺉﻌﻴﻦ‪:‬‬
‫ﺇﺫﺍﺗﻢ ﺇﺭﺳﺎﻝ ﻣﻌﻠﻤﺔ ﺗﺤﺪﺩ ﺍﻟﺘﺤﺪﻱ ﻣﻊ ﺍﺳﺘﺠﺎﺑﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ‪ ،‬ﻓﺤﺪﺩ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ‬ ‫‪-‬‬

‫ﺑﺈﻣﻜﺎﻧﻚﺍﺧﺘﻴﺎﺭ ﺍﻟﺘﺤﺪﻱ ﺍﻟﺨﺎﺹ ﺑﻚ ﺑﺸﻜﻞ ﻓﻌﺎﻝ ﻋﻦ ﻃﺮﻳﻖ ﺗﻌﺪﻳﻞ ﻫﺬﻩ ﺍﻟﻘﻴﻤﺔ‪.‬‬

‫ﺣﺎﻭﻝﻣﺘﺎﺑﻌﺔ ﺍﻟﺘﺤﺪﻱ ﺍﻟﻤﺘﻐﻴﺮ ﻋﺪﺓ ﻣﺮﺍﺕ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻧﻔﺴﻪ‪ ،‬ﻭﺗﺄﻛﺪ‬ ‫‪-‬‬

‫ﻣﻦﻭﺟﻮﺩ ﺗﺤﺪﻱ ﻣﺨﺘﻠﻒ‪ .‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻷﻣﺮ ﻛﺬﻟﻚ‪ ،‬ﻳﻤﻜﻨﻚ ﺍﺧﺘﻴﺎﺭ ﺍﻟﺘﺤﺪﻱ ﺍﻟﺨﺎﺹ ﺑﻚ‬
‫ﺑﻔﻌﺎﻟﻴﺔﻣﻦ ﺧﻼﻝ ﻣﺘﺎﺑﻌﺔ ﻫﺬﻩ ﺍﻟﻤﺮﺣﻠﺔ ﺑﺸﻜﻞ ﻣﺘﻜﺮﺭ ﺣﺘﻰ ﻳﺘﻢ ﻋﺮﺽ ﺍﻟﺘﺤﺪﻱ ﺍﻟﺬﻱ‬
‫ﺗﺮﻳﺪﻩ‪.‬‬

‫‪4.14‬ﺍﺳﺘﻐﻼﻝ ﺃﻱ ﺛﻐﺮﺍﺕ ﺃﻣﻨﻴﺔ ﻟﻠﺤﺼﻮﻝ ﻋﻠﻰ‬


‫ﻭﺻﻮﻝﻏﻴﺮ ﻣﺼﺮﺡ ﺑﻪ‬
‫‪4.14.1‬ﻗﻢ ﺑﻤﺮﺍﺟﻌﺔ ﺃﻱ ﻧﻘﺎﻁ ﺿﻌﻒ ﺣﺪﺩﺗﻬﺎ ﺿﻤﻦ ﻋﻤﻠﻴﺎﺕ ﺍﻟﺘﻔﻮﻳﺾ ﺍﻟﻤﺨﺘﻠﻔﺔ‬
‫ﻭﻇﺎﺉﻒﺍﻟﻤﺼﺎﺩﻗﺔ‪ ،‬ﻭﺗﺤﺪﻳﺪ ﺃﻱ ﻣﻨﻬﺎ ﻳﻤﻜﻨﻚ ﺍﻻﺳﺘﻔﺎﺩﺓ ﻣﻨﻪ ﻟﺘﺤﻘﻴﻖ ﺃﻫﺪﺍﻓﻚ ﻓﻲ‬
‫ﻣﻬﺎﺟﻤﺔﺍﻟﺘﻄﺒﻴﻖ‪ .‬ﻳﺘﻀﻤﻦ ﻫﺬﺍ ﻋﺎﺩﺓ ًﻣﺤﺎﻭﻟﺔ ﺍﻟﻤﺼﺎﺩﻗﺔ ﻛﻤﺴﺘﺨﺪﻡ ﻣﺨﺘﻠﻒ ‪ -‬ﺇﻥ ﺃﻣﻜﻦ‪،‬‬
‫ﻣﺴﺘﺨﺪﻡﺑﺼﻼﺣﻴﺎﺕ ﺇﺩﺍﺭﻳﺔ‪.‬‬

‫‪4.14.2‬ﻗﺒﻞ ﺷﻦ ﺃﻱ ﻧﻮﻉ ﻣﻦ ﺍﻟﻬﺠﻤﺎﺕ ﺍﻵﻟﻴﺔ‪ ،‬ﻻﺣﻆ ﺃﻱ ﺣﺴﺎﺏ‬


‫ﺩﻓﺎﻋﺎﺕﺍﻟﻘﻔﻞ ﺍﻟﺘﻲ ﺣﺪﺩﺗﻬﺎ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﻋﻨﺪ ﺇﺟﺮﺍء ﺗﻌﺪﺍﺩ ﻷﺳﻤﺎء ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ‬
‫ﻟﻮﻇﻴﻔﺔﺗﺴﺠﻴﻞ ﺩﺧﻮﻝ‪ ،‬ﺃﺩﺧﻞ ﻛﻠﻤﺔ ﻣﺮﻭﺭ ﻣﺸﺘﺮﻛﺔ ﻣﻊ ﻛﻞ ﻃﻠﺐ ﺑﺪﻻ ًﻣﻦ ﻗﻴﻤﺔ ﻋﺸﻮﺍﺉﻴﺔ‬
‫ﺗﻤﺎﻣﺎًﻟﺘﺠﻨﺐ ﺇﺿﺎﻋﺔ ﻓﺮﺻﺔ ﺗﺴﺠﻴﻞ ﺩﺧﻮﻝ ﻓﺎﺷﻠﺔ ﻋﻠﻰ ﻛﻞ ﺍﺳﻢ ﻣﺴﺘﺨﺪﻡ ﻳﺘﻢ ﺍﻛﺘﺸﺎﻓﻪ‪.‬‬
‫ﻭﺑﺎﻟﻤﺜﻞ‪،‬ﻧﻔﺬّ ﺃﻱ ﻫﺠﻤﺎﺕ ﺗﺨﻤﻴﻦ ﻟﻜﻠﻤﺎﺕ ﺍﻟﻤﺮﻭﺭ ﻋﻠﻰ ﺃﺳﺎﺱ "ﺍﻟﻌﺮﺽ ﺃﻭﻻ"ً‪ ،‬ﻭﻟﻴﺲ "‬
‫ﺍﻟﻌﻤﻖﺃﻭﻻ"ً‪ .‬ﺍﺑﺪﺃ ﻗﺎﺉﻤﺔ ﻛﻠﻤﺎﺗﻚ ﺑﺄﻛﺜﺮ ﻛﻠﻤﺎﺕ ﺍﻟﻤﺮﻭﺭ ﺍﻟﻀﻌﻴﻔﺔ ﺷﻴﻮﻋﺎً‪ ،‬ﻭﺗﺎﺑﻌﻬﺎ‪ ،‬ﻣﻊ‬
‫ﺗﺠﺮﺑﺔﻛﻞ ﻛﻠﻤﺔ ﻋﻠﻰ ﻛﻞ ﺍﺳﻢ ﻣﺴﺘﺨﺪﻡ ﻣﻌُﺪﺩّ‪.‬‬

‫‪4.14.3‬ﺧﺬ ﻓﻲ ﺍﻻﻋﺘﺒﺎﺭ ﻗﻮﺍﻋﺪ ﺟﻮﺩﺓ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ ﻭﺍﻛﺘﻤﺎﻝ ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺻﺤﺔ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ ﻋﻨﺪ‬
‫ﺇﻧﺸﺎءﻗﻮﺍﺉﻢ ﺍﻟﻜﻠﻤﺎﺕ ﻻﺳﺘﺨﺪﺍﻣﻬﺎ ﻓﻲ ﺃﻱ ﻫﺠﻮﻡ ﺗﺨﻤﻴﻦ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ ﻟﺘﺠﻨﺐ ﺣﺎﻻﺕ‬
‫ﺍﻻﺧﺘﺒﺎﺭﺍﻟﻤﺴﺘﺤﻴﻠﺔ ﺃﻭ ﻏﻴﺮ ﺍﻟﻀﺮﻭﺭﻳﺔ‪.‬‬
‫‪4.14.4‬ﺍﺳﺘﺨﺪﻡ ﺍﻟﺘﻘﻨﻴﺎﺕ ﺍﻟﻤﻮﺿﺤﺔ ﻓﻲ ﺍﻟﻔﺼﻞ ‪ 14‬ﻷﺗﻤﺘﺔ ﺃﻛﺒﺮ ﻗﺪﺭ ﻣﻤﻜﻦ ﻣﻦ ﺍﻟﻌﻤﻞ ﻭﺗﻌﻈﻴﻢ‬
‫ﺳﺮﻋﺔﻭﻓﻌﺎﻟﻴﺔ ﻫﺠﻤﺎﺗﻚ‪.‬‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪814‬‬

‫ﺍﺧﺘﺒﺎﺭﺁﻟﻴﺔ ﺇﺩﺍﺭﺓ ﺍﻟﺠﻠﺴﺔ‬ ‫‪5‬‬

‫‪.5.1‬ﻓﻬﻢ ﺍﻵﻟﻴﺔ‬

‫ﺍﻟﺘﻌﺎﻣﻞﻣﻊ ﺍﻟﺮﻣﺰ‬ ‫ﺗﻮﻟﻴﺪﺍﻟﺮﻣﺰ‬

‫‪.5.4‬ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﻋﺪﻡ ﻭﺟﻮﺩ ﻧﻘﻞ ﻏﻴﺮ ﺁﻣﻦ‬ ‫‪.5.2‬ﺍﺧﺘﺒﺎﺭ ﺍﻟﻤﻌﻨﻰ‬

‫‪.5.5‬ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺍﻹﻓﺼﺎﺡ ﻓﻲ ﺍﻟﺴﺠﻼﺕ‬ ‫‪.5.3‬ﺍﺧﺘﺒﺎﺭ ﺍﻟﻘﺪﺭﺓ ﻋﻠﻰ ﺍﻟﺘﻨﺒﺆ‬

‫‪.5.6‬ﺍﺧﺘﺒﺎﺭ ﺗﻌﻴﻴﻦ ﺍﻟﺮﻣﻮﺯ ﻟﻠﺠﻠﺴﺎﺕ‬

‫‪.5.7‬ﺇﻧﻬﺎء ﺟﻠﺴﺔ ﺍﻻﺧﺘﺒﺎﺭ‬

‫‪.5.8‬ﺍﺧﺘﺒﺎﺭ ﺗﺜﺒﻴﺖ ﺍﻟﺠﻠﺴﺔ‬

‫‪.5.9‬ﺍﻟﺘﺤﻘﻖ ﻣﻦ ‪CSRF‬‬

‫‪.5.10‬ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﻧﻄﺎﻕ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ‬

‫ﺍﻟﺸﻜﻞ‪:6-21‬ﺍﺧﺘﺒﺎﺭ ﺁﻟﻴﺔ ﺇﺩﺍﺭﺓ ﺍﻟﺠﻠﺴﺔ‬

‫‪5.1‬ﻓﻬﻢ ﺍﻵﻟﻴﺔ‬
‫‪5.1.1‬ﺣﻠﻞ ﺁﻟﻴﺔ ﺇﺩﺍﺭﺓ ﺍﻟﺠﻠﺴﺎﺕ ﻭﺍﻟﺤﺎﻟﺔ‪ .‬ﺗﺄﻛﺪ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺴﺘﺨﺪﻡ ﺭﻣﻮﺯ ﺍﻟﺠﻠﺴﺔ ﺃﻭ ﺃﻱ‬
‫ﻃﺮﻳﻘﺔﺃﺧﺮﻯ ﻟﻤﻌﺎﻟﺠﺔ ﺳﻠﺴﻠﺔ ﺍﻟﻄﻠﺒﺎﺕ ﺍﻟﻮﺍﺭﺩﺓ ﻣﻦ ﻛﻞ ﻣﺴﺘﺨﺪﻡ‪ .‬ﺗﺠﺪﺭ ﺍﻹﺷﺎﺭﺓ ﺇﻟﻰ ﺃﻥ‬
‫ﺑﻌﺾﺗﻘﻨﻴﺎﺕ ﺍﻟﻤﺼﺎﺩﻗﺔ )ﻣﺜﻞ ﻣﺼﺎﺩﻗﺔ ‪ (HTTP‬ﻗﺪ ﻻ ﺗﺘﻄﻠﺐ ﺁﻟﻴﺔ ﺟﻠﺴﺔ ﻛﺎﻣﻠﺔ ﻹﻋﺎﺩﺓ‬
‫ﺗﺤﺪﻳﺪﻫﻮﻳﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺑﻌﺪ ﺍﻟﻤﺼﺎﺩﻗﺔ‪.‬‬

‫ﺑﺎﻹﺿﺎﻓﺔﺇﻟﻰ ﺫﻟﻚ‪ ،‬ﺗﺴﺘﺨﺪﻡ ﺑﻌﺾ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺁﻟﻴﺔ ﺣﺎﻟﺔ ﺑﺪﻭﻥ ﺟﻠﺴﺔ ﺣﻴﺚ ﻳﺘﻢ ﻧﻘﻞ ﻛﺎﻓﺔ‬
‫ﻣﻌﻠﻮﻣﺎﺕﺍﻟﺤﺎﻟﺔ ﻋﺒﺮ ﺍﻟﻌﻤﻴﻞ‪ ،‬ﻭﻋﺎﺩﺓ ًﻓﻲ ﺷﻜﻞ ﻣﺸﻔﺮ ﺃﻭ ﻏﺎﻣﺾ‪.‬‬

‫‪٥.١.٢‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺴﺘﺨﺪﻡ ﺭﻣﻮﺯ ﺍﻟﺠﻠﺴﺔ‪ ،‬ﻓﺘﺄﻛﺪ ﺑﺪﻗﺔ ﻣﻦ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻌﻠﻴﺎً ﻹﻋﺎﺩﺓ‬
‫ﺗﺤﺪﻳﺪﻫﻮﻳﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ‪ .‬ﺗﺸﻤﻞ ﺍﻟﻌﻨﺎﺻﺮ ﺍﻟﺘﻲ ﻳﻤﻜﻦ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻟﻨﻘﻞ ﺍﻟﺮﻣﻮﺯ ﻣﻠﻔﺎﺕ‬
‫ﺗﻌﺮﻳﻒﺍﺭﺗﺒﺎﻁ ‪ ،HTTP‬ﻭﻣﻌﻠﻤﺎﺕ ﺳﻠﺴﻠﺔ ﺍﻻﺳﺘﻌﻼﻡ‪ ،‬ﻭﺣﻘﻮﻝ ﺍﻟﻨﻤﺎﺫﺝ ﺍﻟﻤﺨﻔﻴﺔ‪ .‬ﻗﺪ‬
‫ﺗﺴُﺘﺨﺪﻡﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ ﻣﺨﺘﻠﻔﺔ ﻣﻌﺎً ﻹﻋﺎﺩﺓ ﺗﺤﺪﻳﺪ ﻫﻮﻳﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ‪ ،‬ﻭﻗﺪ ﺗﺴﺘﺨﺪﻡ ﻣﻜﻮﻧﺎﺕ‬
‫ﺧﻠﻔﻴﺔﻣﺨﺘﻠﻔﺔ ﻋﻨﺎﺻﺮ ﻣﺨﺘﻠﻔﺔ‪ .‬ﻓﻲ ﻛﺜﻴﺮ ﻣﻦ ﺍﻷﺣﻴﺎﻥ‪ ،‬ﻗﺪ ﻻ ﻳﺴﺘﺨﺪﻡ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﻌﻨﺎﺻﺮ‬
‫ﺍﻟﺘﻲﺗﺒﺪﻭ ﻛﺮﻣﻮﺯ ﺟﻠﺴﺔ ﻋﻠﻰ ﻫﺬﺍ ﺍﻟﻨﺤﻮ‪ ،‬ﻣﺜﻞ ﻣﻠﻒ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﺍﻻﻓﺘﺮﺍﺿﻲ ﺍﻟﺬﻱ‬
‫ﻳﻨُﺸﺉﻪﺧﺎﺩﻡ ﺍﻟﻮﻳﺐ‪.‬‬
‫‪815‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫‪٥.١.٣‬ﻟﻠﺘﺤﻘﻖ ﻣﻦ ﺍﻟﻌﻨﺎﺻﺮ ﺍﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻌﻠﻴﺎً ﻛﺮﻣﻮﺯ ﺟﻠﺴﺔ‪ ،‬ﺍﺑﺤﺚ ﻋﻦ ﺻﻔﺤﺔ ﺃﻭ ﺩﺍﻟﺔ ﺗﻌﺘﻤﺪ‬
‫ﻋﻠﻰﺍﻟﺠﻠﺴﺔ )ﻣﺜﻞ ﺻﻔﺤﺔ "ﺗﻔﺎﺻﻴﻠﻲ" ﺍﻟﺨﺎﺻﺔ ﺑﺎﻟﻤﺴﺘﺨﺪﻡ(‪ .‬ﺛﻢ ﺍﻃﻠﺒﻬﺎ ﻋﺪﺓ ﻣﺮﺍﺕ‪ ،‬ﻣﻊ‬
‫ﺇﺯﺍﻟﺔﻛﻞ ﻋﻨﺼﺮ ﺗﺸﻚ ﻓﻲ ﺍﺳﺘﺨﺪﺍﻣﻪ ﻛﺮﻣﺰ ﺟﻠﺴﺔ ﺑﺸﻜﻞ ﻣﻨﻬﺠﻲ‪ .‬ﺇﺫﺍ ﺃﺩﻯ ﺣﺬﻑ ﻋﻨﺼﺮ‬
‫ﺇﻟﻰﻣﻨﻊ ﻋﺮﺽ ﺍﻟﺼﻔﺤﺔ ﺍﻟﻤﻌﺘﻤﺪﺓ ﻋﻠﻰ ﺍﻟﺠﻠﺴﺔ‪ ،‬ﻓﻘﺪ ﻳﺆﻛﺪ ﺫﻟﻚ ﺃﻥ ﺍﻟﻌﻨﺼﺮ ﻫﻮ ﺭﻣﺰ‬
‫ﺟﻠﺴﺔ‪.‬ﻳﻌُﺪ ‪ Burp Repeater‬ﺃﺩﺍﺓ ﻣﻔﻴﺪﺓ ﻹﺟﺮﺍء ﻫﺬﻩ ﺍﻻﺧﺘﺒﺎﺭﺍﺕ‪.‬‬

‫‪٥.١.٤‬ﺑﻌﺪ ﺗﺤﺪﻳﺪ ﻋﻨﺎﺻﺮ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻌﻠﻴﺎً ﻹﻋﺎﺩﺓ ﺗﻌﺮﻳﻒ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ‪ ،‬ﺗﺄﻛﺪ ﻟﻜﻞ ﺭﻣﺰ‬
‫ﻣﺎﺇﺫﺍ ﻛﺎﻥ ﻳﺘﻢ ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺻﺤﺘﻪ ﺑﺎﻟﻜﺎﻣﻞ‪ ،‬ﺃﻭ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﻳﺘﻢ ﺗﺠﺎﻫﻞ ﺑﻌﺾ ﻣﻜﻮﻧﺎﺗﻪ‬
‫ﺍﻟﻔﺮﻋﻴﺔ‪.‬ﻏﻴﺮّ ﻗﻴﻤﺔ ﺍﻟﺮﻣﺰ ﺑﺎﻳﺘﺎً ﻭﺍﺣﺪﺍً ﻓﻲ ﻛﻞ ﻣﺮﺓ‪ ،‬ﻭﺗﺤﻘﻖ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻧﺖ ﺍﻟﻘﻴﻤﺔ ﺍﻟﻤﻌﺪﻟﺔ ﻻ‬
‫ﺗﺰﺍﻝﻣﻘﺒﻮﻟﺔ‪ .‬ﺇﺫﺍ ﻭﺟﺪﺕ ﺃﻥ ﺃﺟﺰﺍء ًﻣﻌﻴﻨﺔ ﻣﻦ ﺍﻟﺮﻣﺰ ﻻ ﺗﺴُﺘﺨﺪﻡ ﻓﻌﻠﻴﺎً ﻟﻠﺤﻔﺎﻅ ﻋﻠﻰ ﺣﺎﻟﺔ‬
‫ﺍﻟﺠﻠﺴﺔ‪،‬ﻓﻴﻤﻜﻨﻚ ﺍﺳﺘﺒﻌﺎﺩﻫﺎ ﻣﻦ ﺍﻟﺘﺤﻠﻴﻞ ﺍﻹﺿﺎﻓﻲ‪.‬‬

‫‪5.2‬ﺭﻣﻮﺯ ﺍﺧﺘﺒﺎﺭ ﺍﻟﻤﻌﻨﻰ‬


‫‪٥.٢.١‬ﺳﺠﻞّ ﺍﻟﺪﺧﻮﻝ ﺑﺄﺳﻤﺎء ﻣﺴﺘﺨﺪﻣﻴﻦ ﻣﺨﺘﻠﻔﻴﻦ ﻓﻲ ﺃﻭﻗﺎﺕ ﻣﺨﺘﻠﻔﺔ‪ ،‬ﻭﺳﺠﻞّ ﺍﻟﺮﻣﻮﺯ ﺍﻟﻤﺴﺘﻠﻤﺔ‬
‫ﻣﻦﺍﻟﺨﺎﺩﻡ‪ .‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﺴﺠﻴﻞ ﺍﻟﺬﺍﺗﻲ ﻣﺘﺎﺣﺎً ﻭﻳﻤﻜﻨﻚ ﺍﺧﺘﻴﺎﺭ ﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ‪ ،‬ﻓﺴﺠﻞّ‬
‫ﺍﻟﺪﺧﻮﻝﺑﺄﺳﻤﺎء ﻣﺴﺘﺨﺪﻣﻴﻦ ﻣﺘﺸﺎﺑﻬﺔ ﻣﻊ ﺍﺧﺘﻼﻓﺎﺕ ﺑﺴﻴﻄﺔ‪ ،‬ﻣﺜﻞ ‪، AAAC، AABA‬‬
‫‪ ،A، AA، AAA، AAAA، AAAB‬ﻭﻫﻜﺬﺍ‪ .‬ﺇﺫﺍ ﺗﻢ ﺇﺭﺳﺎﻝ ﺑﻴﺎﻧﺎﺕ ﺃﺧﺮﻯ ﺧﺎﺻﺔ ﺑﺎﻟﻤﺴﺘﺨﺪﻡ‬
‫ﻋﻨﺪﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ ﺃﻭ ﺗﺨﺰﻳﻨﻬﺎ ﻓﻲ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ )ﻣﺜﻞ ﻋﻨﻮﺍﻥ ﺍﻟﺒﺮﻳﺪ‬
‫ﺍﻹﻟﻜﺘﺮﻭﻧﻲ(‪ ،‬ﻓﻘﻢ ﺑﺈﺟﺮﺍء ﻣﻤﺎﺛﻞ ﻟﺘﻌﺪﻳﻞ ﺗﻠﻚ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺑﺸﻜﻞ ﻣﻨﻬﺠﻲ ﻭﺟﻤﻊ ﺍﻟﺮﻣﻮﺯ‬
‫ﺍﻟﻨﺎﺗﺠﺔ‪.‬‬
‫‪5.2.2‬ﻗﻢ ﺑﺘﺤﻠﻴﻞ ﺍﻟﺮﻣﻮﺯ ﺍﻟﺘﻲ ﺗﺘﻠﻘﺎﻫﺎ ﺑﺤﺜﺎً ﻋﻦ ﺃﻱ ﺍﺭﺗﺒﺎﻃﺎﺕ ﻳﺒﺪﻭ ﺃﻧﻬﺎ ﻣﺮﺗﺒﻄﺔ ﺑﺎﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ‬
‫ﻭﺍﻟﺒﻴﺎﻧﺎﺕﺍﻷﺧﺮﻯ ﺍﻟﺘﻲ ﻳﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪﻡ ﺍﻟﺘﺤﻜﻢ ﻓﻴﻬﺎ‪.‬‬
‫‪٥.٢.٣‬ﺣﻠﻞ ﺍﻟﺮﻣﻮﺯ ﺑﺤﺜﺎً ﻋﻦ ﺃﻱ ﺗﺮﻣﻴﺰ ﺃﻭ ﺗﺸﻮﻳﺶ ﻳﻤﻜﻦ ﺍﻛﺘﺸﺎﻓﻪ‪ .‬ﺍﺑﺤﺚ ﻋﻦ ﺍﺭﺗﺒﺎﻁ ﺑﻴﻦ ﻃﻮﻝ‬
‫ﺍﺳﻢﺍﻟﻤﺴﺘﺨﺪﻡ ﻭﻃﻮﻝ ﺍﻟﺮﻣﺰ‪ ،‬ﻣﻤﺎ ﻳﺪﻝ ﺑﻘﻮﺓ ﻋﻠﻰ ﺍﺳﺘﺨﺪﺍﻡ ﻧﻮﻉ ﻣﻦ ﺍﻟﺘﺸﻮﻳﺶ ﺃﻭ ﺍﻟﺘﺮﻣﻴﺰ‪.‬‬
‫ﺇﺫﺍﺍﺣﺘﻮﻯ ﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻋﻠﻰ ﺗﺴﻠﺴﻞ ﻣﻦ ﻧﻔﺲ ﺍﻟﺤﺮﻑ‪ ،‬ﻓﺎﺑﺤﺚ ﻋﻦ ﺗﺴﻠﺴﻞ ﺃﺣﺮﻑ‬
‫ﻣﻤﺎﺛﻞﻓﻲ ﺍﻟﺮﻣﺰ‪ ،‬ﻣﻤﺎ ﻗﺪ ﻳﺸﻴﺮ ﺇﻟﻰ ﺍﺳﺘﺨﺪﺍﻡ ﺗﺸﻮﻳﺶ ‪ .XOR‬ﺍﺑﺤﺚ ﻋﻦ ﺗﺴﻠﺴﻼﺕ ﻓﻲ‬
‫ﺍﻟﺮﻣﺰﺗﺤﺘﻮﻱ ﻓﻘﻂ ﻋﻠﻰ ﺃﺣﺮﻑ ﺳﺪﺍﺳﻴﺔ ﻋﺸﺮﻳﺔ‪ ،‬ﻣﻤﺎ ﻗﺪ ﻳﺸﻴﺮ ﺇﻟﻰ ﺗﺮﻣﻴﺰ ﺳﺪﺍﺳﻲ ﻋﺸﺮﻱ‬
‫ﻟﺴﻠﺴﻠﺔ‪ ASCII‬ﺃﻭ ﻣﻌﻠﻮﻣﺎﺕ ﺃﺧﺮﻯ‪ .‬ﺍﺑﺤﺚ ﻋﻦ ﺗﺴﻠﺴﻼﺕ ﺗﻨﺘﻬﻲ ﺑﻌﻼﻣﺔ ﻳﺴﺎﻭﻱ ﻭ‪/‬ﺃﻭ‬
‫ﺗﺤﺘﻮﻱﻓﻘﻂ ﻋﻠﻰ ﺃﺣﺮﻑ ‪ Base64‬ﺻﺎﻟﺤﺔ ﺃﺧﺮﻯ‪ :‬ﻣﻦ ‪ a‬ﺇﻟﻰ ‪ ،z‬ﻣﻦ ‪ A‬ﺇﻟﻰ ‪ ،Z‬ﻣﻦ ‪ 0‬ﺇﻟﻰ ‪،9‬‬
‫‪ ،+‬ﻭ‪./‬‬

‫‪٥.٢.٤‬ﺇﺫﺍ ﺗﻤﻜﻨﺖ ﻣﻦ ﺗﺤﺪﻳﺪ ﺃﻱ ﺑﻴﺎﻧﺎﺕ ﺫﺍﺕ ﻣﻌﻨﻰ ﺿﻤﻦ ﻋﻴﻨﺔ ﺭﻣﻮﺯ ﺍﻟﺠﻠﺴﺔ‪ ،‬ﻓﻔﻜﺮّ ﻓﻴﻤﺎ ﺇﺫﺍ ﻛﺎﻥ‬
‫ﺫﻟﻚﻛﺎﻓﻴﺎً ﻟﺸﻦ ّﻫﺠﻮﻡ ﻳﺤﺎﻭﻝ ﺗﺨﻤﻴﻦ ﺍﻟﺮﻣﻮﺯ ﺍﻟﺼﺎﺩﺭﺓ ﻣﺆﺧﺮﺍً ﻟﻤﺴﺘﺨﺪﻣﻲ ﺗﻄﺒﻴﻖ ﺁﺧﺮﻳﻦ‪.‬‬
‫ﺍﺑﺤﺚﻋﻦ ﺻﻔﺤﺔ ﻓﻲ ﺍﻟﺘﻄﺒﻴﻖ ﺗﻌﺘﻤﺪ ﻋﻠﻰ ﺍﻟﺠﻠﺴﺔ‪ ،‬ﻭﺍﺳﺘﺨﺪﻡ ﺍﻟﺘﻘﻨﻴﺎﺕ ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪816‬‬

‫ﺗﻢﻭﺻﻒ ﺫﻟﻚ ﻓﻲ ﺍﻟﻔﺼﻞ ‪ 14‬ﻷﺗﻤﺘﺔ ﻣﻬﻤﺔ ﺇﻧﺸﺎء ﺍﻟﺮﻣﻮﺯ ﺍﻟﻤﻤﻜﻨﺔ ﻭﺍﺧﺘﺒﺎﺭﻫﺎ‪.‬‬

‫‪5.3‬ﺭﻣﻮﺯ ﺍﻻﺧﺘﺒﺎﺭ ﻟﻠﻘﺪﺭﺓ ﻋﻠﻰ ﺍﻟﺘﻨﺒﺆ‬


‫‪5.3.1‬ﺇﻧﺸﺎء ﻭﺍﻟﺘﻘﺎﻁ ﻋﺪﺩ ﻛﺒﻴﺮ ﻣﻦ ﺭﻣﻮﺯ ﺍﻟﺠﻠﺴﺔ ﻓﻲ ﺗﺘﺎﺑﻊ ﺳﺮﻳﻊ‪ ،‬ﺑﺎﺳﺘﺨﺪﺍﻡ ﻃﻠﺐ ﻳﺘﺴﺒﺐ ﻓﻲ‬
‫ﻗﻴﺎﻡﺍﻟﺨﺎﺩﻡ ﺑﺈﺭﺟﺎﻉ ﺭﻣﺰ ﺟﺪﻳﺪ )ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﻃﻠﺐ ﺗﺴﺠﻴﻞ ﺩﺧﻮﻝ ﻧﺎﺟﺢ(‪.‬‬

‫‪٥.٣.٢‬ﺣﺎﻭﻝ ﺗﺤﺪﻳﺪ ﺃﻱ ﺃﻧﻤﺎﻁ ﺿﻤﻦ ﻋﻴﻨﺔ ﺍﻟﺮﻣﻮﺯ‪ .‬ﻓﻲ ﺟﻤﻴﻊ ﺍﻟﺤﺎﻻﺕ‪ ،‬ﺍﺳﺘﺨﺪﻡ ﺑﺮﻧﺎﻣﺞ‬
‫‪ ،Burp Sequencer‬ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓﻲ ﺍﻟﻔﺼﻞ ‪ ،٧‬ﻹﺟﺮﺍء ﺍﺧﺘﺒﺎﺭﺍﺕ ﺇﺣﺼﺎﺉﻴﺔ ﻣﻔﺼﻠﺔ‬
‫ﻟﺨﺼﺎﺉﺺﻋﺸﻮﺍﺉﻴﺔ ﺭﻣﻮﺯ ﺍﻟﺘﻄﺒﻴﻖ‪ .‬ﺑﻨﺎء ًﻋﻠﻰ ﺍﻟﻨﺘﺎﺉﺞ‪ ،‬ﻗﺪ ﻳﻜﻮﻥ ﻣﻦ ﺍﻟﻤﻔﻴﺪ ﺃﻳﻀﺎً ﺇﺟﺮﺍء‬
‫ﺍﻟﺘﺤﻠﻴﻞﺍﻟﻴﺪﻭﻱ ﺍﻟﺘﺎﻟﻲ‪:‬‬

‫ﻃﺒﻖّﻓﻬﻤﻚ ﻟﻠﺮﻣﻮﺯ ﻭﺍﻟﺘﺴﻠﺴﻼﺕ ﺍﻟﻔﺮﻋﻴﺔ ﺍﻟﺘﻲ ﻳﺴﺘﺨﺪﻣﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ ﻓﻌﻠﻴﺎً ﻹﻋﺎﺩﺓ‬ ‫‪-‬‬

‫ﺗﺤﺪﻳﺪﻫﻮﻳﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ‪ .‬ﺗﺠﺎﻫﻞ ﺃﻱ ﺑﻴﺎﻧﺎﺕ ﻻ ﺗﺴُﺘﺨﺪﻡ ﺑﻬﺬﻩ ﺍﻟﻄﺮﻳﻘﺔ‪ ،‬ﺣﺘﻰ ﻟﻮ‬


‫ﺍﺧﺘﻠﻔﺖﺑﻴﻦ ﺍﻟﻌﻴﻨﺎﺕ‪.‬‬
‫ﺇﺫﺍﻟﻢ ﻳﻜﻦ ﻧﻮﻉ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﻮﺟﻮﺩﺓ ﻓﻲ ﺍﻟﺮﻣﺰ‪ ،‬ﺃﻭ ﻓﻲ ﺃﻱ ٍّﻣﻦ ﻣﻜﻮﻧﺎﺗﻪ‪ ،‬ﻭﺍﺿﺤﺎً‪ ،‬ﻓﺤﺎﻭﻝ‬ ‫‪-‬‬

‫ﺗﻄﺒﻴﻖﻋﻤﻠﻴﺎﺕ ﻓﻚ ﺗﺸﻔﻴﺮ ﻣﺨﺘﻠﻔﺔ )ﻣﺜﻞ ‪ (Base64‬ﻟﻤﻌﺮﻓﺔ ﻣﺎ ﺇﺫﺍ ﻛﺎﻧﺖ ﻫﻨﺎﻙ‬


‫ﺑﻴﺎﻧﺎﺕﺃﻛﺜﺮ ﻓﺎﺉﺪﺓ‪ .‬ﻗﺪ ﻳﻜﻮﻥ ﻣﻦ ﺍﻟﻀﺮﻭﺭﻱ ﺗﻄﺒﻴﻖ ﻋﺪﺓ ﻋﻤﻠﻴﺎﺕ ﻓﻚ ﺗﺸﻔﻴﺮ ﻣﺘﺘﺎﻟﻴﺔ‪.‬‬

‫ﺣﺎﻭﻝﺗﺤﺪﻳﺪ ﺃﻱ ﺃﻧﻤﺎﻁ ﻓﻲ ﺗﺴﻠﺴﻞ ﺍﻟﻘﻴﻢ ﺍﻟﻤﻮﺟﻮﺩﺓ ﻓﻲ ﻛﻞ ﺭﻣﺰ ﺃﻭ ﻣﻜﻮﻥ ﻣﻔﻜﻚ‪.‬‬ ‫‪-‬‬

‫ﺍﺣﺴﺐﺍﻟﻔﺮﻭﻗﺎﺕ ﺑﻴﻦ ﺍﻟﻘﻴﻢ ﺍﻟﻤﺘﺘﺎﻟﻴﺔ‪ .‬ﺣﺘﻰ ﻟﻮ ﺑﺪﺕ ﻫﺬﻩ ﺍﻟﻔﺮﻭﻗﺎﺕ ﻋﺸﻮﺍﺉﻴﺔ‪ ،‬ﻓﻘﺪ‬
‫ﺗﻜﻮﻥﻫﻨﺎﻙ ﻣﺠﻤﻮﻋﺔ ﺛﺎﺑﺘﺔ ﻣﻦ ﺍﻟﻔﺮﻭﻗﺎﺕ ﺍﻟﻤﻠﺤﻮﻇﺔ‪ ،‬ﻣﻤﺎ ﻳﻀُﻴﻖّ ﻧﻄﺎﻕ ﺃﻱ ﻫﺠﻮﻡ‬
‫ﺑﺎﻟﻘﻮﺓﺍﻟﻐﺎﺷﻤﺔ ﺑﺸﻜﻞ ﻛﺒﻴﺮ‪.‬‬

‫ﺍﺣﺼﻞﻋﻠﻰ ﻋﻴﻨﺔ ﻣﻤﺎﺛﻠﺔ ﻣﻦ ﺍﻟﺮﻣﻮﺯ ﺑﻌﺪ ﺍﻻﻧﺘﻈﺎﺭ ﻟﺒﻀﻊ ﺩﻗﺎﺉﻖ‪ ،‬ﻭﻛﺮﺭّ ﺍﻟﺘﺤﻠﻴﻞ ﻧﻔﺴﻪ‪.‬‬ ‫‪-‬‬

‫ﺣﺎﻭﻝﺗﺤﺪﻳﺪ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﻣﺤﺘﻮﻯ ﺃﻱ ٍّﻣﻦ ﺍﻟﺮﻣﻮﺯ ﻣﺮﺗﺒﻄﺎً ﺑﺎﻟﻮﻗﺖ‪.‬‬

‫‪5.3.3‬ﺇﺫﺍ ﻻﺣﻈﺖ َﺃﻱ ﺃﻧﻤﺎﻁ‪ ،‬ﻓﺎﻟﺘﻘﻂ ﻋﻴﻨﺔ ﺛﺎﻧﻴﺔ ﻣﻦ ﺍﻟﺮﻣﻮﺯ ﺑﺎﺳﺘﺨﺪﺍﻡ ﻋﻨﻮﺍﻥ ‪ IP‬ﻣﺨﺘﻠﻒ ﻭﺍﺳﻢ‬
‫ﻣﺴﺘﺨﺪﻡﻣﺨﺘﻠﻒ‪ .‬ﺳﻴﺴﺎﻋﺪﻙ ﻫﺬﺍ ﻋﻠﻰ ﺗﺤﺪﻳﺪ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﻗﺪ ﺗﻢ ﺭﺻﺪ ﺍﻟﻨﻤﻂ ﻧﻔﺴﻪ‪ ،‬ﻭﻣﺎ‬
‫ﺇﺫﺍﻛﺎﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺍﺳﺘﻘﺮﺍء ﺍﻟﺮﻣﻮﺯ ﺍﻟﻤﺴﺘﻠﻤﺔ ﻓﻲ ﺍﻟﺘﻤﺮﻳﻦ ﺍﻷﻭﻝ ﻟﺘﺨﻤﻴﻦ ﺍﻟﺮﻣﻮﺯ‬
‫ﺍﻟﻤﺴﺘﻠﻤﺔﻓﻲ ﺍﻟﺘﻤﺮﻳﻦ ﺍﻟﺜﺎﻧﻲ‪.‬‬

‫‪5.3.4‬ﺇﺫﺍ ﺗﻤﻜﻨﺖ ﻣﻦ ﺗﺤﺪﻳﺪ ﺃﻱ ﺗﺴﻠﺴﻼﺕ ﻗﺎﺑﻠﺔ ﻟﻼﺳﺘﻐﻼﻝ ﺃﻭ ﺗﺒﻌﻴﺎﺕ ﺯﻣﻨﻴﺔ‪ ،‬ﻓﻔﻜﺮّ ﻓﻴﻤﺎ ﺇﺫﺍ‬
‫ﻛﺎﻥﺫﻟﻚ ﻛﺎﻓﻴﺎً ﻟﺸﻦ ﻫﺠﻮﻡ ﻳﺤﺎﻭﻝ ﺗﺨﻤﻴﻦ ﺍﻟﺮﻣﻮﺯ ﺍﻟﻤﺼُﺪﺭﺓ ﻣﺆﺧﺮﺍً ﻟﻤﺴﺘﺨﺪﻣﻲ ﺗﻄﺒﻴﻘﺎﺕ‬
‫ﺁﺧﺮﻳﻦ‪.‬ﺍﺳﺘﺨﺪﻡ ﺍﻟﺘﻘﻨﻴﺎﺕ ﺍﻟﻤﻮﺿﺤﺔ ﻓﻲ ﺍﻟﻔﺼﻞ ‪ 14‬ﻷﺗﻤﺘﺔ ﻣﻬﻤﺔ ﺗﻮﻟﻴﺪ ﺍﻟﺮﻣﻮﺯ ﺍﻟﻤﺤُﺘﻤﻠﺔ‬
‫ﻭﺍﺧﺘﺒﺎﺭﻫﺎ‪.‬ﺑﺎﺳﺘﺜﻨﺎء ﺃﺑﺴﻂ ﺃﻧﻮﺍﻉ ﺍﻟﺘﺴﻠﺴﻼﺕ‪،‬‬

‫ﻣﻦﺍﻟﻤﺤﺘﻤﻞ ﺃﻥ ﻳﺘﻄﻠﺐ ﻫﺠﻮﻣﻚ ﺍﺳﺘﺨﺪﺍﻡ ﺑﺮﻧﺎﻣﺞ ﻧﺼﻲ ﻣﺨﺼﺺ ﻣﻦ ﻧﻮﻉ ﻣﺎ‪.‬‬


‫‪817‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫‪٥.٣.٥‬ﺇﺫﺍ ﺑﺪﺍ ﺃﻥ ﻣﻌُﺮﻑِّ ﺍﻟﺠﻠﺴﺔ ﻣﻌُﺪَﻝَّ ﺧﺼﻴﺼﺎً‪ ،‬ﻓﺎﺳﺘﺨﺪﻡ ﻣﺼﺪﺭ ﺣﻤﻮﻟﺔ "‪ "bit flipper‬ﻓﻲ‬
‫‪ Burp Intruder‬ﻟﺘﻌﺪﻳﻞ ﻛﻞ ﺑﺖ ﻓﻲ ﺭﻣﺰ ﺍﻟﺠﻠﺴﺔ ﺑﺎﻟﺘﺴﻠﺴﻞ‪ .‬ﺍﺑﺤﺚ ﻋﻦ ﺳﻠﺴﻠﺔ ﻧﺼﻴﺔ‬
‫ﻓﻲﺍﻻﺳﺘﺠﺎﺑﺔ ﺗﺸُﻴﺮ ﺇﻟﻰ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﺗﻌﺪﻳﻞ ﺍﻟﺮﻣﺰ ﻟﻢ ﻳﺆُﺩ ِّﺇﻟﻰ ﺟﻠﺴﺔ ﻏﻴﺮ ﺻﺎﻟﺤﺔ‪ ،‬ﻭﻣﺎ ﺇﺫﺍ‬
‫ﻛﺎﻧﺖﺍﻟﺠﻠﺴﺔ ﺗﺎﺑﻌﺔ ﻟﻤﺴﺘﺨﺪﻡ ﺁﺧﺮ‪.‬‬

‫‪5.4‬ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺍﻟﻨﻘﻞ ﻏﻴﺮ ﺍﻵﻣﻦ ﻟﻠﺮﻣﻮﺯ‬


‫‪5.4.1‬ﺗﺠﻮﻝّ ﻓﻲ ﺍﻟﺘﻄﺒﻴﻖ ﻛﺎﻟﻤﻌﺘﺎﺩ‪ ،‬ﺑﺪءﺍً ﻣﻦ ﺍﻟﻤﺤﺘﻮﻯ ﻏﻴﺮ ﺍﻟﻤﺼُﺎﺩﻕ ﻋﻠﻴﻪ ﻓﻲ ﻋﻨﻮﺍﻥ ‪URL‬‬
‫ﺍﻷﻭﻟﻲ‪،‬ﺛﻢ ﺍﻧﺘﻘﻞ ﺇﻟﻰ ﻋﻤﻠﻴﺔ ﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ‪ ،‬ﺛﻢ ﺍﻧﺘﻘﻞ ﺇﻟﻰ ﺟﻤﻴﻊ ﻭﻇﺎﺉﻒ ﺍﻟﺘﻄﺒﻴﻖ‪.‬‬
‫ﺩﻭﻥّﻛﻞ ﻣﺮﺓ ﻳﺘﻢ ﻓﻴﻬﺎ ﺇﺻﺪﺍﺭ ﺭﻣﺰ ﺟﻠﺴﺔ ﺟﺪﻳﺪ‪ ،‬ﻭﺃﻱ ﺃﺟﺰﺍء ﻣﻦ ﺍﺗﺼﺎﻻﺗﻚ ﺗﺴﺘﺨﺪﻡ ‪HTTP‬‬
‫ﻭﺃﻳﻬﺎﺗﺴﺘﺨﺪﻡ ‪.HTTPS‬‬

‫ﺑﺈﻣﻜﺎﻧﻚﺍﺳﺘﺨﺪﺍﻡ ﻭﻇﻴﻔﺔ ﺍﻟﺘﺴﺠﻴﻞ ﺍﻟﺨﺎﺻﺔ ﺑﻮﻛﻴﻞ ﺍﻻﻋﺘﺮﺍﺽ ﺍﻟﺨﺎﺹ ﺑﻚ ﻟﺘﺴﺠﻴﻞ ﻫﺬﻩ‬


‫ﺍﻟﻤﻌﻠﻮﻣﺎﺕ‪.‬‬
‫‪5.4.2‬ﺇﺫﺍ ﺗﻢ ﺍﺳﺘﺨﺪﺍﻡ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ‪ HTTP‬ﻛﺂﻟﻴﺔ ﺇﺭﺳﺎﻝ ﻟﺮﻣﻮﺯ ﺍﻟﺠﻠﺴﺔ‪ ،‬ﻓﺘﺄﻛﺪ ﻣﻦ‬
‫ﺗﻌﻴﻴﻦﺍﻟﻌﻠﻢ ﺍﻵﻣﻦ‪ ،‬ﻣﻤﺎ ﻳﻤﻨﻊ ﺇﺭﺳﺎﻟﻬﺎ ﻋﻠﻰ ﺍﻹﻃﻼﻕ ﻋﺒﺮ ﺍﺗﺼﺎﻻﺕ ‪.HTTP‬‬

‫‪٥.٤.٣‬ﺗﺄﻛﺪ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻥ ﻳﺘﻢ‪ ،‬ﻓﻲ ﺍﻻﺳﺘﺨﺪﺍﻡ ﺍﻟﻌﺎﺩﻱ ﻟﻠﺘﻄﺒﻴﻖ‪ ،‬ﻧﻘﻞ ﺭﻣﻮﺯ ﺍﻟﺠﻠﺴﺔ ﻋﺒﺮ ﺍﺗﺼﺎﻝ‬
‫‪ .HTTP‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻷﻣﺮ ﻛﺬﻟﻚ‪ ،‬ﻓﻬﻲ ﻋﺮﺿﺔ ﻟﻼﻋﺘﺮﺍﺽ‪.‬‬

‫‪5.4.4‬ﻓﻲ ﺍﻟﺤﺎﻻﺕ ﺍﻟﺘﻲ ﻳﺴﺘﺨﺪﻡ ﻓﻴﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ ‪ HTTP‬ﻟﻠﻤﻨﺎﻃﻖ ﻏﻴﺮ ﺍﻟﻤﺼﺎﺩﻕ ﻋﻠﻴﻬﺎ ﻭﻳﺘﺤﻮﻝ‬
‫ﺇﻟﻰ‪ HTTPS‬ﻟﺘﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ ﻭ‪/‬ﺃﻭ ﺍﻟﻤﻨﺎﻃﻖ ﺍﻟﻤﺼﺎﺩﻕ ﻋﻠﻴﻬﺎ ﻟﻠﺘﻄﺒﻴﻖ‪ ،‬ﺗﺤﻘﻖ ﻣﻤﺎ ﺇﺫﺍ‬
‫ﻛﺎﻥﻳﺘﻢ ﺇﺻﺪﺍﺭ ﺭﻣﺰ ﺟﺪﻳﺪ ﻟﺠﺰء ‪ HTTPS‬ﻣﻦ ﺍﻻﺗﺼﺎﻻﺕ‪ ،‬ﺃﻭ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺮﻣﺰ ﺍﻟﺬﻱ ﺗﻢ‬
‫ﺇﺻﺪﺍﺭﻩﺃﺛﻨﺎء ﻣﺮﺣﻠﺔ ‪ HTTP‬ﻳﻈﻞ ﻧﺸﻄﺎً ﻋﻨﺪﻣﺎ ﻳﺘﺤﻮﻝ ﺍﻟﺘﻄﺒﻴﻖ ﺇﻟﻰ ‪.HTTPS‬‬

‫ﺇﺫﺍﻇﻠﺖ ﺍﻟﺮﻣﺰ ﺍﻟﻤﻤﻴﺰ ﺍﻟﺬﻱ ﺗﻢ ﺇﺻﺪﺍﺭﻩ ﺃﺛﻨﺎء ﻣﺮﺣﻠﺔ ‪ HTTP‬ﻧﺸﻄﺎً‪ ،‬ﻓﺴﻴﻜﻮﻥ ﺍﻟﺮﻣﺰ ﺍﻟﻤﻤﻴﺰ‬
‫ﻋﺮﺿﺔﻟﻠﺘﻨﺼﺖ‪.‬‬
‫‪٥.٤.٥‬ﺇﺫﺍ ﻛﺎﻧﺖ ﻣﻨﻄﻘﺔ ‪ HTTPS‬ﻓﻲ ﺍﻟﺘﻄﺒﻴﻖ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺃﻱ ﺭﻭﺍﺑﻂ ﻟﻌﻨﺎﻭﻳﻦ ‪،URL HTTP‬‬
‫ﻓﺎﺗﺒﻌﻬﺎﻭﺗﺤﻘﻖ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻥ ﺭﻣﺰ ﺍﻟﺠﻠﺴﺔ ﻗﺪ ﺗﻢ ﺇﺭﺳﺎﻟﻪ‪ .‬ﺇﺫﺍ ﻛﺎﻥ ﻛﺬﻟﻚ‪ ،‬ﻓﺤﺪﺩ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﻻ‬
‫ﻳﺰﺍﻝﺻﺎﻟﺤﺎً ﺃﻡ ﺳﻴﺘﻢ ﺇﻧﻬﺎﺅﻩ ﻓﻮﺭﺍً ﻣﻦ ﻗﺒِﻞ ﺍﻟﺨﺎﺩﻡ‪.‬‬

‫‪5.5‬ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺍﻟﻜﺸﻒ ﻋﻦ ﺍﻟﺮﻣﻮﺯ ﻓﻲ ﺍﻟﺴﺠﻼﺕ‬


‫‪٥.٥.١‬ﺇﺫﺍ ﻛﺸﻔﺖ ﻋﻤﻠﻴﺎﺕ ﺗﻌﻴﻴﻦ ﺗﻄﺒﻴﻘﻚ ﻋﻦ ﺃﻱ ﻭﻇﺎﺉﻒ ﺗﺴﺠﻴﻞ ﺃﻭ ﻣﺮﺍﻗﺒﺔ ﺃﻭ ﺗﺸﺨﻴﺺ‪،‬‬
‫ﻓﺮﺍﺟﻊﻫﺬﻩ ﺍﻟﻮﻇﺎﺉﻒ ﺑﺪﻗﺔ ﻟﺘﺤﺪﻳﺪ ﻣﺎ ﺇﺫﺍ ﻛﺎﻧﺖ ﺃﻱ ﺭﻣﻮﺯ ﺟﻠﺴﺔ ﻣﻔُﺼﺢ ﻋﻨﻬﺎ ﺿﻤﻨﻬﺎ‪.‬‬
‫ﺗﺄﻛﺪﻣﻦ ﻫﻮﻳﺔ ﺍﻟﻤﺼُﺮﺡّ ﻟﻪ ﻋﺎﺩﺓ ًﺑﺎﻟﻮﺻﻮﻝ ﺇﻟﻰ ﻫﺬﻩ ﺍﻟﻮﻇﺎﺉﻒ‪ .‬ﺇﺫﺍ ﻛﺎﻧﺖ ﻣﺨﺼﺼﺔ‬
‫ﻟﻠﻤﺴﺆﻭﻟﻴﻦﻓﻘﻂ‪ ،‬ﻓﺘﺄﻛﺪ ﻣﻦ ﻭﺟﻮﺩ ﺃﻱ ﺛﻐﺮﺍﺕ ﺃﻣﻨﻴﺔ ﺃﺧﺮﻯ ﻗﺪ ﺗﻤُﻜﻦّ ﻣﺴﺘﺨﺪﻣﺎً ﺫﻱ‬
‫ﺻﻼﺣﻴﺎﺕﺃﻗﻞ ﻣﻦ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻴﻬﺎ‪.‬‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪818‬‬

‫‪5.5.2‬ﺣﺪﺩ ﺃﻱ ﺣﺎﻻﺕ ﺗﻨُﻘﻞ ﻓﻴﻬﺎ ﺭﻣﻮﺯ ﺍﻟﺠﻠﺴﺔ ﺩﺍﺧﻞ ﻋﻨﻮﺍﻥ ‪ .URL‬ﻗﺪ ﺗﻜﻮﻥ ﺍﻟﺮﻣﻮﺯ ﺗﻨُﻘﻞ ﻋﺎﺩﺓ ً‬
‫ﺑﻄﺮﻳﻘﺔﺃﻛﺜﺮ ﺃﻣﺎﻧﺎً‪ ،‬ﻭﻟﻜﻦ ﻗﺪ ﻳﺴﺘﺨﺪﻡ ﺍﻟﻤﻄﻮﺭﻭﻥ ﻋﻨﻮﺍﻥ ‪ URL‬ﻓﻲ ﺣﺎﻻﺕ ﻣﺤﺪﺩﺓ ﻟﺤﻞ‬
‫ﻣﺸﻜﻠﺔﻣﻌﻴﻨﺔ‪ .‬ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ‪ ،‬ﻗﺪ ﺗﻨُﻘﻞ ﻫﺬﻩ ﺍﻟﺮﻣﻮﺯ ﺩﺍﺧﻞﺍﻟﻤﺤُﻴﻞﻋﻨﺪ ﻣﺘﺎﺑﻌﺔ‬
‫ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦﻷﻱ ﺭﻭﺍﺑﻂ ﺧﺎﺭﺟﻴﺔ‪ .‬ﺗﺤﻘﻖ ﻣﻦ ﻭﺟﻮﺩ ﺃﻱ ﻭﻇﻴﻔﺔ ﺗﻤُﻜﻨّﻚ ﻣﻦ ﺇﺩﺭﺍﺝ ﺭﻭﺍﺑﻂ‬
‫ﺧﺎﺭﺟﻴﺔﻋﺸﻮﺍﺉﻴﺔ ﻓﻲ ﺍﻟﺼﻔﺤﺎﺕ ﺍﻟﺘﻲ ﻳﺸﺎﻫﺪﻫﺎ ﻣﺴﺘﺨﺪﻣﻮﻥ ﺁﺧﺮﻭﻥ‪.‬‬

‫‪5.5.3‬ﺇﺫﺍ ﻭﺟﺪﺕ ﺃﻱ ﻃﺮﻳﻘﺔ ﻟﺠﻤﻊ ﺭﻣﻮﺯ ﺍﻟﺠﻠﺴﺔ ﺍﻟﺼﺎﻟﺤﺔ ﺍﻟﺼﺎﺩﺭﺓ ﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺁﺧﺮﻳﻦ‪،‬‬
‫ﺍﺑﺤﺚﻋﻦ ﻃﺮﻳﻘﺔ ﻻﺧﺘﺒﺎﺭ ﻛﻞ ﺭﻣﺰ ﻟﺘﺤﺪﻳﺪ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﻳﻨﺘﻤﻲ ﺇﻟﻰ ﻣﺴﺘﺨﺪﻡ ﺇﺩﺍﺭﻱ )ﻋﻠﻰ‬
‫ﺳﺒﻴﻞﺍﻟﻤﺜﺎﻝ‪ ،‬ﻋﻦ ﻃﺮﻳﻖ ﻣﺤﺎﻭﻟﺔ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﻭﻇﻴﻔﺔ ﻣﻤﻴﺰﺓ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺍﻟﺮﻣﺰ(‪.‬‬

‫‪5.6‬ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﻣﻄﺎﺑﻘﺔ ﺍﻟﺮﻣﻮﺯ ﻟﻠﺠﻠﺴﺎﺕ‬


‫‪5.6.1‬ﺳﺠﻞّ ﺩﺧﻮﻟﻚ ﺇﻟﻰ ﺍﻟﺘﻄﺒﻴﻖ ﻣﺮﺗﻴﻦ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺣﺴﺎﺏ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻧﻔﺴﻪ‪ ،‬ﺇﻣﺎ ﻣﻦ ﻣﺘﺼﻔﺢ‬
‫ﻣﺨﺘﻠﻒﺃﻭ ﻣﻦ ﺟﻬﺎﺯﻱ ﻛﻤﺒﻴﻮﺗﺮ ﻣﺨﺘﻠﻔﻴﻦ‪ .‬ﺗﺄﻛﺪ ﻣﻦ ﺃﻥ ﺍﻟﺠﻠﺴﺘﻴﻦ ﻻ ﺗﺰﺍﻻﻥ ﻧﺸﻄﺘﻴﻦ ﻓﻲ‬
‫ﺁﻥﻭﺍﺣﺪ‪ .‬ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ‪ ،‬ﻳﺪﻋﻢ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺠﻠﺴﺎﺕ ﺍﻟﻤﺘﺰﺍﻣﻨﺔ‪ ،‬ﻣﻤﺎ ﻳﻤُﻜﻦّ ﺍﻟﻤﻬﺎﺟﻢ ﺍﻟﺬﻱ‬
‫ﺍﺧﺘﺮﻕﺑﻴﺎﻧﺎﺕ ﺍﻋﺘﻤﺎﺩ ﻣﺴﺘﺨﺪﻡ ﺁﺧﺮ ﻣﻦ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﺩﻭﻥ ﺧﻄﺮ ﺍﻟﻜﺸﻒ‪.‬‬

‫‪5.6.2‬ﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ ﻭﺍﻟﺨﺮﻭﺝ ﻋﺪﺓ ﻣﺮﺍﺕ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺣﺴﺎﺏ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻧﻔﺴﻪ‪ ،‬ﺳﻮﺍء ًﻣﻦ‬
‫ﻣﺘﺼﻔﺤﺎﺕﻣﺨﺘﻠﻔﺔ ﺃﻭ ﺃﺟﻬﺰﺓ ﻛﻤﺒﻴﻮﺗﺮ ﻣﺨﺘﻠﻔﺔ‪ .‬ﺣﺪﺩّ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﻳﺘﻢ ﺇﺻﺪﺍﺭ ﺭﻣﺰ ﺟﻠﺴﺔ‬
‫ﺟﺪﻳﺪﻓﻲ ﻛﻞ ﻣﺮﺓ‪ ،‬ﺃﻭ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﻳﺘﻢ ﺇﺻﺪﺍﺭ ﺍﻟﺮﻣﺰ ﻧﻔﺴﻪ ﻓﻲ ﻛﻞ ﻣﺮﺓ ﻳﺘﻢ ﻓﻴﻬﺎ ﺗﺴﺠﻴﻞ‬
‫ﺩﺧﻮﻝﺍﻟﺤﺴﺎﺏ ﻧﻔﺴﻪ‪ .‬ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ‪ ،‬ﻻ ﻳﺴﺘﺨﺪﻡ ﺍﻟﺘﻄﺒﻴﻖ ﺭﻣﻮﺯ ﺟﻠﺴﺔ ﺻﺤﻴﺤﺔ‪ ،‬ﺑﻞ‬
‫ﻳﺴﺘﺨﺪﻡﺳﻼﺳﻞ ﻓﺮﻳﺪﺓ ﻭﻣﺴﺘﻤﺮﺓ ﻹﻋﺎﺩﺓ ﺗﻌﺮﻳﻒ ﻛﻞ ﻣﺴﺘﺨﺪﻡ‪ .‬ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ‪ ،‬ﻻ ﺗﻮﺟﺪ‬
‫ﻃﺮﻳﻘﺔﻟﻠﺤﻤﺎﻳﺔ ﻣﻦ ﻋﻤﻠﻴﺎﺕ ﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ ﺍﻟﻤﺘﺰﺍﻣﻨﺔ ﺃﻭ ﺗﻄﺒﻴﻖ ﻣﻬﻠﺔ ﺍﻟﺠﻠﺴﺔ ﺑﺸﻜﻞ‬
‫ﺻﺤﻴﺢ‪.‬‬

‫‪٥.٦.٣‬ﺇﺫﺍ ﺑﺪﺍ ﺃﻥ ﺍﻟﺮﻣﻮﺯ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺃﻱ ﺑﻨﻴﺔ ﺃﻭ ﻣﻌﻨﻰ‪ ،‬ﻓﺤﺎﻭﻝ ﻓﺼﻞ ﺍﻟﻤﻜﻮﻧﺎﺕ ﺍﻟﺘﻲ ﻗﺪ ﺗﺤُﺪﺩ‬
‫ﻫﻮﻳﺔﺍﻟﻤﺴﺘﺨﺪﻡ ﻋﻦ ﺗﻠﻚ ﺍﻟﺘﻲ ﺗﺒﺪﻭ ﻏﺎﻣﻀﺔ‪ .‬ﺣﺎﻭﻝ ﺗﻌﺪﻳﻞ ﺃﻱ ﻣﻜﻮﻧﺎﺕ ﻣﺘﻌﻠﻘﺔ‬
‫ﺑﺎﻟﻤﺴﺘﺨﺪﻡﻓﻲ ﺍﻟﺮﻣﺰ ﺑﺤﻴﺚ ﺗﺸﻴﺮ ﺇﻟﻰ ﻣﺴﺘﺨﺪﻣﻴﻦ ﺁﺧﺮﻳﻦ ﻣﻌﺮﻭﻓﻴﻦ ﻟﻠﺘﻄﺒﻴﻖ‪ .‬ﺗﺤﻘﻖ‬
‫ﻣﻤﺎﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﻘﺒﻞ ﺍﻟﺮﻣﺰ ﺍﻟﻨﺎﺗﺞ ﻭﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﻳﻤُﻜﻨّﻚ ﻣﻦ ﺍﻧﺘﺤﺎﻝ ﺷﺨﺼﻴﺔ ﺫﻟﻚ‬
‫ﺍﻟﻤﺴﺘﺨﺪﻡ‪.‬ﺭﺍﺟﻊ ﺍﻟﻔﺼﻞ ‪ ٧‬ﻟﻼﻃﻼﻉ ﻋﻠﻰ ﺃﻣﺜﻠﺔ ﻋﻠﻰ ﻫﺬﺍ ﺍﻟﻨﻮﻉ ﻣﻦ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ‬
‫ﺍﻟﺪﻗﻴﻘﺔ‪.‬‬

‫‪5.7‬ﺇﻧﻬﺎء ﺟﻠﺴﺔ ﺍﻻﺧﺘﺒﺎﺭ‬


‫‪٥.٧.١‬ﻋﻨﺪ ﺍﺧﺘﺒﺎﺭ ﺛﻐﺮﺍﺕ ﺍﻧﺘﻬﺎء ﺻﻼﺣﻴﺔ ﺍﻟﺠﻠﺴﺔ ﻭﺗﺴﺠﻴﻞ ﺍﻟﺨﺮﻭﺝ‪ ،‬ﺭﻛﺰّ ﻓﻘﻂ ﻋﻠﻰ ﻣﻌﺎﻟﺠﺔ ﺍﻟﺨﺎﺩﻡ‬
‫ﻟﻠﺠﻠﺴﺎﺕﻭﺍﻟﺮﻣﻮﺯ‪ ،‬ﺑﺪﻻ ًﻣﻦ ﺃﻱ ﺃﺣﺪﺍﺙ ﺗﺤﺪﺙ ﻋﻠﻰ ﺟﻬﺎﺯ ﺍﻟﻌﻤﻴﻞ‪ .‬ﻓﻴﻤﺎ ﻳﺘﻌﻠﻖ ﺑﺈﻧﻬﺎء‬
‫ﺍﻟﺠﻠﺴﺔ‪،‬ﻻ ﻳﻌﺘﻤﺪ ﺍﻷﻣﺮ ﻛﺜﻴﺮﺍً ﻋﻠﻰ ﻣﺎ ﻳﺤﺪﺙ ﻟﻠﺮﻣﺰ ﺩﺍﺧﻞ ﻣﺘﺼﻔﺢ ﺍﻟﻌﻤﻴﻞ‪.‬‬
‫‪819‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫‪5.7.2‬ﺗﺤﻘﻖ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻧﺘﻬﺎء ﺻﻼﺣﻴﺔ ﺍﻟﺠﻠﺴﺔ ﻗﺪ ﺗﻢ ﺗﻨﻔﻴﺬﻩ ﻋﻠﻰ ﺍﻟﺨﺎﺩﻡ‪:‬‬

‫ﻗﻢﺑﺘﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ ﺇﻟﻰ ﺍﻟﺘﻄﺒﻴﻖ ﻟﻠﺤﺼﻮﻝ ﻋﻠﻰ ﺭﻣﺰ ﺟﻠﺴﺔ ﺻﺎﻟﺢ‪.‬‬ ‫‪-‬‬

‫ﺍﻧﺘﻈﺮﻓﺘﺮﺓ ﺯﻣﻨﻴﺔ ﺩﻭﻥ ﺍﺳﺘﺨﺪﺍﻡ ﻫﺬﺍ ﺍﻟﺮﻣﺰ‪ ،‬ﺛﻢ ﻗﻢ ﺑﺈﺭﺳﺎﻝ ﻃﻠﺐ ﻟﻠﺤﺼﻮﻝ ﻋﻠﻰ ﺻﻔﺤﺔ‬ ‫‪-‬‬

‫ﻣﺤﻤﻴﺔ)ﻣﺜﻞ ﺗﻔﺎﺻﻴﻠﻲ( ﺑﺎﺳﺘﺨﺪﺍﻡ ﺍﻟﺮﻣﺰ‪.‬‬


‫ﺇﺫﺍﺗﻢ ﻋﺮﺽ ﺍﻟﺼﻔﺤﺔ ﺑﺸﻜﻞ ﻃﺒﻴﻌﻲ‪ ،‬ﻓﺈﻥ ﺍﻟﺮﻣﺰ ﻻ ﻳﺰﺍﻝ ﻧﺸﻄﺎً‪.‬‬ ‫‪-‬‬

‫ﺍﺳﺘﺨﺪﻡﺃﺳﻠﻮﺏ ﺍﻟﺘﺠﺮﺑﺔ ﻭﺍﻟﺨﻄﺄ ﻟﺘﺤﺪﻳﺪ ﻣﺪﺓ ﺍﻧﺘﻬﺎء ﺻﻼﺣﻴﺔ ﺃﻱ ﺟﻠﺴﺔ‪ ،‬ﺃﻭ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ‬ ‫‪-‬‬

‫ﺍﻟﺮﻣﺰﻻ ﻳﺰﺍﻝ ﺻﺎﻟﺤﺎً ﻟﻼﺳﺘﺨﺪﺍﻡ ﺑﻌﺪ ﺃﻳﺎﻡ ﻣﻦ ﺍﻟﻄﻠﺐ ﺍﻟﺴﺎﺑﻖ ﺍﻟﺬﻱ ﺍﺳﺘﺨﺪﻣﻪ‪ .‬ﻳﻤﻜﻦ‬
‫ﺗﻬﻴﺉﺔ‪ Burp Intruder‬ﻟﺰﻳﺎﺩﺓ ﺍﻟﻔﺎﺻﻞ ﺍﻟﺰﻣﻨﻲ ﺑﻴﻦ ﺍﻟﻄﻠﺒﺎﺕ ﺍﻟﻤﺘﺘﺎﻟﻴﺔ ﻷﺗﻤﺘﺔ ﻫﺬﻩ‬
‫ﺍﻟﻤﻬﻤﺔ‪.‬‬

‫‪٥.٧.٣‬ﺗﺤﻘﻖ ﻣﻦ ﻭﺟﻮﺩ ﻭﻇﻴﻔﺔ ﺗﺴﺠﻴﻞ ﺍﻟﺨﺮﻭﺝ‪ .‬ﺇﺫﺍ ﻛﺎﻧﺖ ﻣﻮﺟﻮﺩﺓ‪ ،‬ﻓﺘﺤﻘﻖ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻧﺖ ﺗﺒُﻄﻞ‬
‫ﺟﻠﺴﺔﺍﻟﻤﺴﺘﺨﺪﻡ ﻋﻠﻰ ﺍﻟﺨﺎﺩﻡ‪ .‬ﺑﻌﺪ ﺗﺴﺠﻴﻞ ﺍﻟﺨﺮﻭﺝ‪ ،‬ﺣﺎﻭﻝ ﺇﻋﺎﺩﺓ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﺮﻣﺰ ﺍﻟﻘﺪﻳﻢ‪،‬‬
‫ﻭﺗﺄﻛﺪﻣﻦ ﺃﻧﻪ ﻻ ﻳﺰﺍﻝ ﺻﺎﻟﺤﺎً ﻣﻦ ﺧﻼﻝ ﻃﻠﺐ ﺻﻔﺤﺔ ﻣﺤﻤﻴﺔ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺍﻟﺮﻣﺰ‪ .‬ﺇﺫﺍ ﻛﺎﻧﺖ‬
‫ﺍﻟﺠﻠﺴﺔﻻ ﺗﺰﺍﻝ ﻧﺸﻄﺔ‪ ،‬ﻓﺴﻴﻈﻞ ﺍﻟﻤﺴﺘﺨﺪﻣﻮﻥ ﻋﺮﺿﺔ ﻟﺒﻌﺾ ﻫﺠﻤﺎﺕ ﺍﺧﺘﻄﺎﻑ‬
‫ﺍﻟﺠﻠﺴﺎﺕﺣﺘﻰ ﺑﻌﺪ ﺗﺴﺠﻴﻞ ﺧﺮﻭﺟﻬﻢ‪ .‬ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ‪ Burp Repeater‬ﻟﻤﻮﺍﺻﻠﺔ‬
‫ﺇﺭﺳﺎﻝﻃﻠﺐ ﻣﺤﺪﺩ ﻣﻦ ﺳﺠﻞ ﺍﻟﻮﻛﻴﻞ ﻟﻤﻌﺮﻓﺔ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺴﺘﺠﻴﺐ ﺑﺸﻜﻞ‬
‫ﻣﺨﺘﻠﻒﺑﻌﺪ ﺗﺴﺠﻴﻞ ﺍﻟﺨﺮﻭﺝ‪.‬‬

‫‪5.8‬ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺗﺜﺒﻴﺖ ﺍﻟﺠﻠﺴﺔ‬


‫‪٥.٨.١‬ﺇﺫﺍ ﺃﺻﺪﺭ ﺍﻟﺘﻄﺒﻴﻖ ﺭﻣﻮﺯ ﺟﻠﺴﺔ ﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﻏﻴﺮ ﻣﺼُﺎﺩﻕ ﻋﻠﻴﻬﻢ‪ ،‬ﻓﺎﺣﺼﻞ ﻋﻠﻰ ﺭﻣﺰ ﻭﻗﻢ‬
‫ﺑﺘﺴﺠﻴﻞﺍﻟﺪﺧﻮﻝ‪ .‬ﺇﺫﺍ ﻟﻢ ﻳﺼُﺪﺭ ﺍﻟﺘﻄﺒﻴﻖ ﺭﻣﺰﺍً ﺟﺪﻳﺪﺍً ﺑﻌﺪ ﺗﺴﺠﻴﻞ ﺩﺧﻮﻝ ﻧﺎﺟﺢ‪ ،‬ﻓﺴﻴﻜﻮﻥ‬
‫ﻋﺮُﺿﺔ ًﻟﺘﺜﺒﻴﺖ ﺍﻟﺠﻠﺴﺔ‪.‬‬
‫‪٥.٨.٢‬ﺣﺘﻰ ﻟﻮ ﻟﻢ ﻳﺼُﺪﺭ ﺍﻟﺘﻄﺒﻴﻖ ﺭﻣﻮﺯ ﺟﻠﺴﺔ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ ﻏﻴﺮ ﺍﻟﻤﺼُﺎﺩﻕ ﻋﻠﻴﻬﻢ‪ ،‬ﺍﺣﺼﻞ ﻋﻠﻰ‬
‫ﺭﻣﺰﺑﺘﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ‪ ،‬ﺛﻢ ﻋﺪُ ﺇﻟﻰ ﺻﻔﺤﺔ ﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ‪ .‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻋﻠﻰ ﺍﺳﺘﻌﺪﺍﺩ‬
‫ﻟﻠﻌﻮﺩﺓﺇﻟﻰ ﻫﺬﻩ ﺍﻟﺼﻔﺤﺔ ﺣﺘﻰ ﻟﻮ ﻛﻨﺖ ﻣﺼُﺎﺩﻗﺎً ﺑﺎﻟﻔﻌﻞ‪ ،‬ﻓﺄﺭﺳﻞ ﺗﺴﺠﻴﻞ ﺩﺧﻮﻝ ﺁﺧﺮ‬
‫ﻛﻤﺴﺘﺨﺪﻡﻣﺨﺘﻠﻒ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺍﻟﺮﻣﺰ ﻧﻔﺴﻪ‪ .‬ﺇﺫﺍ ﻟﻢ ﻳﺼُﺪﺭ ﺍﻟﺘﻄﺒﻴﻖ ﺭﻣﺰﺍً ﺟﺪﻳﺪﺍً ﺑﻌﺪ ﺗﺴﺠﻴﻞ‬
‫ﺍﻟﺪﺧﻮﻝﺍﻟﺜﺎﻧﻲ‪ ،‬ﻓﺴﻴﻜﻮﻥ ﻋﺮُﺿﺔ ﻟﺘﺜﺒﻴﺖ ﺍﻟﺠﻠﺴﺔ‪.‬‬

‫‪٥.٨.٣‬ﺣﺪﺩ ﺻﻴﻐﺔ ﺭﻣﻮﺯ ﺍﻟﺠﻠﺴﺔ ﺍﻟﺘﻲ ﻳﺴﺘﺨﺪﻣﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ‪ .‬ﻋﺪﻝّ ﺭﻣﺰﻙ ﺇﻟﻰ ﻗﻴﻤﺔ ﻣﺒُﺘﻜﺮﺓ‬
‫ﺻﺤﻴﺤﺔ‪،‬ﻭﺣﺎﻭﻝ ﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ‪ .‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺴﻤﺢ ﻟﻚ ﺑﺈﻧﺸﺎء ﺟﻠﺴﺔ ﻣﺼُﺎﺩﻕ‬
‫ﻋﻠﻴﻬﺎﺑﺎﺳﺘﺨﺪﺍﻡ ﺭﻣﺰ ﻣﺒُﺘﻜﺮ‪ ،‬ﻓﺴﻴﻜﻮﻥ ﻋﺮُﺿﺔ ﻟﺘﺜﺒﻴﺖ ﺍﻟﺠﻠﺴﺔ‪.‬‬

‫‪٥.٨.٤‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻻ ﻳﺪﻋﻢ ﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ‪ ،‬ﻭﻟﻜﻨﻪ ﻳﻌﺎﻟﺞ ﻣﻌﻠﻮﻣﺎﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﺤﺴﺎﺳﺔ )‬
‫ﻣﺜﻞﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺸﺨﺼﻴﺔ ﻭﺗﻔﺎﺻﻴﻞ ﺍﻟﺪﻓﻊ( ﻭﻳﺴﻤﺢ ﺑﻌﺮﺿﻬﺎ ﺑﻌﺪ ﺍﻹﺭﺳﺎﻝ )ﻣﺜﻞ ﺻﻔﺤﺔ "‬
‫ﺍﻟﺘﺤﻘﻖﻣﻦ ﻃﻠﺒﻲ"(‪ ،‬ﻓﻘﻢ ﺑﺈﺟﺮﺍء ﺍﻻﺧﺘﺒﺎﺭﺍﺕ ﺍﻟﺜﻼﺛﺔ ﺍﻟﺴﺎﺑﻘﺔ ﻋﻠﻰ ﺍﻟﺼﻔﺤﺎﺕ ﺍﻟﺘﻲ ﺗﻌﺮﺽ‬
‫ﺍﻟﺒﻴﺎﻧﺎﺕﺍﻟﺤﺴﺎﺳﺔ‪ .‬ﺇﺫﺍ ﺃﻣﻜﻦ ﺍﺳﺘﺨﺪﺍﻡ ﺭﻣﺰ ﻣﻤﻴﺰ ﺗﻢ ﺿﺒﻄﻪ ﺃﺛﻨﺎء ﺍﻻﺳﺘﺨﺪﺍﻡ ﺍﻟﻤﺠﻬﻮﻝ‬
‫ﻟﻠﺘﻄﺒﻴﻖﻻﺣﻘﺎً ﻻﺳﺘﺮﺟﺎﻉ ﻣﻌﻠﻮﻣﺎﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﺤﺴﺎﺳﺔ‪ ،‬ﻓﺴﻴﻜﻮﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻋﺮﺿﺔ‬
‫ﻟﺘﺜﺒﻴﺖﺍﻟﺠﻠﺴﺔ‪.‬‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪820‬‬

‫‪5.9‬ﺍﻟﺘﺤﻘﻖ ﻣﻦ ‪CSRF‬‬
‫‪5.9.1‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﻌﺘﻤﺪ ﻓﻘﻂ ﻋﻠﻰ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ‪ HTTP‬ﻛﻄﺮﻳﻘﺔ ﻟﻨﻘﻞ ﺭﻣﻮﺯ‬
‫ﺍﻟﺠﻠﺴﺔ‪،‬ﻓﻘﺪ ﻳﻜﻮﻥ ﻋﺮﺿﺔ ﻟﻬﺠﻤﺎﺕ ﺗﺰﻭﻳﺮ ﺍﻟﻄﻠﺒﺎﺕ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ‪.‬‬

‫‪٥.٩.٢‬ﺭﺍﺟﻊ ﺍﻟﻮﻇﺎﺉﻒ ﺍﻟﺮﺉﻴﺴﻴﺔ ﻟﻠﺘﻄﺒﻴﻖ‪ ،‬ﻭﺣﺪﺩ ﺍﻟﻄﻠﺒﺎﺕ ﺍﻟﻤﺤُﺪﺩﺓ ﺍﻟﻤﺴُﺘﺨﺪﻣﺔ ﻟﺘﻨﻔﻴﺬ ﺇﺟﺮﺍءﺍﺕ‬
‫ﺣﺴﺎﺳﺔ‪.‬ﺇﺫﺍ ﺍﺳﺘﻄﺎﻉ ﺍﻟﻤﻬُﺎﺟﻢ ﺗﺤﺪﻳﺪ ﻣﻌُﺎﻣﻼﺕ ﺃﻱ ٍّﻣﻦ ﻫﺬﻩ ﺍﻟﻄﻠﺒﺎﺕ ﻣﺴُﺒﻘﺎً )ﺃﻱ ﺃﻧﻬﺎ ﻻ‬
‫ﺗﺤﺘﻮﻱﻋﻠﻰ ﺃﻱ ﺭﻣﻮﺯ ﺟﻠﺴﺔ‪ ،‬ﺃﻭ ﺑﻴﺎﻧﺎﺕ ﻏﻴﺮ ﻣﺘُﻮﻗﻌﺔ‪ ،‬ﺃﻭ ﺃﺳﺮﺍﺭ ﺃﺧﺮﻯ(‪ ،‬ﻓﻤﻦ ﺍﻟﻤﺮُﺟﺢ ﺃﻥ‬
‫ﻳﻜﻮﻥﺍﻟﺘﻄﺒﻴﻖ ﻋﺮُﺿﺔ ﻟﻠﺨﻄﺮ‪.‬‬

‫‪5.9.3‬ﺃﻧﺸﺊ ﺻﻔﺤﺔ ‪ HTML‬ﺗﺼُﺪﺭ ﺍﻟﻄﻠﺐ ﺍﻟﻤﻄﻠﻮﺏ ﺩﻭﻥ ﺃﻱ ﺗﻔﺎﻋﻞ ﻣﻦ ﺍﻟﻤﺴﺘﺨﺪﻡ‪.‬ﻳﺤﺼﻞ‬


‫ﺍﻟﻄﻠﺒﺎﺕ‪،‬ﻳﻤﻜﻨﻚ ﻭﺿﻊ >ﺍﻟﺼﻮﺭﺓ<ﺍﻟﻌﻼﻣﺔ ﻣﻊ‬
‫ﺍﻟﻤﺼﺪﺭﺗﻢ ﺗﻌﻴﻴﻦ ﺍﻟﻤﻌﻠﻤﺔ ﻋﻠﻰ ﻋﻨﻮﺍﻥ ‪ URL‬ﺍﻟﻤﻌﺮﺽ ﻟﻠﺨﻄﺮ‪.‬ﺑﺮﻳﺪﻟﻄﻠﺒﺎﺕ ﺍﻟﺤﻤﺎﻳﺔ‪ ،‬ﻳﻤﻜﻨﻚ‬
‫ﺇﻧﺸﺎءﻧﻤﻮﺫﺝ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﺣﻘﻮﻝ ﻣﺨﻔﻴﺔ ﻟﺠﻤﻴﻊ ﺍﻟﻤﻌﻠﻤﺎﺕ ﺫﺍﺕ ﺍﻟﺼﻠﺔ ﺍﻟﻤﻄﻠﻮﺑﺔ ﻟﻠﻬﺠﻮﻡ‪،‬‬
‫ﻣﻊﺿﺒﻂ ﻫﺪﻓﻪ ﻋﻠﻰ ﻋﻨﻮﺍﻥ ‪ URL‬ﺍﻟﻤﻌُﺮﺽَّ ﻟﻠﺨﻄﺮ‪ .‬ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ‪ JavaScript‬ﻹﺭﺳﺎﻝ‬
‫ﺍﻟﻨﻤﻮﺫﺝﺗﻠﻘﺎﺉﻴﺎً ﺑﻤﺠﺮﺩ ﺗﺤﻤﻴﻞ ﺍﻟﺼﻔﺤﺔ‪ .‬ﺃﺛﻨﺎء ﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ ﺇﻟﻰ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﺍﺳﺘﺨﺪﻡ‬
‫ﺍﻟﻤﺘﺼﻔﺢﻧﻔﺴﻪ ﻟﺘﺤﻤﻴﻞ ﺻﻔﺤﺔ ‪ .HTML‬ﺗﺄﻛﺪ ﻣﻦ ﺗﻨﻔﻴﺬ ﺍﻹﺟﺮﺍء ﺍﻟﻤﻄﻠﻮﺏ ﺩﺍﺧﻞ‬
‫ﺍﻟﺘﻄﺒﻴﻖ‪.‬‬

‫‪٥.٩.٤‬ﺇﺫﺍ ﺍﺳﺘﺨﺪﻡ ﺍﻟﺘﻄﺒﻴﻖ ﺭﻣﻮﺯﺍً ﺇﺿﺎﻓﻴﺔ ﺿﻤﻦ ﺍﻟﻄﻠﺒﺎﺕ ﻓﻲ ﻣﺤﺎﻭﻟﺔ ﻟﻤﻨﻊ ﻫﺠﻤﺎﺕ ‪،CSRF‬‬
‫ﻓﺎﺧﺘﺒﺮﻣﺘﺎﻧﺔ ﻫﺬﻩ ﺍﻟﺮﻣﻮﺯ ﺑﻨﻔﺲ ﻃﺮﻳﻘﺔ ﺍﺧﺘﺒﺎﺭ ﺭﻣﻮﺯ ﺍﻟﺠﻠﺴﺔ‪ .‬ﻛﺬﻟﻚ‪ ،‬ﺍﺧﺘﺒﺮ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ‬
‫ﺍﻟﺘﻄﺒﻴﻖﻋﺮﺿﺔ ﻟﻬﺠﻤﺎﺕ ﺗﺼﺤﻴﺢ ﻭﺍﺟﻬﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ‪ ،‬ﻭﺫﻟﻚ ﻟﺘﺠﺎﻭﺯ ﺩﻓﺎﻋﺎﺕ ‪) CSRF‬ﺍﻧﻈﺮ‬
‫ﺍﻟﻔﺼﻞ‪ ١٣‬ﻟﻤﺰﻳﺪ ﻣﻦ ﺍﻟﺘﻔﺎﺻﻴﻞ(‪.‬‬

‫‪5.10‬ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﻧﻄﺎﻕ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ‬

‫‪5.10.1‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺴﺘﺨﺪﻡ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ‪ HTTP‬ﻟﻨﻘﻞ ﺭﻣﻮﺯ ﺍﻟﺠﻠﺴﺔ )ﺃﻭ ﺃﻱ ﺑﻴﺎﻧﺎﺕ‬
‫ﺣﺴﺎﺳﺔﺃﺧﺮﻯ(‪ ،‬ﻓﺮﺍﺟﻊ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﺫﺍﺕ ﺍﻟﺼﻠﺔﻣﺠﻤﻮﻋﺔ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ‬
‫ﺍﻟﻌﻨﺎﻭﻳﻦ‪،‬ﻭﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺃﻱ ﺳﻤﺎﺕ ﻣﺠﺎﻝ ﺃﻭ ﻣﺴﺎﺭ ﺗﺴﺘﺨﺪﻡ ﻟﻠﺘﺤﻜﻢ ﻓﻲ ﻧﻄﺎﻕ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ‬
‫ﺍﻻﺭﺗﺒﺎﻁ‪.‬‬
‫‪5.10.2‬ﺇﺫﺍ ﻗﺎﻡ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺘﺤﺮﻳﺮ ﻧﻄﺎﻕ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﺍﻟﺨﺎﺻﺔ ﺑﻪ ﺑﺸﻜﻞ ﺻﺮﻳﺢ ﺇﻟﻰ‬
‫ﺍﻟﻤﺠﺎﻝﺍﻟﺮﺉﻴﺴﻲ ﺃﻭ ﺍﻟﺪﻟﻴﻞ ﺍﻟﺮﺉﻴﺴﻲ‪ ،‬ﻓﻘﺪ ﻳﺘﺮﻙ ﻧﻔﺴﻪ ﻋﺮﺿﺔ ﻟﻠﻬﺠﻤﺎﺕ ﻋﺒﺮ ﺗﻄﺒﻴﻘﺎﺕ‬
‫ﺍﻟﻮﻳﺐﺍﻷﺧﺮﻯ ﺍﻟﻤﺴﺘﻀﺎﻓﺔ ﺩﺍﺧﻞ ﺍﻟﻤﺠﺎﻝ ﺍﻟﺮﺉﻴﺴﻲ ﺃﻭ ﺍﻟﺪﻟﻴﻞ‪.‬‬

‫‪5.10.3‬ﺇﺫﺍ ﻋﻴﻦّ ﺍﻟﺘﻄﺒﻴﻖ ﻧﻄﺎﻕ ﻧﻄﺎﻕ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﺍﻟﺨﺎﺹ ﺑﻪ ﺇﻟﻰ ﺍﺳﻢ ﻧﻄﺎﻗﻪ ﺍﻟﺨﺎﺹ )‬
‫ﺃﻭﻟﻢ ﻳﺤُﺪﺩ ﺳﻤﺔ ﻧﻄﺎﻕ(‪ ،‬ﻓﻘﺪ ﻳﻈﻞ ﻋﺮُﺿﺔ ًﻟﻠﻬﺠﻤﺎﺕ ﻣﻦ ﺧﻼﻝ ﺃﻱ ﺗﻄﺒﻴﻘﺎﺕ ﻣﺴُﺘﻀﺎﻓﺔ‬
‫ﻋﻠﻰﻧﻄﺎﻗﺎﺕ ﻓﺮﻋﻴﺔ‪ .‬ﻫﺬﺍ ﻧﺘﻴﺠﺔ ﻵﻟﻴﺔ ﻋﻤﻞ ﻧﻄﺎﻕ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ‪ .‬ﻻ ﻳﻤُﻜﻦ‬
‫ﺗﺠﻨﺐّﺫﻟﻚ ﺇﻻ ﺑﻌﺪﻡ ﺍﺳﺘﻀﺎﻓﺔ ﺃﻱ ﺗﻄﺒﻴﻘﺎﺕ ﺃﺧﺮﻯ ﻋﻠﻰ ﻧﻄﺎﻕ ﻓﺮﻋﻲ ﻟﺘﻄﺒﻴﻖ ﺫﻱ‬
‫ﺣﺴﺎﺳﻴﺔﺃﻣﻨﻴﺔ‪.‬‬
‫‪821‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫‪5.10.4‬ﺗﺤﺪﻳﺪ ﺃﻱ ﺍﻋﺘﻤﺎﺩ ﻋﻠﻰ ﺍﻟﻔﺼﻞ ﺣﺴﺐ ﺍﻟﻤﺴﺎﺭ‪ ،‬ﻣﺜﻞ ‪/‬ﺍﻟﻤﻮﻗﻊ‪/‬ﺍﻟﺮﺉﻴﺴﻲﻭ‬


‫‪/‬ﺍﻟﻤﻮﻗﻊ‪/‬ﺍﻟﻌﺮﺽ ﺍﻟﺘﻮﺿﻴﺤﻲ‪،‬ﻭﺍﻟﺘﻲ ﻳﻤﻜﻦ ﺗﺨﺮﻳﺒﻬﺎ ﻓﻲ ﺣﺎﻟﺔ ﻭﻗﻮﻉ ﻫﺠﻮﻡ ﻧﺼﻲ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ‪.‬‬

‫‪5.10.5‬ﺣﺪﺩ ﺟﻤﻴﻊ ﺃﺳﻤﺎء ﺍﻟﻨﻄﺎﻗﺎﺕ ﻭﺍﻟﻤﺴﺎﺭﺍﺕ ﺍﻟﻤﺤﺘﻤﻠﺔ ﺍﻟﺘﻲ ﺳﺘﺴﺘﻘﺒﻞ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ‬
‫ﺍﻻﺭﺗﺒﺎﻁﺍﻟﺘﻲ ﻳﺼُﺪﺭﻫﺎ ﺍﻟﺘﻄﺒﻴﻖ‪ .‬ﺗﺄﻛﺪ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻧﺖ ﺃﻱ ﺗﻄﺒﻴﻘﺎﺕ ﻭﻳﺐ ﺃﺧﺮﻯ ﻣﺘﺎﺣﺔ ﻋﺒﺮ‬
‫ﺃﺳﻤﺎءﺍﻟﻨﻄﺎﻗﺎﺕ ﺃﻭ ﺍﻟﻤﺴﺎﺭﺍﺕ ﻫﺬﻩ‪ ،‬ﻭﺍﻟﺘﻲ ﻗﺪ ﺗﺘﻤﻜﻦ ﻣﻦ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻻﻟﺘﻘﺎﻁ ﻣﻠﻔﺎﺕ‬
‫ﺗﻌﺮﻳﻒﺍﻻﺭﺗﺒﺎﻁ ﺍﻟﺼﺎﺩﺭﺓ ﻟﻤﺴﺘﺨﺪﻣﻲ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﻤﺴﺘﻬﺪﻑ‪.‬‬

‫ﺍﺧﺘﺒﺎﺭﻋﻨﺎﺻﺮ ﺍﻟﺘﺤﻜﻢ ﻓﻲ ﺍﻟﻮﺻﻮﻝ‬ ‫‪6‬‬

‫‪.6.4‬ﺍﺧﺘﺒﺎﺭ ﻟـ‬
‫‪.6.1‬ﻓﻬﻢ ﺍﻟﻤﺘﻄﻠﺒﺎﺕ‬
‫ﻃﺮﻕﻏﻴﺮ ﺁﻣﻨﺔ‬

‫‪.6.3‬ﺍﺧﺘﺒﺎﺭ ﻣﻊ‬ ‫‪.6.2‬ﺍﺧﺘﺒﺎﺭ ﻣﻊ‬


‫ﻭﺻﻮﻝﻣﺤﺪﻭﺩ‬ ‫ﺣﺴﺎﺑﺎﺕﻣﺘﻌﺪﺩﺓ‬

‫ﺍﻟﺸﻜﻞ‪:7-21‬ﺍﺧﺘﺒﺎﺭ ﻋﻨﺎﺻﺮ ﺍﻟﺘﺤﻜﻢ ﻓﻲ ﺍﻟﻮﺻﻮﻝ‬

‫‪6.1‬ﻓﻬﻢ ﻣﺘﻄﻠﺒﺎﺕ ﺍﻟﺘﺤﻜﻢ ﻓﻲ ﺍﻟﻮﺻﻮﻝ‬


‫‪6.1.1‬ﺑﻨﺎء ًﻋﻠﻰ ﺍﻟﻮﻇﺎﺉﻒ ﺍﻷﺳﺎﺳﻴﺔ ﺍﻟﻤﻄُﺒﻘّﺔ ﻓﻲ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﻳﺠﺐ ﻓﻬﻢ ﺍﻟﻤﺘﻄﻠﺒﺎﺕ ﺍﻟﻌﺎﻣﺔ‬
‫ﻟﻠﺘﺤﻜﻢﻓﻲ ﺍﻟﻮﺻﻮﻝ ﻣﻦ ﺣﻴﺚ ﺍﻟﻔﺼﻞ ﺍﻟﺮﺃﺳﻲ )ﺣﻴﺚ ﻳﺘﻤﺘﻊ ﺍﻟﻤﺴﺘﺨﺪﻣﻮﻥ ﺫﻭﻭ‬
‫ﺍﻟﺼﻼﺣﻴﺎﺕﺍﻟﻤﺨﺘﻠﻔﺔ ﺑﺈﻣﻜﺎﻧﻴﺔ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺃﻧﻮﺍﻉ ﻣﺨﺘﻠﻔﺔ ﻣﻦ ﺍﻟﻮﻇﺎﺉﻒ( ﻭﺍﻟﻔﺼﻞ‬
‫ﺍﻷﻓﻘﻲ)ﺣﻴﺚ ﻳﺘﻤﺘﻊ ﺍﻟﻤﺴﺘﺨﺪﻣﻮﻥ ﻣﻦ ﻧﻔﺲ ﻣﺴﺘﻮﻯ ﺍﻟﺼﻼﺣﻴﺎﺕ ﺑﺈﻣﻜﺎﻧﻴﺔ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ‬
‫ﻣﺠﻤﻮﻋﺎﺕﻓﺮﻋﻴﺔ ﻣﺨﺘﻠﻔﺔ ﻣﻦ ﺍﻟﺒﻴﺎﻧﺎﺕ(‪ .‬ﻏﺎﻟﺒﺎً ﻣﺎ ﻳﻜﻮﻥ ﻛﻼ ﺍﻟﻨﻮﻋﻴﻦ ﻣﻦ ﺍﻟﻔﺼﻞ ﻣﻮﺟﻮﺩﺍً‪.‬‬
‫ﻋﻠﻰﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﻗﺪ ﻳﺘﻤﻜﻦ ﺍﻟﻤﺴﺘﺨﺪﻣﻮﻥ ﺍﻟﻌﺎﺩﻳﻮﻥ ﻣﻦ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺑﻴﺎﻧﺎﺗﻬﻢ ﺍﻟﺨﺎﺻﺔ‪،‬‬
‫ﺑﻴﻨﻤﺎﻳﻤﻜﻦ ﻟﻠﻤﺴﺆﻭﻟﻴﻦ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺑﻴﺎﻧﺎﺕ ﺍﻟﺠﻤﻴﻊ‪.‬‬
‫‪6.1.2‬ﺭﺍﺟﻊ ﻧﺘﺎﺉﺞ ﺗﻌﻴﻴﻦ ﺗﻄﺒﻴﻘﻚ ﻟﺘﺤﺪﻳﺪ ﻣﺠﺎﻻﺕ ﺍﻟﻮﻇﺎﺉﻒ ﻭﺃﻧﻮﺍﻉ ﻣﻮﺍﺭﺩ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺘﻲ ﺗﻤﺜﻞ‬
‫ﺍﻷﻫﺪﺍﻑﺍﻷﻛﺜﺮ ﻓﺎﺉﺪﺓ ﻟﻬﺠﻤﺎﺕ ﺗﺼﻌﻴﺪ ﺍﻻﻣﺘﻴﺎﺯﺍﺕ‪.‬‬

‫‪٦.١.٣‬ﻹﺟﺮﺍء ﺍﺧﺘﺒﺎﺭﺍﺕ ﺃﻛﺜﺮ ﻓﻌﺎﻟﻴﺔ ﻟﺜﻐﺮﺍﺕ ﺍﻟﺘﺤﻜﻢ ﻓﻲ ﺍﻟﻮﺻﻮﻝ‪ ،‬ﻳﻔُﻀﻞّ ﺍﻟﺤﺼﻮﻝ ﻋﻠﻰ ﻋﺪﺩ ﻣﻦ‬
‫ﺍﻟﺤﺴﺎﺑﺎﺕﺍﻟﻤﺨﺘﻠﻔﺔ ﺑﺼﻼﺣﻴﺎﺕ ﺭﺃﺳﻴﺔ ﻭﺃﻓﻘﻴﺔ ﻣﺨﺘﻠﻔﺔ‪ .‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﺴﺠﻴﻞ ﺍﻟﺬﺍﺗﻲ ﻣﻤﻜﻨﺎً‪،‬‬
‫ﻓﻴﻤﻜﻨﻚﻋﻠﻰ ﺍﻷﺭﺟﺢ ﺍﻟﺤﺼﻮﻝ ﻋﻠﻰ ﺍﻷﺧﻴﺮﺓ ﻣﺒﺎﺷﺮﺓ ًﻣﻦ ﺍﻟﺘﻄﺒﻴﻖ‪ .‬ﺃﻣﺎ ﻟﻠﺤﺼﻮﻝ ﻋﻠﻰ‬
‫ﺍﻷﻭﻟﻰ‪،‬ﻓﺴﺘﺤﺘﺎﺝ ﻋﻠﻰ ﺍﻷﺭﺟﺢ ﺇﻟﻰ ﺗﻌﺎﻭﻥ ﻣﺎﻟﻚ ﺍﻟﺘﻄﺒﻴﻖ )ﺃﻭ ﺳﺘﺤﺘﺎﺝ ﺇﻟﻰ ﺍﺳﺘﻐﻼﻝ ﺛﻐﺮﺓ‬
‫ﺃﻣﻨﻴﺔﻟﻠﻮﺻﻮﻝ ﺇﻟﻰ ﺣﺴﺎﺏ ﺫﻱ ﺻﻼﺣﻴﺎﺕ ﻋﺎﻟﻴﺔ(‪ .‬ﺳﻴﺆﺛﺮ ﺗﻮﺍﻓﺮ ﺃﻧﻮﺍﻉ ﻣﺨﺘﻠﻔﺔ ﻣﻦ‬
‫ﺍﻟﺤﺴﺎﺑﺎﺕﻋﻠﻰ ﺃﻧﻮﺍﻉ ﺍﻻﺧﺘﺒﺎﺭﺍﺕ ﺍﻟﺘﻲ ﻳﻤﻜﻨﻚ ﺇﺟﺮﺍﺅﻫﺎ‪ ،‬ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻻﺣﻘﺎً‪.‬‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪822‬‬

‫‪6.2‬ﺍﻻﺧﺘﺒﺎﺭ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺣﺴﺎﺑﺎﺕ ﻣﺘﻌﺪﺩﺓ‬


‫‪٦.٢.١‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﻔﺮﺽ ﻓﺼﻼً ﺭﺃﺳﻴﺎً ﻟﻠﺼﻼﺣﻴﺎﺕ‪ ،‬ﻓﺎﺳﺘﺨﺪﻡ ﺃﻭﻻً ﺣﺴﺎﺑﺎً ﻗﻮﻳﺎً ﻟﺘﺤﺪﻳﺪ ﺟﻤﻴﻊ‬
‫ﺍﻟﻮﻇﺎﺉﻒﺍﻟﺘﻲ ﻳﻤﻜﻨﻪ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻴﻬﺎ‪ .‬ﺛﻢ ﺍﺳﺘﺨﺪﻡ ﺣﺴﺎﺑﺎً ﺃﻗﻞ ﺍﻣﺘﻴﺎﺯﺍً ﻭﺣﺎﻭﻝ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ‬
‫ﺟﻤﻴﻊﻋﻨﺎﺻﺮ ﻫﺬﻩ ﺍﻟﻮﻇﻴﻔﺔ‪.‬‬

‫‪6.2.1.1‬ﺑﺎﺳﺘﺨﺪﺍﻡ ‪ ،Burp‬ﺍﺳﺘﻌﺮﺽ ﻛﺎﻓﺔ ﻣﺤﺘﻮﻳﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ ﺩﺍﺧﻞ ﻣﺴﺘﺨﺪﻡ ﻭﺍﺣﺪ‬


‫ﺳﻴﺎﻕ‪.‬‬
‫‪6.2.1.2‬ﺭﺍﺟﻊ ﻣﺤﺘﻮﻳﺎﺕ ﺧﺮﻳﻄﺔ ﻣﻮﻗﻊ ‪ Burp‬ﻟﻠﺘﺄﻛﺪ ﻣﻦ ﺃﻥ ﻟﺪﻳﻚ‬
‫ﺗﻢﺗﺤﺪﻳﺪ ﺟﻤﻴﻊ ﺍﻟﻮﻇﺎﺉﻒ ﺍﻟﺘﻲ ﺗﺮﻏﺐ ﻓﻲ ﺍﺧﺘﺒﺎﺭﻫﺎ‪ .‬ﺑﻌﺪ ﺫﻟﻚ‪ ،‬ﺳﺠﻞّ ﺧﺮﻭﺟﻚ‬
‫ﻣﻦﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﺛﻢ ﺳﺠﻞّ ﺩﺧﻮﻟﻚ ﻣﺠﺪﺩﺍً ﺑﺎﺳﺘﺨﺪﺍﻡ ﺳﻴﺎﻕ ﻣﺴﺘﺨﺪﻡ ﻣﺨﺘﻠﻒ‪.‬‬
‫ﺍﺳﺘﺨﺪﻡﻗﺎﺉﻤﺔ ﺍﻟﺴﻴﺎﻕ ﻻﺧﺘﻴﺎﺭ ﻣﻴﺰﺓ "ﻣﻘﺎﺭﻧﺔ ﺧﺮﺍﺉﻂ ﺍﻟﻤﻮﺍﻗﻊ" ﻟﺘﺤﺪﻳﺪ‬
‫ﺍﻟﻄﻠﺒﺎﺕﺫﺍﺕ ﺍﻻﻣﺘﻴﺎﺯﺍﺕ ﺍﻟﻌﺎﻟﻴﺔ ﺍﻟﺘﻲ ﻳﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪﻡ ﺫﻱ ﺍﻻﻣﺘﻴﺎﺯﺍﺕ ﺍﻷﻗﻞ‬
‫ﺍﻟﻮﺻﻮﻝﺇﻟﻴﻬﺎ‪ .‬ﺭﺍﺟﻊ ﺍﻟﻔﺼﻞ ‪ 8‬ﻟﻤﺰﻳﺪ ﻣﻦ ﺍﻟﺘﻔﺎﺻﻴﻞ ﺣﻮﻝ ﻫﺬﻩ ﺍﻟﺘﻘﻨﻴﺔ‪.‬‬

‫‪6.2.2‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﻔﺮﺽ ﻓﺼﻼً ﺃﻓﻘﻴﺎً ﻟﻠﺼﻼﺣﻴﺎﺕ‪ ،‬ﻓﻘﻢ ﺑﺈﺟﺮﺍء ﺍﻻﺧﺘﺒﺎﺭ ﺍﻟﻤﻜﺎﻓﺊ ﺑﺎﺳﺘﺨﺪﺍﻡ‬
‫ﺣﺴﺎﺑﻴﻦﻣﺨﺘﻠﻔﻴﻦ ﺑﻨﻔﺲ ﻣﺴﺘﻮﻯ ﺍﻟﺼﻼﺣﻴﺎﺕ‪ ،‬ﻣﺤﺎﻭﻻً ﺍﺳﺘﺨﺪﺍﻡ ﺃﺣﺪﻫﻤﺎ ﻟﻠﻮﺻﻮﻝ ﺇﻟﻰ‬
‫ﺑﻴﺎﻧﺎﺕﺍﻟﺤﺴﺎﺏ ﺍﻵﺧﺮ‪ .‬ﻳﺘﻀﻤﻦ ﻫﺬﺍ ﻋﺎﺩﺓ ًﺍﺳﺘﺒﺪﺍﻝ ﻣﻌُﺮﻑّ )ﻣﺜﻞ ﻣﻌُﺮﻑّ ﻣﺴﺘﻨﺪ( ﺿﻤﻦ‬
‫ﻃﻠﺐﻟﺘﺤﺪﻳﺪ ﻣﻮﺭﺩ ﻳﺨﺺ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻵﺧﺮ‪.‬‬

‫‪6.2.3‬ﻗﻢ ﺑﺈﺟﺮﺍء ﻓﺤﺺ ﻳﺪﻭﻱ ﻟﻤﻨﻄﻖ ﺍﻟﺘﺤﻜﻢ ﻓﻲ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺍﻟﻤﻔﺘﺎﺡ‪.‬‬


‫‪٦.٢.٣.١‬ﻟﻜﻞ ﺍﻣﺘﻴﺎﺯ ﻣﺴﺘﺨﺪﻡ‪ ،‬ﺭﺍﺟﻊ ﺍﻟﻤﻮﺍﺭﺩ ﺍﻟﻤﺘﺎﺣﺔ ﻟﻪ‪ .‬ﺣﺎﻭﻝ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺗﻠﻚ ﺍﻟﻤﻮﺍﺭﺩ‬
‫ﻣﻦﺣﺴﺎﺏ ﻣﺴﺘﺨﺪﻡ ﻏﻴﺮ ﻣﺼﺮﺡ ﻟﻪ ﺑﺈﻋﺎﺩﺓ ﺗﺸﻐﻴﻞ ﺍﻟﻄﻠﺐ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺭﻣﺰ‬
‫ﺟﻠﺴﺔﺍﻟﻤﺴﺘﺨﺪﻡ ﻏﻴﺮ ﺍﻟﻤﺼﺮﺡ ﻟﻪ‪.‬‬

‫‪٦.٢.٤‬ﻋﻨﺪ ﺇﺟﺮﺍء ﺃﻱ ﻧﻮﻉ ﻣﻦ ﺍﺧﺘﺒﺎﺭﺍﺕ ﺍﻟﺘﺤﻜﻢ ﻓﻲ ﺍﻟﻮﺻﻮﻝ‪ ،‬ﺗﺄﻛﺪ ﻣﻦ ﺍﺧﺘﺒﺎﺭ ﻛﻞ ﺧﻄﻮﺓ ﻣﻦ‬
‫ﺧﻄﻮﺍﺕﺍﻟﻮﻇﺎﺉﻒ ﻣﺘﻌﺪﺩﺓ ﺍﻟﻤﺮﺍﺣﻞ ﻋﻠﻰ ﺣﺪﺓ ﻟﻠﺘﺄﻛﺪ ﻣﻦ ﺻﺤﺔ ﺗﻨﻔﻴﺬ ﺿﻮﺍﺑﻂ ﺍﻟﻮﺻﻮﻝ‬
‫ﻓﻲﻛﻞ ﻣﺮﺣﻠﺔ‪ ،‬ﺃﻭ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﻔﺘﺮﺽ ﺃﻥ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻟﺬﻳﻦ ﻳﺼﻠﻮﻥ ﺇﻟﻰ ﻣﺮﺣﻠﺔ‬
‫ﻻﺣﻘﺔﻳﺠﺐ ﺃﻥ ﻳﺠﺘﺎﺯﻭﺍ ﻓﺤﻮﺻﺎﺕ ﺍﻷﻣﺎﻥ ﺍﻟﻤﻄﺒﻘﺔ ﻓﻲ ﺍﻟﻤﺮﺍﺣﻞ ﺍﻟﺴﺎﺑﻘﺔ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ‬
‫ﺍﻟﻤﺜﺎﻝ‪،‬ﺇﺫﺍ ﻛﺎﻧﺖ ﺻﻔﺤﺔ ﺇﺩﺍﺭﻳﺔ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﻧﻤﻮﺫﺝ ﻣﺤﻤﻴﺔ ﺑﺸﻜﻞ ﺻﺤﻴﺢ‪ ،‬ﻓﺘﺄﻛﺪ ﻣﻦ ﺃﻥ‬
‫ﻋﻤﻠﻴﺔﺇﺭﺳﺎﻝ ﺍﻟﻨﻤﻮﺫﺝ ﺗﺨﻀﻊ ﺃﻳﻀﺎً ﻟﻀﻮﺍﺑﻂ ﻭﺻﻮﻝ ﺳﻠﻴﻤﺔ‪.‬‬

‫‪6.3‬ﺍﻻﺧﺘﺒﺎﺭ ﻣﻊ ﻭﺻﻮﻝ ﻣﺤﺪﻭﺩ‬


‫‪6.3.1‬ﺇﺫﺍ ﻟﻢ ﻳﻜﻦ ﻟﺪﻳﻚ ﻭﺻﻮﻝ ﻣﺴﺒﻖ ﺇﻟﻰ ﺣﺴﺎﺑﺎﺕ ﺑﻤﺴﺘﻮﻳﺎﺕ ﺍﻣﺘﻴﺎﺯﺍﺕ ﻣﺨﺘﻠﻔﺔ‪ ،‬ﺃﻭ ﺇﻟﻰ‬
‫ﺣﺴﺎﺑﺎﺕﻣﺘﻌﺪﺩﺓ ﺫﺍﺕ ﻭﺻﻮﻝ ﺇﻟﻰ ﺑﻴﺎﻧﺎﺕ ﻣﺨﺘﻠﻔﺔ‪ ،‬ﻓﺈﻥ ﺍﺧﺘﺒﺎﺭ ﻋﻨﺎﺻﺮ ﺍﻟﺘﺤﻜﻢ ﻓﻲ‬
‫ﺍﻟﻮﺻﻮﻝﺍﻟﻤﻌﻄﻠﺔ ﻟﻴﺲ ﺑﺎﻷﻣﺮ ﺍﻟﺴﻬﻞ‪ .‬ﺳﻴﻜﻮﻥ ﻣﻦ ﺍﻟﺼﻌﺐ ﺟﺪﺍً ﺗﺤﺪﻳﺪ ﺍﻟﻌﺪﻳﺪ ﻣﻦ‬
‫ﺍﻟﺜﻐﺮﺍﺕﺍﻷﻣﻨﻴﺔ ﺍﻟﺸﺎﺉﻌﺔ‪ ،‬ﻷﻧﻚ ﻻ ﺗﻌﺮﻑ ﺃﺳﻤﺎء ﻋﻨﺎﻭﻳﻦ ‪ URL‬ﻭﺍﻟﻤﻌﺮﻓﺎﺕ ﻭﺍﻟﻤﻌﻠﻤﺎﺕ‬
‫ﺍﻟﻼﺯﻣﺔﻻﺳﺘﻐﻼﻝ ﻧﻘﺎﻁ ﺍﻟﻀﻌﻒ‪.‬‬
‫‪823‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫‪٦.٣.٢‬ﻓﻲ ﺗﻤﺎﺭﻳﻦ ﺗﻌﻴﻴﻦ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﺘﻲ ﺗﺴﺘﺨﺪﻡ ﺣﺴﺎﺑﺎﺕ ﺫﺍﺕ ﺻﻼﺣﻴﺎﺕ ﻣﺤﺪﻭﺩﺓ‪ ،‬ﺭﺑﻤﺎ ﺗﻜﻮﻥ‬
‫ﻗﺪﺣﺪﺩﺕ ﻋﻨﺎﻭﻳﻦ ‪ URL‬ﻟﻠﻮﻇﺎﺉﻒ ﺫﺍﺕ ﺍﻟﺼﻼﺣﻴﺎﺕ ﺍﻟﻤﺤﺪﻭﺩﺓ‪ ،‬ﻣﺜﻞ ﻭﺍﺟﻬﺎﺕ ﺍﻹﺩﺍﺭﺓ‪.‬‬
‫ﺇﺫﺍﻟﻢ ﺗﻜﻦ ﻫﺬﻩ ﺍﻟﻌﻨﺎﻭﻳﻦ ﻣﺤﻤﻴﺔ ﺑﺸﻜﻞ ﻛﺎﻑ‪ ٍ،‬ﻓﻤﻦ ﺍﻟﻤﺮﺟﺢ ﺃﻧﻚ ﻋﻠﻰ ﺩﺭﺍﻳﺔ ﺑﺬﻟﻚ‪.‬‬

‫‪6.3.3‬ﻗﻢ ﺑﻔﻚ ﺗﺠﻤﻴﻊ ﻛﻞ ﺍﻟﻌﻤﻼء ﺍﻟﻤﺠﻤﻌّﻴﻦ ﺍﻟﻤﻮﺟﻮﺩﻳﻦ‪ ،‬ﻭﺍﺳﺘﺨﺮﺍﺝ ﺃﻱ ﻣﺮﺍﺟﻊ ﺇﻟﻰ ﻭﻇﺎﺉﻒ‬
‫ﺟﺎﻧﺐﺍﻟﺨﺎﺩﻡ‪.‬‬
‫‪٦.٣.٤‬ﻳﺘﻢ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﻣﻌﻈﻢ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺨﺎﺿﻌﺔ ﻟﻀﻮﺍﺑﻂ ﺍﻟﻮﺻﻮﻝ ﺍﻷﻓﻘﻴﺔ ﺑﺎﺳﺘﺨﺪﺍﻡ ﻣﻌُﺮﻑّ‪،‬‬
‫ﻣﺜﻞﺭﻗﻢ ﺍﻟﺤﺴﺎﺏ ﺃﻭ ﻣﺮﺟﻊ ﺍﻟﻄﻠﺐ‪ .‬ﻻﺧﺘﺒﺎﺭ ﻓﻌﺎﻟﻴﺔ ﺿﻮﺍﺑﻂ ﺍﻟﻮﺻﻮﻝ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺣﺴﺎﺏ‬
‫ﻭﺍﺣﺪﻓﻘﻂ‪ ،‬ﻳﺠﺐ ﻋﻠﻴﻚ ﻣﺤﺎﻭﻟﺔ ﺗﺨﻤﻴﻦ ﺃﻭ ﺍﻛﺘﺸﺎﻑ ﺍﻟﻤﻌُﺮﻓّﺎﺕ ﺍﻟﻤﺮﺗﺒﻄﺔ ﺑﺒﻴﺎﻧﺎﺕ‬
‫ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦﺍﻵﺧﺮﻳﻦ‪ .‬ﺇﻥ ﺃﻣﻜﻦ‪ ،‬ﺃﻧﺸﺊ ﺳﻠﺴﻠﺔ ﻣﻦ ﺍﻟﻤﻌُﺮﻓّﺎﺕ ﺑﺘﺘﺎﺑﻊ ﺳﺮﻳﻊ )ﻋﻠﻰ ﺳﺒﻴﻞ‬
‫ﺍﻟﻤﺜﺎﻝ‪،‬ﻋﻦ ﻃﺮﻳﻖ ﺇﻧﺸﺎء ﻋﺪﺓ ﻃﻠﺒﺎﺕ ﺟﺪﻳﺪﺓ(‪ .‬ﺣﺎﻭﻝ ﺗﺤﺪﻳﺪ ﺃﻱ ﺃﻧﻤﺎﻁ ﻗﺪ ﺗﻤُﻜﻨّﻚ ﻣﻦ‬
‫ﺍﻟﺘﻨﺒﺆﺑﺎﻟﻤﻌُﺮﻓّﺎﺕ ﺍﻟﻤﺼُﺪﺭﺓ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻵﺧﺮﻳﻦ‪ .‬ﺇﺫﺍ ﻟﻢ ﺗﻜﻦ ﻫﻨﺎﻙ ﻃﺮﻳﻘﺔ ﻹﻧﺸﺎء‬
‫ﻣﻌُﺮﻓّﺎﺕﺟﺪﻳﺪﺓ‪ ،‬ﻓﻐﺎﻟﺒﺎً ﻣﺎ ﺳﺘﻘﺘﺼﺮ ﻋﻠﻰ ﺗﺤﻠﻴﻞ ﺍﻟﻤﻌُﺮﻓّﺎﺕ ﺍﻟﻤﻮﺟﻮﺩﺓ ﻟﺪﻳﻚ ﻭﺍﻟﺘﺨﻤﻴﻦ‬
‫ﺑﻨﺎء ًﻋﻠﻴﻬﺎ‪.‬‬

‫‪٦.٣.٥‬ﺇﺫﺍ ﻭﺟﺪﺕ َﻃﺮﻳﻘﺔ ًﻟﻠﺘﻨﺒﺆ ﺑﺎﻟﻤﻌﺮﻓﺎﺕ ﺍﻟﻤﺮُﺳﻠﺔ ﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺁﺧﺮﻳﻦ‪ ،‬ﻓﺎﺳﺘﺨﺪﻡ ﺍﻟﺘﻘﻨﻴﺎﺕ‬
‫ﺍﻟﻤﻮﺿﺤﺔﻓﻲ ﺍﻟﻔﺼﻞ ‪ ١٤‬ﻟﺸﻦ ّﻫﺠﻮﻡ ﺁﻟﻲ ﻟﺠﻤﻊ ﺑﻴﺎﻧﺎﺕ ﻣﻬﻤﺔ ﺗﺨﺺ ﻣﺴﺘﺨﺪﻣﻴﻦ ﺁﺧﺮﻳﻦ‪.‬‬
‫ﺍﺳﺘﺨﺪﻡﻭﻇﻴﻔﺔ ‪ Extract Grep‬ﻓﻲ ‪ Burp Intruder‬ﻻﻟﺘﻘﺎﻁ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﺫﺍﺕ ﺍﻟﺼﻠﺔ‬
‫ﻣﻦﺩﺍﺧﻞ ﺍﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ‪.‬‬

‫‪6.4‬ﺍﺧﺘﺒﺎﺭ ﺃﺳﺎﻟﻴﺐ ﺍﻟﺘﺤﻜﻢ ﻓﻲ ﺍﻟﻮﺻﻮﻝ ﻏﻴﺮ ﺍﻵﻣﻨﺔ‬


‫‪6.4.1‬ﺗﻄُﺒﻖّ ﺑﻌﺾ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺿﻮﺍﺑﻂ ﻭﺻﻮﻝ ﺑﻨﺎء ًﻋﻠﻰ ﻣﻌﻠﻤﺎﺕ ﺍﻟﻄﻠﺐ ﺑﻄﺮﻳﻘﺔ ﻏﻴﺮ ﺁﻣﻨﺔ‬
‫ﺑﻄﺒﻴﻌﺘﻬﺎ‪.‬ﺍﺑﺤﺚ ﻋﻦ ﻣﻌﻠﻤﺎﺕ ﻣﺜﻞﺗﻌﺪﻳﻞ=ﺧﻄﺄﺃﻭﺍﻟﻮﺻﻮﻝ=ﻗﺮﺍءﺓﻓﻲ ﺃﻱ ﻃﻠﺒﺎﺕ ﺭﺉﻴﺴﻴﺔ‪،‬‬
‫ﻭﺗﻌﺪﻳﻠﻬﺎﺑﻤﺎ ﻳﺘﻤﺎﺷﻰ ﻣﻊ ﺩﻭﺭﻫﺎ ﺍﻟﻮﺍﺿﺢ ﻟﻤﺤﺎﻭﻟﺔ ﺍﻟﺘﺪﺧﻞ ﻓﻲ ﻣﻨﻄﻖ ﺍﻟﺘﺤﻜﻢ ﻓﻲ ﺍﻟﻮﺻﻮﻝ‬
‫ﺇﻟﻰﺍﻟﺘﻄﺒﻴﻖ‪.‬‬

‫‪6.4.2‬ﺑﻌﺾ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺗﻌﺘﻤﺪ ﻗﺮﺍﺭﺍﺕ ﺍﻟﺘﺤﻜﻢ ﻓﻲ ﺍﻟﻮﺻﻮﻝ ﻋﻠﻰ ‪HTTP‬ﺍﻟﻤﺤُﻴﻞ‬


‫ﻋﻠﻰﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﻗﺪ ﻳﺘﺤﻜﻢ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺸﻜﻞ ﺻﺤﻴﺢ ﻓﻲ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ‬
‫‪/admin.jsp‬ﻭﻗﺒﻮﻝ ﺃﻱ ﻃﻠﺐ ﻳﻈﻬﺮ ﺫﻟﻚ ﻋﻠﻰ ﺃﻧﻪﺍﻟﻤﺤُﻴﻞ‪.‬ﻻﺧﺘﺒﺎﺭ ﻫﺬﺍ ﺍﻟﺴﻠﻮﻙ‪ ،‬ﺣﺎﻭﻝ ﺗﻨﻔﻴﺬ‬
‫ﺑﻌﺾﺍﻹﺟﺮﺍءﺍﺕ ﺍﻟﻤﻤﻴﺰﺓ ﺍﻟﺘﻲ ﻟﺪﻳﻚ ﺍﻟﺼﻼﺣﻴﺔ ﻟﻠﻘﻴﺎﻡ ﺑﻬﺎ‪ ،‬ﺛﻢ ﺃﺭﺳﻞ ﻣﻠﻔﺎً ﻣﻔﻘﻮﺩﺍً ﺃﻭ ﻣﻌﺪﻻً‬
‫ﺍﻟﻤﺤُﻴﻞﺍﻟﺮﺃﺱ‪ .‬ﺇﺫﺍ ﺗﺴﺒﺐ ﻫﺬﺍ ﺍﻟﺘﻐﻴﻴﺮ ﻓﻲ ﺣﻈﺮ ﺍﻟﺘﻄﺒﻴﻖ ﻟﻄﻠﺒﻚ‪ ،‬ﻓﻘﺪ ﻳﻜﻮﻥ ﻳﺴﺘﺨﺪﻡ‬
‫ﺍﻟﻤﺤُﻴﻞﺑﻄﺮﻳﻘﺔ ﻏﻴﺮ ﺁﻣﻨﺔ‪ .‬ﺣﺎﻭﻝ ﺗﻨﻔﻴﺬ ﻧﻔﺲ ﺍﻹﺟﺮﺍء ﻛﻤﺴﺘﺨﺪﻡ ﻏﻴﺮ ﻣﺼﺮﺡ ﻟﻪ‪ ،‬ﻭﻟﻜﻦ ﻣﻊ‬
‫ﺗﻮﻓﻴﺮﺍﻟﻌﻨﻮﺍﻥ ﺍﻷﺻﻠﻲﺍﻟﻤﺤُﻴﻞﺍﻟﺮﺃﺱ ﻭﻣﻌﺮﻓﺔ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻹﺟﺮﺍء ﻧﺎﺟﺤﺎً‪.‬‬

‫‪6.4.3‬ﺇﺫﺍﺭﺃﺱﻃﺮﻳﻘﺔ ﻣﺴﻤﻮﺡ ﺑﻬﺎ ﻋﻠﻰ ﺍﻟﻤﻮﻗﻊ‪ ،‬ﻻﺧﺘﺒﺎﺭ ﺍﻟﺘﺤﻜﻢ ﻏﻴﺮ ﺍﻵﻣﻦ ﻓﻲ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﻋﻨﺎﻭﻳﻦ‬
‫‪ URL‬ﺑﻮﺍﺳﻄﺔ ﺍﻟﺤﺎﻭﻳﺎﺕ‪ .‬ﺃﺭﺳﻞ ﻃﻠﺒﺎً ﺑﺎﺳﺘﺨﺪﺍﻡﺭﺃﺱﻃﺮﻳﻘﺔ ﻟﺘﺤﺪﻳﺪ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ‬
‫ﻳﺴﻤﺢﺑﺬﻟﻚ‪.‬‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪824‬‬

‫ﺍﺧﺘﺒﺎﺭﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ ﺍﻟﻘﺎﺉﻤﺔ ﻋﻠﻰ ﺍﻹﺩﺧﺎﻝ‬ ‫‪7‬‬


‫ﺗﻔُﻌﻞّﺍﻟﻌﺪﻳﺪ ﻣﻦ ﻓﺉﺎﺕ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ ﺍﻟﻤﻬﻤﺔ ﻧﺘﻴﺠﺔ ًﻟﻤﺪﺧﻼﺕ ﻏﻴﺮ ﻣﺘﻮﻗﻌﺔ ﻣﻦ ﺍﻟﻤﺴﺘﺨﺪﻡ‪،‬‬
‫ﻭﻳﻤﻜﻦﺃﻥ ﺗﻈﻬﺮ ﻓﻲ ﺃﻱ ﻣﻜﺎﻥ ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ‪ .‬ﺇﺣﺪﻯ ﺍﻟﻄﺮﻕ ﺍﻟﻔﻌﺎّﻟﺔ ﻟﻔﺤﺺ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺤﺜﺎً ﻋﻦ ﻫﺬﻩ‬
‫ﺍﻟﺜﻐﺮﺍﺕﻫﻲ ﺗﺸﻮﻳﺶ ﻛﻞ ﻣﻌُﺎﻣﻞ ﻓﻲ ﻛﻞ ﻃﻠﺐ ﺑﻤﺠﻤﻮﻋﺔ ﻣﻦ ﺳﻼﺳﻞ ﺍﻟﻬﺠﻮﻡ‪.‬‬

‫‪.7.1‬ﺗﺸﻮﻳﺶ ﺟﻤﻴﻊ ﻣﻌﻠﻤﺎﺕ ﺍﻟﻄﻠﺐ‬

‫ﻭ‪7.3. XSS‬‬
‫‪.7.6‬ﺍﻟﻨﺺ‬
‫‪.7.4‬ﻧﻈﺎﻡ ﺍﻟﺘﺸﻐﻴﻞ‬
‫‪.7.7‬ﺍﻟﻤﻠﻒ‬ ‫‪.7.5‬ﺍﻟﻤﺴﺎﺭ‬
‫ﻳﺄﻣﺮ‬
‫‪.7.2‬ﺇﺱ ﻛﻴﻮ ﺇﻝ‬
‫ﺇﺟﺎﺑﺔ‬
‫ﺍﻹﺩﻣﺎﺝ‬ ‫ﺣﻘﻦ‬ ‫ﻋﺒﻮﺭ‬ ‫ﺣﻘﻦ‬
‫ﺣﻘﻦ‬ ‫ﺣﻘﻦ‬

‫ﺍﻟﺸﻜﻞ‪:8-21‬ﺍﺧﺘﺒﺎﺭ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ ﺍﻟﻘﺎﺉﻤﺔ ﻋﻠﻰ ﺍﻟﻤﺪﺧﻼﺕ‬

‫‪7.1‬ﺗﺸﻮﻳﺶ ﺟﻤﻴﻊ ﻣﻌﻠﻤﺎﺕ ﺍﻟﻄﻠﺐ‬


‫‪7.1.1‬ﺭﺍﺟﻊ ﻧﺘﺎﺉﺞ ﺗﻤﺎﺭﻳﻦ ﺗﻌﻴﻴﻦ ﺗﻄﺒﻴﻘﻚ‪ ،‬ﻭﺣﺪﺩ ﻛﻞ ﻃﻠﺐ ﻋﻤﻴﻞ ﻣﺤُﺪﺩ ﻳﺮُﺳﻞ ﻣﻌﻠﻤﺎﺕ ٍ‬
‫ﻳﻌﺎﻟﺠﻬﺎﺗﻄﺒﻴﻖ ﺍﻟﺨﺎﺩﻡ‪ .‬ﺗﺸﻤﻞ ﺍﻟﻤﻌﻠﻤﺎﺕ ﺫﺍﺕ ﺍﻟﺼﻠﺔ ﻋﻨﺎﺻﺮ ﺿﻤﻦ ﺳﻠﺴﻠﺔ ﺍﺳﺘﻌﻼﻡ‬
‫ﻋﻨﻮﺍﻥ‪ ،URL‬ﻭﻣﻌﻠﻤﺎﺕ ﻓﻲ ﻧﺺ ﺍﻟﻄﻠﺐ‪ ،‬ﻭﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﺭﺗﺒﺎﻁ ‪ .HTTP‬ﺃﺿﻒ ﺃﻳﻀﺎً ﺃﻱ‬
‫ﻋﻨﺎﺻﺮﺃﺧﺮﻯ ﻣﻦ ﻣﺪُﺧﻼﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﺘﻲ ﻟﻮﺣﻆ ﺗﺄﺛﻴﺮﻫﺎ ﻋﻠﻰ ﺳﻠﻮﻙ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﻣﺜﻞ‪:‬‬
‫ﺍﻟﻤﺤُﻴﻞﺃﻭﻭﻛﻴﻞ ﺍﻟﻤﺴﺘﺨﺪﻡ‬

‫ﺍﻟﻌﻨﺎﻭﻳﻦ‪.‬‬
‫‪7.1.2‬ﻟﺘﺸﻮﻳﺶ ﺍﻟﻤﻌﻠﻤﺎﺕ‪ ،‬ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﻧﺼﻮﺻﻚ ﺍﻟﺒﺮﻣﺠﻴﺔ ﺍﻟﺨﺎﺻﺔ ﺃﻭ ﺃﺩﺍﺓ ﺗﺸﻮﻳﺶ‬
‫ﺟﺎﻫﺰﺓ‪.‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﻻﺳﺘﺨﺪﺍﻡ ‪ ،Burp Intruder‬ﺣﻤﻞّ ﻛﻞ ﻃﻠﺐ ﻋﻠﻰ ﺣﺪﺓ ﺇﻟﻰ‬
‫ﺍﻷﺩﺍﺓ‪.‬ﺇﺣﺪﻯ ﺍﻟﻄﺮﻕ ﺍﻟﺴﻬﻠﺔ ﻟﻠﻘﻴﺎﻡ ﺑﺬﻟﻚ ﻫﻲ ﺍﻋﺘﺮﺍﺽ ﻃﻠﺐ ﻓﻲ ‪ Burp Proxy‬ﻭﺍﺧﺘﻴﺎﺭ "‬
‫ﺇﺭﺳﺎﻝﺇﻟﻰ ﺍﻟﻤﺘﻄﻔﻞ"‪ ،‬ﺃﻭ ﺍﻟﻨﻘﺮ ﺑﺰﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻷﻳﻤﻦ ﻋﻠﻰ ﻋﻨﺼﺮ ﻓﻲ ﺳﺠﻞ ‪Burp Proxy‬‬
‫ﻭﺍﺧﺘﻴﺎﺭﻫﺬﺍ ﺍﻟﺨﻴﺎﺭ‪ .‬ﻳﺆﺩﻱ ﺍﺳﺘﺨﺪﺍﻡ ﻫﺬﺍ ﺍﻟﺨﻴﺎﺭ ﺇﻟﻰ ﺗﻬﻴﺉﺔ ‪ Burp Intruder‬ﺑﻤﺤﺘﻮﻳﺎﺕ‬
‫ﺍﻟﻄﻠﺐ‪،‬ﺑﺎﻹﺿﺎﻓﺔ ﺇﻟﻰ ﺍﻟﻤﻀﻴﻒ ﻭﺍﻟﻤﻨﻔﺬ ﺍﻟﻤﺴﺘﻬﺪﻓﻴﻦ ﺍﻟﺼﺤﻴﺤﻴﻦ‪ .‬ﻛﻤﺎ ﻳﺤُﺪﺩ ﺗﻠﻘﺎﺉﻴﺎً‬
‫ﻗﻴﻢﺟﻤﻴﻊ ﻣﻌﻠﻤﺎﺕ ﺍﻟﻄﻠﺐ ﻛﻤﻮﺍﻗﻊ ﺣﻤﻮﻟﺔ‪ ،‬ﺟﺎﻫﺰﺓ ﻟﻠﺘﺸﻮﻳﺶ‪.‬‬

‫‪7.1.3‬ﺑﺎﺳﺘﺨﺪﺍﻡ ﻋﻼﻣﺔ ﺗﺒﻮﻳﺐ "ﺍﻟﺤﻤﻮﻻﺕ"‪ ،‬ﻗﻢ ﺑﺘﻜﻮﻳﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻨﺎﺳﺒﺔ ﻣﻦ ﺣﻤﻮﻻﺕ ﺍﻟﻬﺠﻮﻡ‬
‫ﻟﻔﺤﺺﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ ﻓﻲ ﺍﻟﺘﻄﺒﻴﻖ‪ .‬ﻳﻤﻜﻨﻚ ﺇﺩﺧﺎﻝ ﺍﻟﺤﻤﻮﻻﺕ ﻳﺪﻭﻳﺎً‪ ،‬ﺃﻭ ﺗﺤﻤﻴﻠﻬﺎ ﻣﻦ‬
‫ﻣﻠﻒ‪،‬ﺃﻭ ﺍﺧﺘﻴﺎﺭ ﺇﺣﺪﻯ ﻗﻮﺍﺉﻢ ﺍﻟﺤﻤﻮﻻﺕ ﺍﻟﻤﻌُﺪﺓّ ﻣﺴﺒﻘﺎً‪ .‬ﻋﺎﺩﺓ ًﻣﺎ ﻳﺘﻄﻠﺐ ﺗﺸﻮﻳﺶ ﻛﻞ‬
‫ﻣﻌُﺎﻣﻞﻃﻠﺐ ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ ﺇﺻﺪﺍﺭ ﻋﺪﺩ ﻛﺒﻴﺮ ﻣﻦ ﺍﻟﻄﻠﺒﺎﺕ ﻭﻣﺮﺍﺟﻌﺔ ﺍﻟﻨﺘﺎﺉﺞ ﺑﺤﺜﺎً ﻋﻦ ﺃﻱ‬
‫ﺷﺬﻭﺫ‪.‬‬
‫ﺇﺫﺍﻛﺎﻧﺖ ﻣﺠﻤﻮﻋﺔ ﺳﻼﺳﻞ ﺍﻟﻬﺠﻮﻡ ﺍﻟﺨﺎﺻﺔ ﺑﻚ ﻛﺒﻴﺮﺓ ﺟﺪﺍً‪ ،‬ﻓﻘﺪ ﻳﻜﻮﻥ ﻫﺬﺍ ﻏﻴﺮ ﻣﻨﺘﺞ‬
‫‪825‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫ﻭﺗﻮﻟﻴﺪﻛﻤﻴﺔ ﻫﺎﺉﻠﺔ ﻣﻦ ﺍﻟﻤﺨﺮﺟﺎﺕ ﺍﻟﺘﻲ ﻳﺼﻌﺐ ﻋﻠﻴﻚ ﻣﺮﺍﺟﻌﺘﻬﺎ‪ .‬ﻟﺬﺍ‪ ،‬ﻓﺈﻥ ﺍﻟﻨﻬﺞ ﺍﻷﻣﺜﻞ‬
‫ﻫﻮﺍﺳﺘﻬﺪﺍﻑ ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ ﺍﻟﺸﺎﺉﻌﺔ ﺍﻟﺘﻲ ﻳﺴﻬﻞ ﺍﻛﺘﺸﺎﻓﻬﺎ ﻏﺎﻟﺒﺎً ﻓﻲ‬
‫ﺍﺳﺘﺠﺎﺑﺎﺕﻏﻴﺮ ﻃﺒﻴﻌﻴﺔ ﻟﻤﺪﺧﻼﺕ ﻣﺼُﻤﻤﺔ ﺧﺼﻴﺼﺎً‪ ،‬ﻭﺍﻟﺘﻲ ﻏﺎﻟﺒﺎً ﻣﺎ ﺗﻈﻬﺮ ﻓﻲ ﺃﻱ ﻣﻜﺎﻥ‬
‫ﺩﺍﺧﻞﺍﻟﺘﻄﺒﻴﻖ ﺑﺪﻻً ﻣﻦ ﺃﻧﻮﺍﻉ ﻣﺤﺪﺩﺓ ﻣﻦ ﺍﻟﻮﻇﺎﺉﻒ‪ .‬ﺇﻟﻴﻚ ﻣﺠﻤﻮﻋﺔ ﻣﻨﺎﺳﺒﺔ ﻣﻦ‬
‫ﺍﻟﺤﻤﻮﻻﺕﺍﻟﺘﻲ ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻻﺧﺘﺒﺎﺭ ﺑﻌﺾ ﺍﻟﻔﺉﺎﺕ ﺍﻟﺸﺎﺉﻌﺔ ﻣﻦ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ‪:‬‬

‫ﺣﻘﻦ‪SQL‬‬
‫'‬
‫'‪--‬‬
‫'; ﺍﻧﺘﻈﺮ ﺍﻟﺘﺄﺧﻴﺮ '‪ ;1 --'0:30:0‬ﺍﻧﺘﻈﺮ ﺍﻟﺘﺄﺧﻴﺮ‬
‫'‪--'0:30:0‬‬

‫ﻭﺣﻘﻦﺍﻟﺮﺃﺱ ‪XSS‬‬
‫ﺍﺧﺘﺒﺎﺭ‪xss‬‬
‫"<‪)'xss'(>/script‬ﺗﻨﺒﻴﻪ<‪"<>script‬‬

‫ﺣﻘﻦﺃﻭﺍﻣﺮ ﻧﻈﺎﻡ ﺍﻟﺘﺸﻐﻴﻞ‬


‫| ‪ping -i 30 127.0.0.1 ; x || ping -n 30 127.0.0.1 & | ping –i 30 127.0.0.1‬‬
‫||‬
‫؛‪30 127.0.0.1 & ; ping 127.0.0.1‬‬
‫‪ping –i 30 127.0.0.1 & & ping –n‬‬
‫& | ‪| ping –n 30 127.0.0.1‬‬

‫` ‪–i 30 127.0.0.1 %0a ` ping 127.0.0.1‬‬


‫‪%0a ping‬‬

‫ﻋﺒﻮﺭﺍﻟﻤﺴﺎﺭ‬
‫‪/../../../../../../../../../ . .‬ﺇﻟﺦ‪/‬ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‬
‫‪. . /../../../../../../../../../boot.ini‬‬
‫‪\..\..\..\..\..\..\..\..\..\. .‬ﺇﻟﺦ\‪passwd‬‬
‫‪. . \..\..\..\..\..\..\..\..\..\boot.ini‬‬

‫ﺣﻘﻦﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ‬

‫;ﺻﺪﻯ ‪111111‬‬
‫ﺻﺪﻯ‪111111‬‬
‫ﺍﻟﺮﺩ‪.‬ﺍﻛﺘﺐ ‪111111‬‬
‫‪:response.write111111‬‬

‫ﺗﻀﻤﻴﻦﺍﻟﻤﻠﻒ‬
‫‪</‬ﻏﻴﺮ ﻣﻮﺟﻮﺩ ‪ IP‬ﻋﻨﻮﺍﻥ>‪</ http://‬ﺍﺳﻢ ﺍﻟﺨﺎﺩﻡ‬
‫ﺍﻟﺨﺎﺹﺑﻚ>‪http://‬‬

‫‪7.1.4‬ﺟﻤﻴﻊ ﺍﻟﺤﻤﻮﻻﺕ ﺍﻟﺴﺎﺑﻘﺔ ﻣﻌﺮﻭﺿﺔ ﺑﺼﻴﻐﺘﻬﺎ ﺍﻟﺤﺮﻓﻴﺔ‪ .‬ﻳﺠﺐ ﺗﺮﻣﻴﺰ ﺍﻷﺣﺮﻑ ? ﻭ; ﻭ& ﻭ‪ +‬ﻭ=‬
‫ﻭﺍﻟﻤﺴﺎﻓﺔﺑﺎﺳﺘﺨﺪﺍﻡ ﻋﻨﻮﺍﻥ ‪ URL‬ﻧﻈﺮﺍً ﻟﺨﺼﺎﺉﺼﻬﺎ‪.‬‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪826‬‬

‫ﺍﻟﻤﻌﻨﻰﺿﻤﻦ ﻃﻠﺒﺎﺕ ‪ .HTTP‬ﺍﻓﺘﺮﺍﺿﻴﺎً‪ ،‬ﻳﻘﻮﻡ ‪ Burp Intruder‬ﺑﺎﻟﺘﺮﻣﻴﺰ ﺍﻟﻼﺯﻡ ﻟﻬﺬﻩ‬


‫ﺍﻷﺣﺮﻑ‪،‬ﻟﺬﺍ ﺗﺄﻛﺪ ﻣﻦ ﻋﺪﻡ ﺗﻌﻄﻴﻞ ﻫﺬﺍ ﺍﻟﺨﻴﺎﺭ‪) .‬ﻻﺳﺘﻌﺎﺩﺓ ﺟﻤﻴﻊ ﺍﻟﺨﻴﺎﺭﺍﺕ ﺇﻟﻰ ﺇﻋﺪﺍﺩﺍﺗﻬﺎ‬
‫ﺍﻻﻓﺘﺮﺍﺿﻴﺔﺑﻌﺪ ﺍﻟﺘﺨﺼﻴﺺ ﺍﻟﺴﺎﺑﻖ‪ ،‬ﺣﺪﺩ ‪ - Burp‬ﺍﺳﺘﻌﺎﺩﺓ ﺍﻹﻋﺪﺍﺩﺍﺕ ﺍﻻﻓﺘﺮﺍﺿﻴﺔ(‪.‬‬

‫‪7.1.5‬ﻓﻲ ﺩﺍﻟﺔ ‪ Grep‬ﻓﻲ ‪ ،Burp Intruder‬ﻗﻢ ﺑﺘﻜﻮﻳﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻨﺎﺳﺒﺔ ﻣﻦ ﺍﻟﺴﻼﺳﻞ ﺍﻟﻨﺼﻴﺔ‬
‫ﻟﻺﺷﺎﺭﺓﺇﻟﻰ ﺑﻌﺾ ﺭﺳﺎﺉﻞ ﺍﻟﺨﻄﺄ ﺍﻟﺸﺎﺉﻌﺔ ﺿﻤﻦ ﺍﻻﺳﺘﺠﺎﺑﺎﺕ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪:‬‬
‫ﺧﻄﺄ‬
‫ﺍﺳﺘﺜﻨﺎء‬
‫ﻏﻴﺮﻗﺎﻧﻮﻧﻲ‬
‫ﻏﻴﺮﺻﺎﻟﺢ‬
‫ﻳﻔﺸﻞ‬
‫ﻛﻮﻣﺔ‬
‫ﻭﺻﻮﻝ‬
‫ﺩﻟﻴﻞ‬
‫ﻣﻠﻒ‬
‫ﻟﻢﻳﺘﻢ ﺍﻟﻌﺜﻮﺭ ﻋﻠﻴﻪ‬
‫ﻓﺎﺭﺷﺎﺭ‬
‫ﻗﺎﻋﺪﺓﺑﻴﺎﻧﺎﺕ ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﻔﺘﻮﺣﺔ‬

‫‪SQL‬‬
‫ﻳﺨﺘﺎﺭ‬
‫‪111111‬‬

‫ﻻﺣﻆﺃﻥ ﺍﻟﺴﻠﺴﻠﺔ‪111111‬ﻣﻀُﻤﻦ ﻻﺧﺘﺒﺎﺭ ﻧﺠﺎﺡ ﻫﺠﻤﺎﺕ ﺣﻘﻦ ﺍﻟﺒﺮﺍﻣﺞ ﺍﻟﻨﺼﻴﺔ‪ .‬ﺗﺘﻀﻤﻦ‬


‫ﺍﻟﺤﻤﻮﻻﺕﻓﻲ ﺍﻟﺨﻄﻮﺓ ‪ 7.1.3‬ﻛﺘﺎﺑﺔ ﻫﺬﻩ ﺍﻟﻘﻴﻤﺔ ﻓﻲ ﺍﺳﺘﺠﺎﺑﺔ ﺍﻟﺨﺎﺩﻡ‪.‬‬

‫‪7.1.6‬ﺣﺪﺩ ﺃﻳﻀﺎً ﺧﻴﺎﺭ ‪ Payload Grep‬ﻟﻺﺷﺎﺭﺓ ﺇﻟﻰ ﺍﻻﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺘﻲ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺍﻟﺤﻤﻮﻟﺔ‬
‫ﻧﻔﺴﻬﺎ‪،‬ﻣﻤﺎ ﻳﺸﻴﺮ ﺇﻟﻰ ﻭﺟﻮﺩ ﺛﻐﺮﺓ ﻣﺤﺘﻤﻠﺔ ﻓﻲ ﺣﻘﻦ ‪ XSS‬ﺃﻭ ﺍﻟﺮﺃﺱ‪.‬‬
‫‪7.1.7‬ﻗﻢ ﺑﺈﻋﺪﺍﺩ ﺧﺎﺩﻡ ﻭﻳﺐ ﺃﻭ ﻣﺴﺘﻤﻊ ‪ netcat‬ﻋﻠﻰ ﺍﻟﻤﻀﻴﻒ ﺍﻟﺬﻱ ﺣﺪﺩﺗﻪ ﻓﻲ ﺣﻤﻮﻟﺔ ﺗﻀﻤﻴﻦ‬
‫ﺍﻟﻤﻠﻔﺎﺕﺍﻷﻭﻟﻰ‪ .‬ﻳﺴﺎﻋﺪﻙ ﻫﺬﺍ ﻋﻠﻰ ﻣﺮﺍﻗﺒﺔ ﻣﺤﺎﻭﻻﺕ ﺍﻻﺗﺼﺎﻝ ﺍﻟﻮﺍﺭﺩﺓ ﻣﻦ ﺍﻟﺨﺎﺩﻡ ﺍﻟﻨﺎﺗﺠﺔ‬
‫ﻋﻦﻫﺠﻮﻡ ﺗﻀﻤﻴﻦ ﻣﻠﻔﺎﺕ ﻋﻦ ﺑﻌُﺪ ﻧﺎﺟﺢ‪.‬‬

‫‪7.1.8‬ﺷﻦ ّﺍﻟﻬﺠﻮﻡ‪ .‬ﻋﻨﺪ ﺍﻛﺘﻤﺎﻟﻪ‪ ،‬ﺭﺍﺟﻊ ﺍﻟﻨﺘﺎﺉﺞ ﺑﺤﺜﺎً ﻋﻦ ﺃﻱ ﺍﺳﺘﺠﺎﺑﺎﺕ ﺷﺎﺫﺓ ﺗﺸﻴﺮ ﺇﻟﻰ ﻭﺟﻮﺩ‬
‫ﺛﻐﺮﺍﺕﺃﻣﻨﻴﺔ‪ .‬ﺗﺤﻘﻖ ﻣﻦ ﻭﺟﻮﺩ ﺍﺧﺘﻼﻓﺎﺕ ﻓﻲ ﺭﻣﺰ ﺣﺎﻟﺔ ‪ ،HTTP‬ﻭﻃﻮﻝ ﺍﻻﺳﺘﺠﺎﺑﺔ‪ ،‬ﻭﻭﻗﺖ‬
‫ﺍﻻﺳﺘﺠﺎﺑﺔ‪،‬ﻭﺷﻜﻞ ﺍﻟﺘﻌﺒﻴﺮﺍﺕ ﺍﻟﻤﻬُﻴﺄﺓ‪ ،‬ﻭﺷﻜﻞ ﺍﻟﺤﻤﻮﻟﺔ ﻧﻔﺴﻬﺎ‪ .‬ﻳﻤﻜﻨﻚ ﺍﻟﻨﻘﺮ ﻋﻠﻰ ﻋﻨﻮﺍﻥ‬
‫ﻛﻞﻋﻤﻮﺩ ﻓﻲ ﺟﺪﻭﻝ ﺍﻟﻨﺘﺎﺉﺞ ﻟﻔﺮﺯ ﺍﻟﻨﺘﺎﺉﺞ ﺣﺴﺐ ﺍﻟﻘﻴﻢ ﻓﻴﻪ )ﻭﺍﺿﻐﻂ ﻋﻠﻰ ﻣﻔﺘﺎﺡ ‪Shift‬‬
‫ﻣﻊﺍﻟﻨﻘﺮ ﻟﻌﻜﺲ ﺗﺮﺗﻴﺐ ﺍﻟﻨﺘﺎﺉﺞ(‪ .‬ﻳﻤُﻜﻨّﻚ ﻫﺬﺍ ﻣﻦ ﺗﺤﺪﻳﺪ ﺃﻱ ﺷﺬﻭﺫﺍﺕ ﺑﺎﺭﺯﺓ ﻋﻦ ﺍﻟﻨﺘﺎﺉﺞ‬
‫ﺍﻷﺧﺮﻯﺑﺴﺮﻋﺔ‪.‬‬

‫‪7.1.9‬ﻟﻜﻞ ﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ ﻣﺤﺘﻤﻠﺔ ﻣﺸُﺎﺭ ﺇﻟﻴﻬﺎ ﻓﻲ ﻧﺘﺎﺉﺞ ﺍﺧﺘﺒﺎﺭ ﺍﻟﺘﺰﻭﻳﺮ‪ ،‬ﻳﺮُﺟﻰ ﻣﺮﺍﺟﻌﺔ ﺍﻷﻗﺴﺎﻡ‬
‫ﺍﻟﺘﺎﻟﻴﺔﻣﻦ ﻫﺬﻩ ﺍﻟﻤﻨﻬﺠﻴﺔ‪ .‬ﺗﺼﻒ ﻫﺬﻩ ﺍﻷﻗﺴﺎﻡ ﺍﻟﺨﻄﻮﺍﺕ ﺍﻟﺘﻔﺼﻴﻠﻴﺔ ﺍﻟﺘﻲ ﻳﺠﺐ ﺍﺗﺨﺎﺫﻫﺎ‬
‫ﻓﻴﻤﺎﻳﺘﻌﻠﻖ ﺑﻜﻞ ﻓﺉﺔ ﻣﻦ ﺍﻟﻤﺸﺎﻛﻞ ﻟﻠﺘﺤﻘﻖ ﻣﻦ ﻭﺟﻮﺩ ﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ ﻭﺍﺳﺘﻐﻼﻟﻬﺎ ﺑﻨﺠﺎﺡ‪.‬‬
‫‪827‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫‪7.1.10‬ﺑﻌﺪ ﺗﻬﻴﺉﺔ ‪ Burp Intruder‬ﻹﺟﺮﺍء ﺍﺧﺘﺒﺎﺭ ﺯﺍﺉﻒ ﻟﻄﻠﺐ ﻭﺍﺣﺪ‪ ،‬ﻳﻤﻜﻨﻚ ﺗﻜﺮﺍﺭ ﻧﻔﺲ‬
‫ﺍﻻﺧﺘﺒﺎﺭﺑﺴﺮﻋﺔ ﻋﻠﻰ ﻃﻠﺒﺎﺕ ﺃﺧﺮﻯ ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ‪ .‬ﻣﺎ ﻋﻠﻴﻚ ﺳﻮﻯ ﺗﺤﺪﻳﺪ ﻛﻞ ﻃﻠﺐ‬
‫ﻣﺴﺘﻬﺪﻑﺩﺍﺧﻞ ‪ Burp Proxy‬ﻭﺍﺧﺘﻴﺎﺭ ﺧﻴﺎﺭ "ﺇﺭﺳﺎﻝ ﺇﻟﻰ ‪ ."Intruder‬ﺛﻢ ﺷﻐﻞّ ﺍﻟﻬﺠﻮﻡ‬
‫ﻓﻮﺭﺍًﺩﺍﺧﻞ ‪ Intruder‬ﺑﺎﺳﺘﺨﺪﺍﻡ ﺇﻋﺪﺍﺩﺍﺕ ﺍﻟﻬﺠﻮﻡ ﺍﻟﺤﺎﻟﻴﺔ‪ .‬ﺑﻬﺬﻩ ﺍﻟﻄﺮﻳﻘﺔ‪ ،‬ﻳﻤﻜﻨﻚ ﺗﺸﻐﻴﻞ‬
‫ﻋﺪﺩﻛﺒﻴﺮ ﻣﻦ ﺍﻻﺧﺘﺒﺎﺭﺍﺕ ﻓﻲ ﻭﻗﺖ ﻭﺍﺣﺪ ﻓﻲ ﻧﻮﺍﻓﺬ ﻣﻨﻔﺼﻠﺔ ﻭﻣﺮﺍﺟﻌﺔ ﺍﻟﻨﺘﺎﺉﺞ ﻳﺪﻭﻳﺎً ﻋﻨﺪ‬
‫ﺍﻧﺘﻬﺎءﻛﻞ ﺍﺧﺘﺒﺎﺭ ﻣﻦ ﻋﻤﻠﻪ‪.‬‬

‫‪7.1.11‬ﺇﺫﺍ ﻛﺸﻔﺖ ﺗﻤﺎﺭﻳﻦ ﺍﻟﺘﻌﻴﻴﻦ ﺍﻟﺨﺎﺻﺔ ﺑﻚ ﻋﻦ ﺃﻱ ﻗﻨﻮﺍﺕ ﺇﺩﺧﺎﻝ ﺧﺎﺭﺝ ﺍﻟﻨﻄﺎﻕ‪ ،‬ﺣﻴﺚ ﻳﻤﻜﻦ‬
‫ﺇﺩﺧﺎﻝﻣﺪﺧﻼﺕ ﻗﺎﺑﻠﺔ ﻟﻠﺘﺤﻜﻢ ﻣﻦ ﻗﺒِﻞ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻓﻲ ﻣﻌﺎﻟﺠﺔ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﻓﻌﻠﻴﻚ ﺇﺟﺮﺍء‬
‫ﺗﻤﺮﻳﻦﺗﺸﻮﻳﺶ ﻣﺸﺎﺑﻪ ﻋﻠﻰ ﻗﻨﻮﺍﺕ ﺍﻹﺩﺧﺎﻝ ﻫﺬﻩ‪ .‬ﺃﺭﺳﻞ ﺑﻴﺎﻧﺎﺕ ﻣﻌُﺪﺓّ ﻣﺨُﺘﻠﻔﺔ ﻣﺼُﻤﻤﺔ‬
‫ﻟﺘﻔﻌﻴﻞﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ ﺍﻟﺸﺎﺉﻌﺔ ﻋﻨﺪ ﻣﻌﺎﻟﺠﺘﻬﺎ ﺩﺍﺧﻞ ﺗﻄﺒﻴﻖ ﺍﻟﻮﻳﺐ‪ .‬ﺑﻨﺎء ًﻋﻠﻰ ﻃﺒﻴﻌﺔ‬
‫ﻗﻨﺎﺓﺍﻹﺩﺧﺎﻝ‪ ،‬ﻗﺪ ﺗﺤﺘﺎﺝ ﺇﻟﻰ ﺇﻧﺸﺎء ﻧﺺ ﺑﺮﻣﺠﻲ ﻣﺨُﺼﺺ ﺃﻭ ﺃﺩﺍﺓ ﺃﺧﺮﻯ ﻟﻬﺬﺍ ﺍﻟﻐﺮﺽ‪.‬‬

‫‪7.1.12‬ﺑﺎﻹﺿﺎﻓﺔ ﺇﻟﻰ ﻓﺤﺼﻚ ﺍﻟﺨﺎﺹ ﻟﻄﻠﺒﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﺇﺫﺍ ﻛﺎﻥ ﻟﺪﻳﻚ ﺣﻖ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﻣﺎﺳﺢ‬
‫ﺛﻐﺮﺍﺕﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ ﺍﻟﺘﻠﻘﺎﺉﻲ‪ ،‬ﻓﻴﺠﺐ ﻋﻠﻴﻚ ﺗﺸﻐﻴﻞ‬
‫ﻗﻢﺑﻤﻘﺎﺭﻧﺔ ﺍﻟﻨﺘﺎﺉﺞ ﺍﻟﺘﻲ ﺗﻮﺻﻠﺖ ﺇﻟﻴﻬﺎ ﻣﻊ ﺗﻄﺒﻴﻘﻚ ﺍﻟﻤﺴﺘﻬﺪﻑ ﻟﺘﻮﻓﻴﺮ ﺃﺳﺎﺱ ﻟﻠﻤﻘﺎﺭﻧﺔ ﻣﻊ‬
‫ﺍﻟﻨﺘﺎﺉﺞﺍﻟﺘﻲ ﺗﻮﺻﻠﺖ ﺇﻟﻴﻬﺎ‪.‬‬

‫‪7.2‬ﺍﺧﺘﺒﺎﺭ ﺣﻘﻦ ‪SQL‬‬


‫‪7.2.1‬ﺇﺫﺍ ﺃﺩﺕ ﺳﻼﺳﻞ ﻫﺠﻮﻡ ‪ SQL‬ﺍﻟﻤﺪﺭﺟﺔ ﻓﻲ ﺍﻟﺨﻄﻮﺓ ‪ 7.1.3‬ﺇﻟﻰ ﺃﻱ ﺍﺳﺘﺠﺎﺑﺎﺕ ﻏﻴﺮ ﻃﺒﻴﻌﻴﺔ‪،‬‬
‫ﻓﻘﻢﺑﻔﺤﺺ ﻣﻌﺎﻟﺠﺔ ﺍﻟﺘﻄﺒﻴﻖ ﻟﻠﻤﻌﻠﻤﺔ ﺫﺍﺕ ﺍﻟﺼﻠﺔ ﻳﺪﻭﻳﺎً ﻟﺘﺤﺪﻳﺪ ﻣﺎ ﺇﺫﺍ ﻛﺎﻧﺖ ﻫﻨﺎﻙ ﺛﻐﺮﺓ‬
‫ﺣﻘﻦ‪ SQL‬ﻣﻮﺟﻮﺩﺓ‪.‬‬
‫‪٧.٢.٢‬ﺇﺫﺍ ﻇﻬﺮﺕ ﺃﻱ ﺭﺳﺎﺉﻞ ﺧﻄﺄ ﻓﻲ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ‪ ،‬ﻓﺘﺤﻘﻖ ﻣﻦ ﻣﻌﻨﺎﻫﺎ‪ .‬ﺍﺳﺘﺨﺪﻡ ﻗﺴﻢ "ﺑﻨﻴﺔ‬
‫‪ SQL‬ﻭﻣﺮﺟﻊ ﺍﻷﺧﻄﺎء" ﻓﻲ ﺍﻟﻔﺼﻞ ‪ ٩‬ﻟﻠﻤﺴﺎﻋﺪﺓ ﻓﻲ ﺗﻔﺴﻴﺮ ﺭﺳﺎﺉﻞ ﺍﻟﺨﻄﺄ ﻋﻠﻰ ﺑﻌﺾ‬
‫ﻣﻨﺼﺎﺕﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺸﺎﺉﻌﺔ‪.‬‬
‫‪7.2.3‬ﺇﺫﺍ ﺗﺴﺒﺐ ﺇﺩﺧﺎﻝ ﻋﻼﻣﺔ ﺍﻗﺘﺒﺎﺱ ﻣﻔﺮﺩﺓ ﻓﻲ ﺍﻟﻤﻌﻠﻤﺔ ﻓﻲ ﺣﺪﻭﺙ ﺧﻄﺄ ﺃﻭ ﺳﻠﻮﻙ ﻏﻴﺮ‬
‫ﻃﺒﻴﻌﻲ‪،‬ﻓﺄﺩﺧﻞ ﻋﻼﻣﺘﻲ ﺍﻗﺘﺒﺎﺱ ﻣﻔﺮﺩﺗﻴﻦ‪ .‬ﺇﺫﺍ ﺃﺩﻯ ﻫﺬﺍ ﺍﻹﺩﺧﺎﻝ ﺇﻟﻰ ﺍﺧﺘﻔﺎء ﺍﻟﺨﻄﺄ ﺃﻭ‬
‫ﺍﻟﺴﻠﻮﻙﻏﻴﺮ ﺍﻟﻄﺒﻴﻌﻲ‪ ،‬ﻓﻤﻦ ﺍﻟﻤﺤﺘﻤﻞ ﺃﻥ ﻳﻜﻮﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻋﺮﺿﺔ ﻟﺤﻘﻦ ‪.SQL‬‬

‫‪7.2.4‬ﺣﺎﻭﻝ ﺍﺳﺘﺨﺪﺍﻡ ﺩﻭﺍﻝ ﺭﺑﻂ ﺳﻼﺳﻞ ‪ SQL‬ﺍﻟﺸﺎﺉﻌﺔ ﻹﻧﺸﺎء ﺳﻠﺴﻠﺔ ﻣﻜﺎﻓﺉﺔ ﻟﻤﺪﺧﻼﺕ ﻏﻴﺮ‬
‫ﺿﺎﺭﺓ‪.‬ﺇﺫﺍ ﺗﺴﺒﺐ ﻫﺬﺍ ﻓﻲ ﻧﻔﺲ ﺍﺳﺘﺠﺎﺑﺔ ﺍﻟﻤﺪﺧﻼﺕ ﻏﻴﺮ ﺍﻟﻀﺎﺭﺓ ﺍﻷﺻﻠﻴﺔ‪ ،‬ﻓﻤﻦ ﺍﻟﻤﺤﺘﻤﻞ‬
‫ﺃﻥﻳﻜﻮﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻋﺮﺿﺔ ﻟﻼﺧﺘﺮﺍﻕ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﻤﺪﺧﻞ ﺍﻷﺻﻠﻲ ﻫﻮ‬
‫ﺍﻟﺘﻌﺒﻴﺮﻓﻮﻭ‪،‬ﻳﻤﻜﻨﻚ ﺇﺟﺮﺍء ﻫﺬﺍ ﺍﻻﺧﺘﺒﺎﺭ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺍﻟﻌﻨﺎﺻﺮ ﺍﻟﺘﺎﻟﻴﺔ )ﻓﻲ ﺍﻟﻤﺜﺎﻝ ﺍﻟﺜﺎﻟﺚ‪،‬‬
‫ﻻﺣﻆﺍﻟﻤﺴﺎﻓﺔ ﺑﻴﻦ ﻋﻼﻣﺘﻲ ﺍﻻﻗﺘﺒﺎﺱ(‪:‬‬

‫'||'ﻓﻮ‬
‫'‪'+‬ﻓﻮ‬
‫' 'ﻓﻮ‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪828‬‬

‫ﻛﻤﺎﻫﻮ ﺍﻟﺤﺎﻝ ﺩﺍﺉﻤﺎً‪ ،‬ﺗﺄﻛﺪ ﻣﻦ ﺗﺮﻣﻴﺰ ﻋﻨﻮﺍﻥ ‪ URL‬ﻟﻸﺣﺮﻑ ﻣﺜﻞ ‪ +‬ﻭﺍﻟﻤﺴﺎﻓﺔ ﺍﻟﺘﻲ ﻟﻬﺎ‬
‫ﻣﻌﻨﻰﺧﺎﺹ ﺩﺍﺧﻞ ﻃﻠﺒﺎﺕ ‪.HTTP‬‬
‫‪7.2.5‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻹﺩﺧﺎﻝ ﺍﻷﺻﻠﻲ ﺭﻗﻤﻴﺎً‪ ،‬ﻓﺤﺎﻭﻝ ﺍﺳﺘﺨﺪﺍﻡ ﺗﻌﺒﻴﺮ ﺭﻳﺎﺿﻲ ﻣﻜﺎﻓﺊ ﻟﻠﻘﻴﻤﺔ ﺍﻷﺻﻠﻴﺔ‪.‬‬
‫ﻋﻠﻰﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﺇﺫﺍ ﻛﺎﻧﺖ ﺍﻟﻘﻴﻤﺔ ﺍﻷﺻﻠﻴﺔ ‪ ،2‬ﻓﺤﺎﻭﻝ ﺇﺭﺳﺎﻝ ‪ 1+1‬ﺃﻭ ‪ .1-3‬ﺇﺫﺍ ﺍﺳﺘﺠﺎﺏ‬
‫ﺍﻟﺘﻄﺒﻴﻖﺑﻨﻔﺲ ﺍﻟﻄﺮﻳﻘﺔ‪،‬‬
‫ﻗﺪﻳﻜﻮﻥ ﺍﻷﻣﺮ ﻋﺮﺿﺔ ﻟﻠﺨﻄﺮ‪ ،‬ﺧﺎﺻﺔ ًﺇﺫﺍ ﻛﺎﻧﺖ ﻗﻴﻤﺔ ﺍﻟﺘﻌﺒﻴﺮ ﺍﻟﺮﻗﻤﻲ ﻟﻬﺎ ﺗﺄﺛﻴﺮ ﻣﻨﻬﺠﻲ ﻋﻠﻰ‬
‫ﺳﻠﻮﻙﺍﻟﺘﻄﺒﻴﻖ‪.‬‬
‫‪7.2.6‬ﺇﺫﺍ ﻧﺠﺢ ﺍﻻﺧﺘﺒﺎﺭ ﺍﻟﺴﺎﺑﻖ‪ ،‬ﻳﻤﻜﻨﻚ ﺍﻟﺘﺄﻛﺪ ﺑﺸﻜﻞ ﺃﻛﺒﺮ ﻣﻦ ﻭﺟﻮﺩ ﺛﻐﺮﺓ ﺣﻘﻦ ‪ SQL‬ﺑﺎﺳﺘﺨﺪﺍﻡ‬
‫ﺗﻌﺒﻴﺮﺍﺕﺭﻳﺎﺿﻴﺔ ﺧﺎﺻﺔ ﺑـ ‪ SQL‬ﻹﻧﺸﺎء ﻗﻴﻤﺔ ﻣﻌﻴﻨﺔ‪ .‬ﺇﺫﺍ ﻛﺎﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺍﻟﺘﻼﻋﺐ‬
‫ﺑﻤﻨﻄﻖﺍﻟﺘﻄﺒﻴﻖ ﺑﻬﺬﻩ ﺍﻟﻄﺮﻳﻘﺔ ﺑﺸﻜﻞ ﻣﻨﻬﺠﻲ‪ ،‬ﻓﻤﻦ ﺷﺒﻪ ﺍﻟﻤﺆﻛﺪ ﺃﻧﻪ ﻣﻌﺮﺽ ﻟﺜﻐﺮﺓ ﺣﻘﻦ‬
‫‪ .SQL‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﻛﻼ ﺍﻟﻌﻨﺼﺮﻳﻦ ﺍﻟﺘﺎﻟﻴﻴﻦ ﻳﻌﺎﺩﻻﻥ ﺍﻟﺮﻗﻢ ‪:2‬‬

‫('‪67-ASCII)'A‬‬
‫(‪51-ASCII)1‬‬

‫‪7.2.7‬ﺇﺫﺍ ﻛﺎﻧﺖ ﺃﻱ ﻣﻦ ﺣﺎﻻﺕ ﺍﺧﺘﺒﺎﺭ ‪ fuzz‬ﺗﺴﺘﺨﺪﻡﺍﻧﺘﻈﺮﺃﺩﻯ ﺍﻷﻣﺮ ﺇﻟﻰ ﺗﺄﺧﻴﺮ ﺯﻣﻨﻲ ﻏﻴﺮ ﻃﺒﻴﻌﻲ‬
‫ﻗﺒﻞﺍﺳﺘﺠﺎﺑﺔ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﻭﻫﺬﺍ ﻣﺆﺷﺮ ﻗﻮﻱ ﻋﻠﻰ ﺃﻥ ﻧﻮﻉ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻫﻮ ‪ MS-SQL‬ﻭﺃﻥ‬
‫ﺍﻟﺘﻄﺒﻴﻖﻣﻌﺮﺽ ﻟﺨﻄﺮ ﺣﻘﻦ ‪ .SQL‬ﻛﺮﺭ ﺍﻻﺧﺘﺒﺎﺭ ﻳﺪﻭﻳﺎً‪ ،‬ﻣﻊ ﺗﺤﺪﻳﺪ ﻗﻴﻢ ﻣﺨﺘﻠﻔﺔ ﻓﻲﺍﻧﺘﻈﺮ‬
‫ﺣﺪﺩﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﻭﻗﺖ ﺍﻻﺳﺘﺠﺎﺑﺔ ﻳﺘﻐﻴﺮ ﺑﺎﻧﺘﻈﺎﻡ ﻣﻊ ﻫﺬﻩ ﺍﻟﻘﻴﻤﺔ‪ .‬ﻳﺮُﺟﻰ ﻣﻼﺣﻈﺔ ﺃﻧﻪ ﻗﺪ ﻳﺘﻢ‬
‫ﺇﺩﺭﺍﺝﺣﻤﻮﻟﺔ ﺍﻟﻬﺠﻮﻡ ﻓﻲ ﺃﻛﺜﺮ ﻣﻦ ﺍﺳﺘﻌﻼﻡ ‪ ،SQL‬ﻟﺬﺍ ﻗﺪ ﻳﻜﻮﻥ ﺍﻟﺘﺄﺧﻴﺮ ﺍﻟﺰﻣﻨﻲ ﺍﻟﻤﻼُﺣﻆ‬
‫ﻣﻀﺎﻋﻔﺎًﺛﺎﺑﺘﺎً ﻟﻠﻘﻴﻤﺔ ﺍﻟﻤﺤﺪﺩﺓ‪.‬‬

‫‪7.2.8‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻋﺮﺿﺔ ﻟﺨﻄﺮ ﺣﻘﻦ ‪ ،SQL‬ﻓﻔﻜﺮ ﻓﻲ ﺃﻧﻮﺍﻉ ﺍﻟﻬﺠﻤﺎﺕ ﺍﻟﻤﻤﻜﻨﺔ ﻭﺍﻟﺘﻲ ﻣﻦ‬
‫ﺍﻟﻤﺮﺟﺢﺃﻥ ﺗﺴﺎﻋﺪﻙ ﻓﻲ ﺗﺤﻘﻴﻖ ﺃﻫﺪﺍﻓﻚ‪.‬‬
‫ﺭﺍﺟﻊﺍﻟﻔﺼﻞ ‪ 9‬ﻟﻤﻌﺮﻓﺔ ﺍﻟﺨﻄﻮﺍﺕ ﺍﻟﺘﻔﺼﻴﻠﻴﺔ ﺍﻟﻼﺯﻣﺔ ﻟﺘﻨﻔﻴﺬ ﺃﻱ ﻣﻦ ﺍﻟﻬﺠﻤﺎﺕ ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬

‫ﺗﻌﺪﻳﻞﺍﻟﺸﺮﻭﻁ ﺩﺍﺧﻞﺃﻳﻦﻋﺒﺎﺭﺓ ﻟﺘﻐﻴﻴﺮ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ )ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﻋﻦ ﻃﺮﻳﻖ‬ ‫‪-‬‬

‫ﺣﻘﻦﺃﻭ ‪)--1=1‬ﻟﺘﺠﺎﻭﺯ ﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ(‪.‬‬


‫ﺍﺳﺘﺨﺪﻡﺍﻻﺗﺤﺎﺩﻋﺎﻣﻞ ﻟﺤﻘﻦ ﺗﻌﺴﻔﻲﻳﺨﺘﺎﺭﺍﻻﺳﺘﻌﻼﻡ ﻭﺩﻣﺞ ﺍﻟﻨﺘﺎﺉﺞ ﻣﻊ ﻧﺘﺎﺉﺞ ﺍﻻﺳﺘﻌﻼﻡ‬ ‫‪-‬‬

‫ﺍﻷﺻﻠﻲﻟﻠﺘﻄﺒﻴﻖ‪.‬‬
‫ﺑﺼﻤﺔﻧﻮﻉ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺑﻨﺎء ﺟﻤﻠﺔ ‪ SQL‬ﺍﻟﺨﺎﺻﺔ ﺑﻘﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ‪.‬‬ ‫‪-‬‬

‫ﺇﺫﺍﻛﺎﻥ ﻧﻮﻉ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻫﻮ ‪ MS-SQL‬ﻭﺃﺭﺟﻊ ﺍﻟﺘﻄﺒﻴﻖ ﺭﺳﺎﺉﻞ ﺧﻄﺄ ‪ ODBC‬ﻓﻲ‬ ‫‪-‬‬

‫ﺍﺳﺘﺠﺎﺑﺎﺗﻪ‪،‬ﻓﺎﺳﺘﻔﺪ ﻣﻦ ﻫﺬﻩ ﺍﻟﺮﺳﺎﺉﻞ ﻟﺤﺼﺮ ﺑﻨﻴﺔ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﺍﺳﺘﺮﺩﺍﺩ ﺑﻴﺎﻧﺎﺕ‬


‫ﻋﺸﻮﺍﺉﻴﺔ‪.‬‬
‫ﺇﺫﺍﻟﻢ ﺗﺘﻤﻜﻦ ﻣﻦ ﺍﻟﻌﺜﻮﺭ ﻋﻠﻰ ﻃﺮﻳﻘﺔ ﻻﺳﺘﺮﺟﺎﻉ ﻧﺘﺎﺉﺞ ﺍﺳﺘﻌﻼﻡ ﺗﻢ ﺣﻘﻨﻪ ﺑﺸﻜﻞ‬ ‫‪-‬‬

‫ﻣﺒﺎﺷﺮ‪،‬ﻓﺎﺳﺘﺨﺪﻡ ﺍﻟﺘﻘﻨﻴﺎﺕ ﺍﻟﻤﺘﻘﺪﻣﺔ ﺍﻟﺘﺎﻟﻴﺔ ﻻﺳﺘﺨﺮﺍﺝ ﺍﻟﺒﻴﺎﻧﺎﺕ‪:‬‬

‫ﺍﺳﺘﺮﺩﺍﺩﺑﻴﺎﻧﺎﺕ ﺍﻟﺴﻠﺴﻠﺔ ﻓﻲ ﺷﻜﻞ ﺭﻗﻤﻲ‪ ،‬ﺑﺎﻳﺖ ﻭﺍﺣﺪ ﻓﻲ ﻛﻞ ﻣﺮﺓ‪.‬‬ ‫‪-‬‬

‫ﺍﺳﺘﺨﺪﻡﻗﻨﺎﺓ ﺧﺎﺭﺝ ﺍﻟﻨﻄﺎﻕ‪.‬‬ ‫‪-‬‬


‫‪829‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫ﺇﺫﺍﻛﺎﻥ ﺑﺈﻣﻜﺎﻧﻚ ﺍﻟﺘﺴﺒﺐ ﻓﻲ ﺍﺳﺘﺠﺎﺑﺎﺕ ﺗﻄﺒﻴﻖ ﻣﺨﺘﻠﻔﺔ ﺍﺳﺘﻨﺎﺩﺍً ﺇﻟﻰ ﺷﺮﻁ‬ ‫‪-‬‬

‫ﺗﻌﺴﻔﻲﻭﺍﺣﺪ‪ ،‬ﻓﺎﺳﺘﺨﺪﻡ ‪ Absinthe‬ﻻﺳﺘﺨﺮﺍﺝ ﺑﻴﺎﻧﺎﺕ ﺗﻌﺴﻔﻴﺔ ﺑﺖ ﻭﺍﺣﺪ ﻓﻲ ﻛﻞ‬


‫ﻣﺮﺓ‪.‬‬
‫ﺇﺫﺍﻛﺎﻥ ﺑﺈﻣﻜﺎﻧﻚ ﺗﺸﻐﻴﻞ ﺗﺄﺧﻴﺮﺍﺕ ﺯﻣﻨﻴﺔ ﺍﺳﺘﻨﺎﺩﺍً ﺇﻟﻰ ﺷﺮﻁ ﺗﻌﺴﻔﻲ ﻭﺍﺣﺪ‪،‬‬ ‫‪-‬‬

‫ﻓﺎﺳﺘﻐﻠﻬﺎﻻﺳﺘﺮﺩﺍﺩ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺑﺘﺎً ﻭﺍﺣﺪﺍً ﻓﻲ ﻛﻞ ﻣﺮﺓ‪.‬‬


‫ﺇﺫﺍﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺤﻈﺮ ﺃﺣﺮﻓﺎً ﺃﻭ ﺗﻌﺒﻴﺮﺍﺕ ﻣﻌﻴﻨﺔ ﺗﺘﻄﻠﺒﻬﺎ ﻟﺘﻨﻔﻴﺬ ﻫﺠﻮﻡ ﻣﻌﻴﻦ‪ ،‬ﻓﺤﺎﻭﻝ‬ ‫‪-‬‬

‫ﺍﺳﺘﺨﺪﺍﻡﺗﻘﻨﻴﺎﺕ ﺍﻟﺘﺠﺎﻭﺯ ﺍﻟﻤﺨﺘﻠﻔﺔ ﺍﻟﻤﻮﺿﺤﺔ ﻓﻲ ﺍﻟﻔﺼﻞ ‪ 9‬ﻟﻼﻟﺘﻔﺎﻑ ﻋﻠﻰ ﻣﺮﺷﺢ‬


‫ﺍﻹﺩﺧﺎﻝ‪.‬‬
‫ﺇﺫﺍﻛﺎﻥ ﺫﻟﻚ ﻣﻤﻜﻨﺎً‪ ،‬ﻗﻢ ﺑﺘﺼﻌﻴﺪ ﺍﻟﻬﺠﻮﻡ ﺿﺪ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﺍﻟﺨﺎﺩﻡ ﺍﻷﺳﺎﺳﻲ ﻣﻦ‬ ‫‪-‬‬

‫ﺧﻼﻝﺍﻻﺳﺘﻔﺎﺩﺓ ﻣﻦ ﺃﻱ ﺛﻐﺮﺍﺕ ﺃﻣﻨﻴﺔ ﺃﻭ ﻭﻇﺎﺉﻒ ﻗﻮﻳﺔ ﺩﺍﺧﻞ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ‪.‬‬

‫‪7.3‬ﺍﺧﺘﺒﺎﺭ ﺣﻘﻦ ‪ XSS‬ﻭﺍﻻﺳﺘﺠﺎﺑﺎﺕ ﺍﻷﺧﺮﻯ‬


‫‪7.3.1‬ﺗﺤﺪﻳﺪ ﻣﻌﻠﻤﺎﺕ ﺍﻟﻄﻠﺐ ﺍﻟﻤﻨﻌﻜﺴﺔ‬
‫‪7.3.1.1‬ﺭﺗﺐّ ﻧﺘﺎﺉﺞ ﺍﺧﺘﺒﺎﺭ ‪ fuzz‬ﺑﺎﻟﻨﻘﺮ ﻋﻠﻰ ﻋﻤﻮﺩ ‪ ،Payload Grep‬ﻭﺣﺪﺩ ﺃﻱ ﺗﻄﺎﺑﻘﺎﺕ ﺗﺘﻮﺍﻓﻖ‬
‫ﻣﻊﺣﻤﻮﻻﺕ ‪ XSS‬ﺍﻟﻤﺬﻛﻮﺭﺓ ﻓﻲ ﺍﻟﺨﻄﻮﺓ ‪ .7.1.3‬ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻻﺕ‪ ،‬ﺗﻢ ﺇﺭﺟﺎﻉ ﺳﻼﺳﻞ‬
‫ﺍﺧﺘﺒﺎﺭ‪ XSS‬ﺩﻭﻥ ﺗﻌﺪﻳﻞ ﺿﻤﻦ ﺍﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ‪.‬‬

‫‪7.3.1.2‬ﺑﺎﻟﻨﺴﺒﺔ ﻟﻜﻞ ﻣﻦ ﻫﺬﻩ ﺍﻟﺤﺎﻻﺕ‪ ،‬ﺭﺍﺟﻊ ﺍﺳﺘﺠﺎﺑﺔ ﺍﻟﺘﻄﺒﻴﻖ ﻟﻠﻌﺜﻮﺭ ﻋﻠﻰ ﺍﻟﻤﻮﻗﻊ‬
‫ﺇﺫﺍﻇﻬﺮ ﻫﺬﺍ ﻓﻲ ﻧﺺ ﺍﻻﺳﺘﺠﺎﺑﺔ‪ ،‬ﻓﺎﺧﺘﺒﺮ ﺛﻐﺮﺍﺕ ‪ .XSS‬ﺇﺫﺍ ﻇﻬﺮ ﺍﻟﻤﺪُﺧﻞ ﻓﻲ ﺃﻱ ﺭﺃﺱ‬
‫‪ ،HTTP‬ﻓﺎﺧﺘﺒﺮ ﺛﻐﺮﺍﺕ ﺣﻘﻦ ﺍﻟﺮﺃﺱ‪ .‬ﺇﺫﺍ ﺍﺳﺘﺨُﺪﻡ ﻓﻲﻣﻮﻗﻊﺭﺃﺱ ﺍﺳﺘﺠﺎﺑﺔ ‪ ،302‬ﺃﻭ ﺇﺫﺍ‬
‫ﺍﺳﺘﺨُﺪﻡﻟﺘﺤﺪﻳﺪ ﺇﻋﺎﺩﺓ ﺗﻮﺟﻴﻪ ﺑﻄﺮﻳﻘﺔ ﺃﺧﺮﻯ‪ ،‬ﻓﺎﺧﺘﺒﺮ ﺛﻐﺮﺍﺕ ﺇﻋﺎﺩﺓ ﺍﻟﺘﻮﺟﻴﻪ‪ .‬ﻳﺮُﺟﻰ ﻣﻼﺣﻈﺔ‬
‫ﺃﻧﻪﻗﺪ ﻳﺘﻢ ﻧﺴﺦ ﻧﻔﺲ ﺍﻟﻤﺪُﺧﻼﺕ ﺇﻟﻰ ﻣﻮﺍﻗﻊ ﻣﺘﻌﺪﺩﺓ ﺩﺍﺧﻞ ﺍﻻﺳﺘﺠﺎﺑﺔ‪ ،‬ﻭﻗﺪ ﻳﻮﺟﺪ ﺃﻛﺜﺮ ﻣﻦ‬
‫ﻧﻮﻉﻭﺍﺣﺪ ﻣﻦ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻟﻤﻨﻌﻜﺴﺔ‪.‬‬

‫‪7.3.2‬ﺍﺧﺘﺒﺎﺭ ‪ XSS‬ﺍﻟﻤﻨﻌﻜﺲ‬
‫‪7.3.2.1‬ﺑﺎﻟﻨﺴﺒﺔ ﻟﻜﻞ ﻣﻜﺎﻥ ﺩﺍﺧﻞ ﻧﺺ ﺍﻻﺳﺘﺠﺎﺑﺔ ﺣﻴﺚ ﺗﻈﻬﺮ ﻗﻴﻤﺔ ﻣﻌﻠﻤﺔ ﺍﻟﻄﻠﺐ‪ ،‬ﺭﺍﺟﻊ ‪HTML‬‬
‫ﺍﻟﻤﺤﻴﻂﻟﺘﺤﺪﻳﺪ ﺍﻟﻄﺮﻕ ﺍﻟﻤﻤﻜﻨﺔ ﻟﺼﻴﺎﻏﺔ ﺇﺩﺧﺎﻟﻚ ﻟﻠﺘﺴﺒﺐ ﻓﻲ ﺗﻨﻔﻴﺬ ‪JavaScript‬‬
‫ﻋﺸﻮﺍﺉﻴﺎً‪.‬‬
‫ﻋﻠﻰﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﻳﻤﻜﻨﻚ ﺣﻘﻦ >ﻧﺺ<ﺍﻟﻌﻼﻣﺎﺕ‪ ،‬ﺃﻭ ﺣﻘﻨﻬﺎ ﻓﻲ ﻧﺺ ﺑﺮﻣﺠﻲ ﻣﻮﺟﻮﺩ‪ ،‬ﺃﻭ‬
‫ﻭﺿﻊﻗﻴﻤﺔ ﻣﺼﻤﻤﺔ ﻓﻲ ﺳﻤﺔ ﻋﻼﻣﺔ‪.‬‬
‫‪7.3.2.2‬ﺍﺳﺘﺨﺪﻡ ﺍﻟﻄﺮﻕ ﺍﻟﻤﺨﺘﻠﻔﺔ ﻟﻀﺮﺏ ﺍﻟﻤﺮﺷﺤﺎﺕ ﺍﻟﻘﺎﺉﻤﺔ ﻋﻠﻰ ﺍﻟﺘﻮﻗﻴﻊ ﺍﻟﻤﻮﺿﺤﺔ ﻓﻲ‬
‫ﺍﻟﻔﺼﻞ‪ 12‬ﻛﻤﺮﺟﻊ ﻟﻠﻄﺮﻕ ﺍﻟﻤﺨﺘﻠﻔﺔ ﺍﻟﺘﻲ ﻳﻤﻜﻦ ﻣﻦ ﺧﻼﻟﻬﺎ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﻤﺪﺧﻼﺕ‬
‫ﺍﻟﻤﺼﻤﻤﺔﻟﻠﺘﺴﺒﺐ ﻓﻲ ﺗﻨﻔﻴﺬ ‪.JavaScript‬‬
‫‪7.3.2.3‬ﺣﺎﻭﻝ ﺇﺭﺳﺎﻝ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻟﻤﺤﺘﻤﻠﺔ ﺇﻟﻰ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﻭﺭﺍﻗﺒﻬﺎ‬
‫ﺍﺳﺘﺠﺎﺑﺎﺗﻬﺎﻟﺘﺤﺪﻳﺪ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﻫﻨﺎﻙ ﺃﻱ ﺗﺼﻔﻴﺔ ﺃﻭ ﺗﻄﻬﻴﺮ ﻟﻠﻤﺪﺧﻼﺕ‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪830‬‬

‫ﻳﺘﻢﺗﻨﻔﻴﺬﻩ‪ .‬ﺇﺫﺍ ﺗﻢ ﺇﺭﺟﺎﻉ ﺳﻠﺴﻠﺔ ﻫﺠﻮﻣﻚ ﺩﻭﻥ ﺗﻌﺪﻳﻞ‪ ،‬ﻓﺎﺳﺘﺨﺪﻡ ﻣﺘﺼﻔﺤﺎً ﻟﻠﺘﺤﻘﻖ‬
‫ﺑﺸﻜﻞﻗﺎﻃﻊ ﻣﻦ ﻧﺠﺎﺣﻚ ﻓﻲ ﺗﻨﻔﻴﺬ ‪ JavaScript‬ﻋﺸﻮﺍﺉﻴﺎً )ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﻋﻦ‬
‫ﻃﺮﻳﻖﺇﻧﺸﺎء ﻣﺮﺑﻊ ﺣﻮﺍﺭ ﺗﻨﺒﻴﻪ(‪.‬‬
‫‪7.3.2.4‬ﺇﺫﺍ ﻭﺟﺪﺕ ﺃﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺤﻈﺮ ﺍﻹﺩﺧﺎﻝ ﺍﻟﺬﻱ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﺃﺣﺮﻑ ﺃﻭ ﺗﻌﺒﻴﺮﺍﺕ ﻣﻌﻴﻨﺔ ﺗﺤﺘﺎﺝ‬
‫ﺇﻟﻰﺍﺳﺘﺨﺪﺍﻣﻬﺎ‪ ،‬ﺃﻭ ﻳﻘﻮﻡ ﺑﺘﺮﻣﻴﺰ ﺃﺣﺮﻑ ﻣﻌﻴﻨﺔ ﺑﺎﺳﺘﺨﺪﺍﻡ ‪ ،HTML‬ﻓﺤﺎﻭﻝ ﺗﺠﺎﻭﺯﺍﺕ‬
‫ﺍﻟﻤﺮﺷﺤﺎﺕﺍﻟﻤﺨﺘﻠﻔﺔ ﺍﻟﻤﻮﺿﺤﺔ ﻓﻲ ﺍﻟﻔﺼﻞ ‪.12‬‬
‫‪7.3.2.5‬ﺇﺫﺍ ﻭﺟﺪﺕ ﺛﻐﺮﺓ ‪ XSS‬ﻓﻲﺑﺮﻳﺪﻻ ﻳﺰﺍﻝ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺍﺳﺘﻐﻼﻝ ﻫﺬﺍ ﺍﻟﻄﻠﺐ ﻋﺒﺮ ﻣﻮﻗﻊ ﻭﻳﺐ‬
‫ﺿﺎﺭﻳﺤﺘﻮﻱ ﻋﻠﻰ ﻧﻤﻮﺫﺝ ﺑﺎﻟﻤﻌﻠﻤﺎﺕ ﺍﻟﻤﻄﻠﻮﺑﺔ ﻭﻧﺺ ﺑﺮﻣﺠﻲ ﻹﺭﺳﺎﻝ ﺍﻟﻨﻤﻮﺫﺝ ﺗﻠﻘﺎﺉﻴﺎً‪.‬‬
‫ﻭﻣﻊﺫﻟﻚ‪،‬‬
‫ﺗﺘﻮﻓﺮﻣﺠﻤﻮﻋﺔ ﺃﻭﺳﻊ ﻣﻦ ﺁﻟﻴﺎﺕ ﺗﻘﺪﻳﻢ ﺍﻟﻬﺠﻮﻡ ﺇﺫﺍ ﻛﺎﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺗﻘﺪﻳﻢ ﺍﻻﺳﺘﻐﻼﻝ ﻋﺒﺮ‬
‫ﻳﺤﺼﻞﻃﻠﺐ‪ .‬ﺣﺎﻭﻝ ﺇﺭﺳﺎﻝ ﻧﻔﺲ ﺍﻟﻤﻌﻠﻤﺎﺕ ﻓﻲﻳﺤﺼﻞﻃﻠﺐ‪ ،‬ﻭﺗﺤﻘﻖ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﻬﺠﻮﻡ‬
‫ﻻﻳﺰﺍﻝ ﻧﺎﺟﺤﺎً‪ .‬ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﺇﺟﺮﺍء "ﻃﺮﻳﻘﺔ ﻃﻠﺐ ﺍﻟﺘﻐﻴﻴﺮ" ﻓﻲ ‪ Burp Proxy‬ﻟﺘﺤﻮﻳﻞ‬
‫ﺍﻟﻄﻠﺐﻧﻴﺎﺑﺔ ًﻋﻨﻚ‪.‬‬

‫‪7.3.3‬ﺍﺧﺘﺒﺎﺭ ﺣﻘﻦ ﺭﺃﺱ ‪HTTP‬‬


‫‪7.3.3.1‬ﺑﺎﻟﻨﺴﺒﺔ ﻟﻜﻞ ﻣﻜﺎﻥ ﺩﺍﺧﻞ ﺭﺅﻭﺱ ﺍﻻﺳﺘﺠﺎﺑﺔ ﺣﻴﺚ ﺗﻈﻬﺮ ﻗﻴﻤﺔ ﻣﻌﻠﻤﺔ ﺍﻟﻄﻠﺐ‪ ،‬ﺗﺤﻘﻖ ﻣﻤﺎ‬
‫ﺇﺫﺍﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﻘﺒﻞ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺘﻲ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺇﺭﺟﺎﻉ ﻋﺮﺑﺔ ﻣﺸﻔﺮﺓ ﺑﻌﻨﻮﺍﻥ ‪0%) URL‬ﺩ(‬
‫ﻭﺗﻐﺬﻳﺔﺍﻟﺨﻂ )‪0%‬ﺃ(ﺍﻷﺣﺮﻑ ﻭﻣﺎ ﺇﺫﺍ ﻛﺎﻧﺖ ﻫﺬﻩ ﺍﻷﺣﺮﻑ ﺗﻌُﺎﺩ ﺩﻭﻥ ﺗﻨﻘﻴﺢ ﻓﻲ ﺍﺳﺘﺠﺎﺑﺘﻬﺎ‪) .‬‬
‫ﻻﺣﻆﺃﻧﻚ ﺗﺒﺤﺚ ﻋﻦ ﻇﻬﻮﺭ ﺃﺣﺮﻑ ﺍﻟﺴﻄﺮ ﺍﻟﺠﺪﻳﺪ ﻧﻔﺴﻬﺎ ﻓﻲ ﺍﺳﺘﺠﺎﺑﺔ ﺍﻟﺨﺎﺩﻡ‪ ،‬ﻭﻟﻴﺲ‬
‫ﻧﻈﻴﺮﺍﺗﻬﺎﺍﻟﻤﺸﻔﺮﺓ ﻓﻲ ﻋﻨﻮﺍﻥ ‪(.URL‬‬

‫‪7.3.3.2‬ﺇﺫﺍ ﻇﻬﺮ ﺳﻄﺮ ﺟﺪﻳﺪ ﻓﻲ ﺭﺅﻭﺱ ﺍﺳﺘﺠﺎﺑﺔ ﺍﻟﺨﺎﺩﻡ ﻋﻨﺪ ﺇﺩﺧﺎﻝ ﻣﻌُﺪ‪ ّ،‬ﻓﺴﻴﻜﻮﻥ ﺍﻟﺘﻄﺒﻴﻖ‬
‫ﻋﺮُﺿﺔ ًﻻﺧﺘﺮﺍﻕ ﺭﺅﻭﺱ ‪ .HTTP‬ﻳﻤﻜﻦ ﺍﺳﺘﻐﻼﻝ ﺫﻟﻚ ﻟﺘﻨﻔﻴﺬ ﻫﺠﻤﺎﺕ ﻣﺨُﺘﻠﻔﺔ‪ ،‬ﻛﻤﺎ ﻫﻮ‬
‫ﻣﻮﺿﺢﻓﻲ ﺍﻟﻔﺼﻞ ‪.13‬‬

‫‪7.3.3.3‬ﺇﺫﺍ ﻭﺟﺪﺕ ﺃﻥ ﺣﺮﻓﺎً ﻭﺍﺣﺪﺍً ﻓﻘﻂ ﻣﻦ ﺣﺮﻓﻲ ﺍﻟﺴﻄﺮ ﺍﻟﺠﺪﻳﺪ ﻳﺘﻢ ﺇﺭﺟﺎﻋﻪ ﻓﻲ ﺍﺳﺘﺠﺎﺑﺎﺕ‬
‫ﺍﻟﺨﺎﺩﻡ‪،‬ﻓﻤﺎ ﺯﺍﻝ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺇﻧﺸﺎء ﺍﺳﺘﻐﻼﻝ ﻓﻌﺎﻝ‪ ،‬ﺍﻋﺘﻤﺎﺩﺍً ﻋﻠﻰ ﺍﻟﺴﻴﺎﻕ ﻭﻣﺘﺼﻔﺢ‬
‫ﺍﻟﻤﺴﺘﺨﺪﻡﺍﻟﻤﺴﺘﻬﺪﻑ‪.‬‬
‫‪7.3.3.4‬ﺇﺫﺍ ﻭﺟﺪﺕ ﺃﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺤﻈﺮ ﺍﻹﺩﺧﺎﻝ ﺍﻟﺬﻱ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﺃﺣﺮﻑ ﺳﻄﺮ ﺟﺪﻳﺪ‪،‬‬
‫ﺇﺫﺍﻛﻨﺖ ﺗﺮﻳﺪ ﺗﺼﻔﻴﺔ ﺃﻭ ﺗﻄﻬﻴﺮ ﺗﻠﻚ ﺍﻷﺣﺮﻑ ﻓﻲ ﺍﺳﺘﺠﺎﺑﺘﻚ‪ ،‬ﻓﺠﺮﺏ ﻋﻨﺎﺻﺮ ﺍﻹﺩﺧﺎﻝ‬
‫ﺍﻟﺘﺎﻟﻴﺔﻻﺧﺘﺒﺎﺭ ﻓﻌﺎﻟﻴﺔ ﺍﻟﻔﻠﺘﺮ‪:‬‬
‫ﻓﻮ‪0%00%‬ﺩ‪0%‬ﺃﺑﺎﺭ‬
‫ﻓﻮ‪250%‬ﺩ‪250%‬ﺃﺑﺎﺭ‬
‫ﻓﻮ‪0%%‬ﺩ‪0‬ﺩ‪0a0abar%%‬‬

‫‪7.3.4‬ﺍﺧﺘﺒﺎﺭ ﺇﻋﺎﺩﺓ ﺍﻟﺘﻮﺟﻴﻪ ﺍﻟﻤﻔﺘﻮﺡ‬


‫‪7.3.4.1‬ﺇﺫﺍ ﺗﻢ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﻤﺪﺧﻼﺕ ﺍﻟﻤﻨﻌﻜﺴﺔ ﻟﺘﺤﺪﻳﺪ ﻫﺪﻑ ﺇﻋﺎﺩﺓ ﺍﻟﺘﻮﺟﻴﻪ ﻣﻦ ﻧﻮﻉ ﻣﺎ‪ ،‬ﻓﺎﺧﺘﺒﺮ ﻣﺎ‬
‫ﺇﺫﺍﻛﺎﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺗﻮﻓﻴﺮ ﻣﺪﺧﻼﺕ ﻣﺼﻤﻤﺔ ﺗﺆﺩﻱ ﺇﻟﻰ‬
‫‪831‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫ﺇﻋﺎﺩﺓﺗﻮﺟﻴﻪ ﻋﺸﻮﺍﺉﻴﺔ ﺇﻟﻰ ﻣﻮﻗﻊ ﻭﻳﺐ ﺧﺎﺭﺟﻲ‪ .‬ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ‪ ،‬ﻳﻤُﻜﻦ ﺍﺳﺘﻐﻼﻝ ﻫﺬﺍ‬
‫ﺍﻟﺴﻠﻮﻙﻹﺿﻔﺎء ﻣﺼﺪﺍﻗﻴﺔ ﻋﻠﻰ ﻫﺠﻮﻡ ﺗﺼﻴﺪ ﺍﺣﺘﻴﺎﻟﻲ‪.‬‬
‫‪7.3.4.2‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺮﺳﻞ ﻋﺎﺩﺓ ًﻋﻨﻮﺍﻥ ‪ URL‬ﻣﻄﻠﻘﺎً ﻛﻘﻴﻤﺔ ﻟﻠﻤﻌﻠﻤﺔ‪ ،‬ﻓﻘﻢ ﺑﺘﻌﺪﻳﻞ ﺍﺳﻢ‬
‫ﺍﻟﻤﺠﺎﻝﺩﺍﺧﻞ ﻋﻨﻮﺍﻥ ‪ ،URL‬ﻭﺍﺧﺘﺒﺮ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﻌﻴﺪ ﺗﻮﺟﻴﻬﻚ ﺇﻟﻰ ﺍﻟﻤﺠﺎﻝ‬
‫ﺍﻟﻤﺨﺘﻠﻒ‪.‬‬
‫‪7.3.4.3‬ﺇﺫﺍ ﻛﺎﻧﺖ ﺍﻟﻤﻌﻠﻤﺔ ﺗﺤﺘﻮﻱ ﻋﺎﺩﺓ ًﻋﻠﻰ ﻋﻨﻮﺍﻥ ‪ URL‬ﻧﺴﺒﻲ‪ ،‬ﻓﻘﻢ ﺑﺘﻌﺪﻳﻞ ﻫﺬﺍ ﺇﻟﻰ ﻋﻨﻮﺍﻥ ‪URL‬‬
‫ﻣﻄﻠﻖﻟﻨﻄﺎﻕ ﻣﺨﺘﻠﻒ‪ ،‬ﻭﺍﺧﺘﺒﺮ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﻌﻴﺪ ﺗﻮﺟﻴﻬﻚ ﺇﻟﻰ ﻫﺬﺍ ﺍﻟﻨﻄﺎﻕ‪.‬‬

‫‪7.3.4.4‬ﺇﺫﺍ ﺃﺟﺮﻯ ﺍﻟﺘﻄﺒﻴﻖ ﺑﻌﺾ ﻋﻤﻠﻴﺎﺕ ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺻﺤﺔ ﺍﻟﻤﻌﻠﻤﺔ ﻗﺒﻞ ﺇﻋﺎﺩﺓ ﺍﻟﺘﻮﺟﻴﻪ‪ ،‬ﻭﺫﻟﻚ‬
‫ﻟﻤﻨﻊﺇﻋﺎﺩﺓ ﺍﻟﺘﻮﺟﻴﻪ ﺍﻟﺨﺎﺭﺟﻴﺔ‪ ،‬ﻓﻐﺎﻟﺒﺎً ﻣﺎ ﻳﻜﻮﻥ ﻫﺬﺍ ﻋﺮﺿﺔ ﻟﻠﺘﺠﺎﻭﺯﺍﺕ‪ .‬ﺟﺮﺏّ ﺍﻟﻬﺠﻤﺎﺕ‬
‫ﺍﻟﻤﺨﺘﻠﻔﺔﺍﻟﻤﻮﺿﺤﺔ ﻓﻲ ﺍﻟﻔﺼﻞ ‪ 13‬ﻻﺧﺘﺒﺎﺭ ﻗﻮﺓ ﺍﻟﻤﺮﺷﺤﺎﺕ‪.‬‬

‫‪7.3.5‬ﺍﺧﺘﺒﺎﺭ ﺍﻟﻬﺠﻤﺎﺕ ﺍﻟﻤﺨﺰﻧﺔ‬


‫‪7.3.5.1‬ﺇﺫﺍ ﺧﺰﻥّ ﺍﻟﺘﻄﺒﻴﻖ ﻋﻨﺎﺻﺮ ﻣﻦ ﻣﺪُﺧﻼﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ‪ ،‬ﺛﻢ ﻋﺮﺿﻬﺎ ﻻﺣﻘﺎً ﻋﻠﻰ ﺍﻟﺸﺎﺷﺔ‪ ،‬ﻓﻘﺪ‬
‫ﺗﻼﺣﻆ‪،‬ﺑﻌﺪ ﺗﺸﻮﻳﺶ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺄﻛﻤﻠﻪ‪ ،‬ﺇﺭﺟﺎﻉ ﺑﻌﺾ ﺳﻼﺳﻞ ﺍﻟﻬﺠﻮﻡ ﺍﺳﺘﺠﺎﺑﺔ ًﻟﻄﻠﺒﺎﺕ ﻻ‬
‫ﺗﺤﺘﻮﻱﻋﻠﻰ ﺗﻠﻚ ﺍﻟﺴﻼﺳﻞ‪ .‬ﺳﺠﻞّ ﺃﻱ ﺣﺎﻻﺕ ﻳﺤﺪﺙ ﻓﻴﻬﺎ ﺫﻟﻚ‪ ،‬ﻭﺣﺪﺩ ﻧﻘﻄﺔ ﺍﻹﺩﺧﺎﻝ‬
‫ﺍﻷﺻﻠﻴﺔﻟﻠﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺨُﺰﻧّﺔ‪.‬‬

‫‪7.3.5.2‬ﻓﻲ ﺑﻌﺾ ﺍﻟﺤﺎﻻﺕ‪ ،‬ﻻ ﺗﺨُﺰﻥَّ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﻘُﺪﻣَّﺔ ﻣﻦ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺑﻨﺠﺎﺡ ﺇﻻ ﺇﺫﺍ ﺃﻛﻤﻠﺖ َﻋﻤﻠﻴﺔ ً‬
‫ﻣﺘﻌﺪﺩﺓﺍﻟﻤﺮﺍﺣﻞ‪ ،‬ﻭﻫﻮ ﻣﺎ ﻻ ﻳﺤﺪﺙ ﻓﻲ ﺍﺧﺘﺒﺎﺭﺍﺕ ﺍﻟﺘﺸﻮﻳﺶ ﺍﻷﺳﺎﺳﻴﺔ‪ .‬ﺇﺫﺍ ﻛﺸﻔﺖ‬
‫ﺗﻤﺎﺭﻳﻦﺗﻌﻴﻴﻦ ﺗﻄﺒﻴﻘﻚ ﻋﻦ ﺃﻱ ﻭﻇﻴﻔﺔ ﻣﻦ ﻫﺬﺍ ﺍﻟﻨﻮﻉ‪ ،‬ﻓﺎﺗﺒﻊ ﺍﻟﻌﻤﻠﻴﺔ ﻳﺪﻭﻳﺎً ﻭﺍﺧﺘﺒﺮ ﺍﻟﺒﻴﺎﻧﺎﺕ‬
‫ﺍﻟﻤﺨُﺰﻧَّﺔﺑﺤﺜﺎً ﻋﻦ ﺛﻐﺮﺍﺕ ‪.XSS‬‬

‫‪7.3.5.3‬ﺇﺫﺍ ﻛﺎﻥ ﻟﺪﻳﻚ ﻭﺻﻮﻝ ﻛﺎﻑ ٍﻻﺧﺘﺒﺎﺭﻩ‪ ،‬ﻓﻘﻢ ﺑﻤﺮﺍﺟﻌﺔ ﺃﻱ ﻭﻇﻴﻔﺔ ﺇﺩﺍﺭﻳﺔ ﻋﻦ ﻛﺜﺐ ﺣﻴﺚ ﻳﺘﻢ‬
‫ﻓﻲﺍﻟﻨﻬﺎﻳﺔ ﻋﺮﺽ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺼﺎﺩﺭﺓ ﻋﻦ ﻣﺴﺘﺨﺪﻣﻴﻦ ﺫﻭﻱ ﺍﻣﺘﻴﺎﺯﺍﺕ ﻣﻨﺨﻔﻀﺔ ﻋﻠﻰ‬
‫ﺍﻟﺸﺎﺷﺔﻓﻲ ﺟﻠﺴﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻷﻛﺜﺮ ﺍﻣﺘﻴﺎﺯﺍً‪.‬‬
‫ﻋﺎﺩﺓ ًﻣﺎ ﺗﺆﺩﻱ ﺃﻱ ﺛﻐﺮﺍﺕ ‪ XSS‬ﻣﺨﺰﻧﺔ ﻓﻲ ﻭﻇﻴﻔﺔ ﻣﻦ ﻫﺬﺍ ﺍﻟﻨﻮﻉ ﺇﻟﻰ ﺗﺼﻌﻴﺪ ﺍﻻﻣﺘﻴﺎﺯﺍﺕ‬
‫ﺑﺸﻜﻞﻣﺒﺎﺷﺮ‪.‬‬
‫‪7.3.5.4‬ﺍﺧﺘﺒﺮ ﻛﻞ ﺣﺎﻟﺔ ﺗﺨُﺰﻥَّ ﻓﻴﻬﺎ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﻘُﺪﻣَّﺔ ﻣﻦ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻭﺗﻌُﺮﺽَ ﻋﻠﻴﻪ‪ .‬ﺗﺤﻘﻖ ﻣﻦ‬
‫ﻭﺟﻮﺩﺛﻐﺮﺍﺕ ‪ XSS‬ﻭﻫﺠﻤﺎﺕ ﺣﻘﻦ ﺍﻻﺳﺘﺠﺎﺑﺔ ﺍﻷﺧﺮﻯ ﺍﻟﻤﺬﻛﻮﺭﺓ ﺳﺎﺑﻘﺎً‪.‬‬

‫‪7.3.5.5‬ﺇﺫﺍ ﻭﺟﺪﺕ َﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ ﺗﻌُﺮﺽَ ﻓﻴﻬﺎ ﺑﻴﺎﻧﺎﺕ ﻣﺪُﺧﻠﺔ ﻣﻦ ﻣﺴﺘﺨﺪﻡ ﻭﺍﺣﺪ ﻟﻤﺴﺘﺨﺪﻣﻴﻦ‬
‫ﺁﺧﺮﻳﻦ‪،‬ﻓﺤﺪﺩ ﺃﻛﺜﺮ ﺣﻤﻮﻟﺔ ﻫﺠﻮﻣﻴﺔ ﻓﻌﺎﻟﻴﺔ ﻟﺘﺤﻘﻴﻖ ﺃﻫﺪﺍﻓﻚ‪ ،‬ﻣﺜﻞ ﺍﺧﺘﻄﺎﻑ ﺍﻟﺠﻠﺴﺔ ﺃﻭ‬
‫ﺗﺰﻭﻳﺮﺍﻟﻄﻠﺒﺎﺕ‪ .‬ﺇﺫﺍ ﻛﺎﻧﺖ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺨُﺰﻧَّﺔ ﺗﻌُﺮﺽَ ﻓﻘﻂ ﻟﻨﻔﺲ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﺬﻱ ﺃﺭﺳﻠﻬﺎ‬

‫ﻓﻲﺍﻟﺒﺪﺍﻳﺔ‪ ،‬ﺣﺎﻭﻝ ﺍﻟﻌﺜﻮﺭ ﻋﻠﻰ ﻃﺮﻕ ﻟﺘﺴﻠﺴﻞ ﺃﻱ ﻧﻘﺎﻁ ﺿﻌﻒ ﺃﺧﺮﻯ ﺍﻛﺘﺸﻔﺘﻬﺎ )ﻣﺜﻞ‬
‫ﻋﻨﺎﺻﺮﺍﻟﺘﺤﻜﻢ ﻓﻲ ﺍﻟﻮﺻﻮﻝ ﺍﻟﻤﻜﺴﻮﺭﺓ( ﻟﺤﻘﻦ ﻫﺠﻮﻡ ﻓﻲ ﺟﻠﺴﺎﺕ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻵﺧﺮﻳﻦ‪.‬‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪832‬‬

‫‪7.3.5.6‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺴﻤﺢ ﺑﺘﺤﻤﻴﻞ ﻭﺗﻨﺰﻳﻞ ﺍﻟﻤﻠﻔﺎﺕ‪ ،‬ﻓﺎﻓﺤﺺ ﻫﺬﻩ ﺍﻟﻮﻇﻴﻔﺔ ﺩﺍﺉﻤﺎً ﺑﺤﺜﺎً ﻋﻦ‬
‫ﻫﺠﻤﺎﺕ‪ XSS‬ﺍﻟﻤﺨﺰﻧﺔ‪ .‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺴﻤﺢ ﺑﻤﻠﻔﺎﺕ ‪ HTML‬ﻭ‪ JAR‬ﻭ‬
‫ﺇﺫﺍﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺪﻋﻢ ﻣﻠﻔﺎﺕ ﻧﺼﻴﺔ‪ ،‬ﻭﻻ ﻳﺘﺤﻘﻖ ﻣﻦ ﺻﺤﺔ ﻣﺤﺘﻮﻳﺎﺗﻬﺎ ﺃﻭ ﻳﻄﻬﺮﻫﺎ‪ ،‬ﻓﻤﻦ‬
‫ﺍﻟﻤﺮﺟﺢﺃﻧﻪ ﻣﻌﺮﺽ ﻟﻠﺨﻄﺮ‪ .‬ﺇﺫﺍ ﻛﺎﻥ ﻳﺴﻤﺢ ﺑﻤﻠﻔﺎﺕ ‪ JPEG‬ﻭﻻ ﻳﺘﺤﻘﻖ ﻣﻦ ﺍﺣﺘﻮﺍﺉﻬﺎ ﻋﻠﻰ‬
‫ﺻﻮﺭﺻﺎﻟﺤﺔ‪ ،‬ﻓﻤﻦ ﺍﻟﻤﺤﺘﻤﻞ ﺃﻥ ﻳﻜﻮﻥ ﻋﺮﺿﺔ ﻟﻬﺠﻤﺎﺕ ﺗﺴﺘﻬﺪﻑ ﻣﺴﺘﺨﺪﻣﻲ ‪Explorer‬‬
‫‪ .Internet‬ﺍﺧﺘﺒﺮ ﺗﻌﺎﻣﻞ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻊ ﻛﻞ ﻧﻮﻉ ﻣﻠﻒ ﻳﺪﻋﻤﻪ‪ ،‬ﻭﺗﺄﻛﺪ ﻣﻦ ﻛﻴﻔﻴﺔ ﺗﻌﺎﻣﻞ‬
‫ﺍﻟﻤﺘﺼﻔﺤﺎﺕﻣﻊ ﺍﻻﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺘﻲ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ‪ HTML‬ﺑﺪﻻ ًﻣﻦ ﻧﻮﻉ ﺍﻟﻤﺤﺘﻮﻯ ﺍﻟﻌﺎﺩﻱ‪.‬‬

‫‪7.3.5.7‬ﻓﻲ ﻛﻞ ﻣﻮﻗﻊ ﻳﺘﻢ ﻓﻴﻪ ﻋﺮﺽ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺮﺳﻠﺔ ﻣﻦ ﻗﺒﻞ ﻣﺴﺘﺨﺪﻡ ﻭﺍﺣﺪ ﻟﻤﺴﺘﺨﺪﻣﻴﻦ‬
‫ﺁﺧﺮﻳﻦﻭﻟﻜﻦ ﺣﻴﺚ ﺗﻤﻨﻌﻚ ﻣﺮﺷﺤﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻦ ﺍﻷﺩﺍء‬
‫ﻫﺠﻮﻡ‪ XSS‬ﻣﺨﺰﻥ‪ ،‬ﺭﺍﺟﻊ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﺳﻠﻮﻙ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺠﻌﻠﻪ ﻋﺮﺿﺔ ﻟﺘﺰﻭﻳﺮ ﺍﻟﻄﻠﺐ ﻓﻲ‬
‫ﺍﻟﻤﻮﻗﻊ‪.‬‬

‫‪7.4‬ﺍﺧﺘﺒﺎﺭ ﺣﻘﻦ ﺃﻭﺍﻣﺮ ﻧﻈﺎﻡ ﺍﻟﺘﺸﻐﻴﻞ‬


‫‪7.4.1‬ﺇﺫﺍ ﺃﺩﻯ ﺃﻱ ٌّﻣﻦ ﺳﻼﺳﻞ ﻫﺠﻤﺎﺕ ﺣﻘﻦ ﺍﻷﻭﺍﻣﺮ ﺍﻟﻤﺬﻛﻮﺭﺓ ﻓﻲ ﺍﻟﺨﻄﻮﺓ ‪ 7.1.3‬ﺇﻟﻰ ﺗﺄﺧﻴﺮ ﺯﻣﻨﻲ‬
‫ﻏﻴﺮﻃﺒﻴﻌﻲ ﻗﺒﻞ ﺍﺳﺘﺠﺎﺑﺔ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﻓﻬﺬﺍ ﻣﺆﺷﺮ ﻗﻮﻱ ﻋﻠﻰ ﺃﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻌﺮﺽ ﻟﺨﻄﺮ‬
‫ﺣﻘﻦﺃﻭﺍﻣﺮ ﻧﻈﺎﻡ ﺍﻟﺘﺸﻐﻴﻞ‪ .‬ﻛﺮﺭّ ﺍﻻﺧﺘﺒﺎﺭ‪ ،‬ﻣﻊ ﺗﺤﺪﻳﺪ ﻗﻴﻢ ﻣﺨﺘﻠﻔﺔ ﻳﺪﻭﻳﺎً ﻓﻲ ‪-‬ﺃﻧﺎﺃﻭ‬

‫‪-‬ﻥﺍﻟﻤﻌﻠﻤﺔ‪ ،‬ﻭﺗﺤﺪﻳﺪ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﻮﻗﺖ ﺍﻟﻤﺴﺘﻐﺮﻕ ﻟﻼﺳﺘﺠﺎﺑﺔ ﻳﺨﺘﻠﻒ ﺑﺸﻜﻞ ﻣﻨﻬﺠﻲ ﻣﻊ‬
‫ﻫﺬﻩﺍﻟﻘﻴﻤﺔ‪.‬‬
‫‪7.4.2‬ﺑﺎﺳﺘﺨﺪﺍﻡ ﺃﻱ ﻣﻦ ﺳﻼﺳﻞ ﺍﻟﺤﻘﻦ ﺍﻟﺘﻲ ﺗﻢ ﺍﻟﻌﺜﻮﺭ ﻋﻠﻴﻬﺎ ﻧﺎﺟﺤﺔ‪ ،‬ﺣﺎﻭﻝ ﺣﻘﻦ ﺃﻣﺮ ﺃﻛﺜﺮ ﺇﺛﺎﺭﺓ‬
‫ﻟﻼﻫﺘﻤﺎﻡ)ﻣﺜﻞﻝ ﺱﺃﻭ)ﺍﻟﻤﺨﺮﺝ(ﻭﺗﺤﺪﻳﺪ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﺑﺈﻣﻜﺎﻧﻚ ﺍﺳﺘﺮﺟﺎﻉ ﻧﺘﺎﺉﺞ ﺍﻷﻣﺮ ﺇﻟﻰ‬
‫ﻣﺘﺼﻔﺤﻚ‪.‬‬
‫‪7.4.3‬ﺇﺫﺍ ﻟﻢ ﺗﺘﻤﻜﻦ ﻣﻦ ﺍﺳﺘﺮﺩﺍﺩ ﺍﻟﻨﺘﺎﺉﺞ ﺑﺸﻜﻞ ﻣﺒﺎﺷﺮ‪ ،‬ﻓﻬﻨﺎﻙ ﺧﻴﺎﺭﺍﺕ ﺃﺧﺮﻯ ﻣﺘﺎﺣﺔ ﻟﻚ‪:‬‬

‫ﻳﻤﻜﻨﻚﻣﺤﺎﻭﻟﺔ ﻓﺘﺢ ﻗﻨﺎﺓ ﺧﺎﺭﺝ ﺍﻟﻨﻄﺎﻕ ﺍﻟﺘﺮﺩﺩﻱ ﻋﻠﻰ ﺟﻬﺎﺯ ﺍﻟﻜﻤﺒﻴﻮﺗﺮ ﺍﻟﺨﺎﺹ ﺑﻚ‪.‬‬ ‫‪-‬‬

‫ﺣﺎﻭﻝﺍﺳﺘﺨﺪﺍﻡ ‪ TFTP‬ﻟﻨﺴﺦ ﺍﻷﺩﻭﺍﺕ ﺇﻟﻰ ﺍﻟﺨﺎﺩﻡ‪ ،‬ﺃﻭ ﺍﺳﺘﺨﺪﺍﻡ ‪ telnet‬ﺃﻭ ‪netcat‬‬


‫ﻹﻧﺸﺎءﻏﻼﻑ ﻋﻜﺴﻲ ﻋﻠﻰ ﺟﻬﺎﺯ ﺍﻟﻜﻤﺒﻴﻮﺗﺮ ﺍﻟﺨﺎﺹ ﺑﻚ‪ ،‬ﺃﻭ ﺍﺳﺘﺨﺪﺍﻡ ﺃﻣﺮ ‪ mail‬ﻹﺭﺳﺎﻝ‬
‫ﻣﺨﺮﺟﺎﺕﺍﻷﻭﺍﻣﺮ ﻋﺒﺮ ‪.SMTP‬‬
‫ﻳﻤﻜﻨﻚﺇﻋﺎﺩﺓ ﺗﻮﺟﻴﻪ ﻧﺘﺎﺉﺞ ﺃﻭﺍﻣﺮﻙ ﺇﻟﻰ ﻣﻠﻒ ﺩﺍﺧﻞ ﺟﺬﺭ ﺍﻟﻮﻳﺐ‪ ،‬ﻭﺍﻟﺬﻱ ﻳﻤﻜﻨﻚ‬ ‫‪-‬‬

‫ﺍﺳﺘﺮﺟﺎﻋﻪﻣﺒﺎﺷﺮﺓ ًﺑﺎﺳﺘﺨﺪﺍﻡ ﻣﺘﺼﻔﺤﻚ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪:‬‬

‫ﺍﻟﺪﻟﻴﻞ< ‪c:\inetpub\wwwroot\foo.txt‬‬

‫‪7.4.4‬ﺇﺫﺍ ﻭﺟﺪﺕ ﻃﺮﻳﻘﺔ ﻟﺤﻘﻦ ﺍﻷﻭﺍﻣﺮ ﻭﺍﺳﺘﺮﺟﺎﻉ ﺍﻟﻨﺘﺎﺉﺞ‪ ،‬ﻓﻴﺠﺐ ﻋﻠﻴﻚ ﺗﺤﺪﻳﺪ ﻣﺴﺘﻮﻯ ﺍﻻﻣﺘﻴﺎﺯ‬
‫ﺍﻟﺨﺎﺹﺑﻚ )ﺑﺎﺳﺘﺨﺪﺍﻡﻭﺍﻣﻲﺃﻭ ﺃﻣﺮ ﻣﺸﺎﺑﻪ‪ ،‬ﺃﻭ ﻣﺤﺎﻭﻟﺔ ﻛﺘﺎﺑﺔ ﻣﻠﻒ ﻏﻴﺮ ﺿﺎﺭ ﺇﻟﻰ ﺩﻟﻴﻞ ﻣﺤﻤﻲ‬
‫(‪ .‬ﻗﺪ ﺗﺴﻌﻰ ﺑﻌﺪ ﺫﻟﻚ ﺇﻟﻰ ﺗﺼﻌﻴﺪ ﺍﻻﻣﺘﻴﺎﺯﺍﺕ‪ ،‬ﺃﻭ ﺍﻟﺤﺼﻮﻝ ﻋﻠﻰ ﻭﺻﻮﻝ ﺧﻠﻔﻲ ﺇﻟﻰ‬
‫ﺑﻴﺎﻧﺎﺕﺗﻄﺒﻴﻖ ﺣﺴﺎﺳﺔ‪ ،‬ﺃﻭ ﻣﻬﺎﺟﻤﺔ ﻣﻀﻴﻔﻴﻦ ﺁﺧﺮﻳﻦ ﻳﻤﻜﻦ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻴﻬﻢ ﻣﻦ ﺍﻟﺨﺎﺩﻡ‬
‫ﺍﻟﻤﺨﺘﺮﻕ‪.‬‬
‫‪833‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫‪7.4.5‬ﺇﺫﺍ ﻛﻨﺖ ﺗﻌﺘﻘﺪ ﺃﻥ ﻣﺪُﺧﻼﺗﻚ ﺗﻤُﺮﺭَّ ﺇﻟﻰ ﺃﻣﺮ ﻧﻈﺎﻡ ﺗﺸﻐﻴﻞ‪ ،‬ﻭﻟﻜﻦ ﺳﻼﺳﻞ ﺍﻟﻬﺠﻮﻡ ﺍﻟﻤﺬﻛﻮﺭﺓ‬
‫ﻟﻢﺗﻔُﻠﺢ‪ ،‬ﻓﺤﺎﻭﻝ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﺮﻣﺰ > ﺃﻭ < ﻟﺘﻮﺟﻴﻪ ﻣﺤﺘﻮﻳﺎﺕ ﻣﻠﻒ ﺇﻟﻰ ﻣﺪُﺧﻞ ﺍﻷﻣﺮ ﺃﻭ‬
‫ﻟﺘﻮﺟﻴﻪﻣﺨُﺮﺟﺎﺗﻪ ﺇﻟﻰ ﻣﻠﻒ‪ .‬ﻗﺪ ﻳﻤُﻜﻨّﻚ ﻫﺬﺍ ﻣﻦ ﻗﺮﺍءﺓ ﺃﻭ ﻛﺘﺎﺑﺔ ﻣﺤﺘﻮﻳﺎﺕ ﻣﻠﻔﺎﺕ‬
‫ﻋﺸﻮﺍﺉﻴﺔ‪.‬ﺇﺫﺍ ﻛﻨﺖ ﺗﻌﺮﻑ ﺃﻭ ﺗﺴﺘﻄﻴﻊ ﺗﺨﻤﻴﻦ ﺍﻷﻣﺮ ﺍﻟﻔﻌﻠﻲ ﺍﻟﺬﻱ ﻳﺘﻢ ﺗﻨﻔﻴﺬﻩ‪ ،‬ﻓﺤﺎﻭﻝ‬
‫ﺇﺩﺧﺎﻝﻣﻌُﺎﻣﻼﺕ ﺳﻄﺮ ﺃﻭﺍﻣﺮ ﻣﺮُﺗﺒﻄﺔ ﺑﻬﺬﺍ ﺍﻷﻣﺮ ﻟﺘﻌﺪﻳﻞ ﺳﻠﻮﻛﻪ ﺑﻄﺮﻕ ﻣﻔُﻴﺪﺓ )ﻋﻠﻰ ﺳﺒﻴﻞ‬
‫ﺍﻟﻤﺜﺎﻝ‪،‬ﺑﺘﺤﺪﻳﺪ ﻣﻠﻒ ﻣﺨُﺮﺟﺎﺕ ﺩﺍﺧﻞ ﺟﺬﺭ ﺍﻟﻮﻳﺐ(‪.‬‬

‫‪7.4.6‬ﺇﺫﺍ ﻻﺣﻈﺖ َﺃﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﻔُﻠﺖ ﺑﻌﺾ ﺍﻷﺣﺮﻑ ﺍﻟﺮﺉﻴﺴﻴﺔ‪ ،‬ﻓﺄﻧﺖ َﺑﺤﺎﺟﺔ ﺇﻟﻰ ﺗﻨﻔﻴﺬ ﻫﺠﻮﻡ‬
‫ﺣﻘﻦﺍﻷﻭﺍﻣﺮ‪ ،‬ﻓﺤﺎﻭﻝ ﻭﺿﻊ ﺣﺮﻑ ﺍﻹﻓﻼﺕ ﻗﺒﻞ ﻛﻞ ﺣﺮﻑ‪ .‬ﺇﺫﺍ ﻟﻢ ﻳﻔُﻠﺖ ﺍﻟﺘﻄﺒﻴﻖ ﺣﺮﻑ‬
‫ﺍﻹﻓﻼﺕﻧﻔﺴﻪ‪ ،‬ﻓﻌﺎﺩﺓ ًﻣﺎ ﻳﺆﺩﻱ ﺫﻟﻚ ﺇﻟﻰ ﺗﺠﺎﻭﺯ ﻫﺬﺍ ﺍﻹﺟﺮﺍء ﺍﻟﺪﻓﺎﻋﻲ‪.‬‬

‫ﺇﺫﺍﻭﺟﺪﺕ ﺃﻥ ﺃﺣﺮﻑ ﺍﻟﻤﺴﺎﻓﺎﺕ ﺍﻟﺒﻴﻀﺎء ﻣﺤﻈﻮﺭﺓ ﺃﻭ ﻣﻌﻘﻤﺔ‪ ،‬ﻓﻘﺪ ﺗﺘﻤﻜﻦ ﻣﻦ ﺍﺳﺘﺨﺪﺍﻡ ‪$‬ﻧﻈﺎﻡ‬
‫ﺇﺩﺍﺭﺓﺍﻟﻤﻮﺍﺭﺩ ﺍﻟﺒﺸﺮﻳﺔﺑﺪﻻ ًﻣﻦ ﺍﻟﻤﺴﺎﻓﺎﺕ ﻋﻠﻰ ﺍﻟﻤﻨﺼﺎﺕ ﺍﻟﻤﺴﺘﻨﺪﺓ ﺇﻟﻰ ‪.UNIX‬‬

‫‪7.5‬ﺍﺧﺘﺒﺎﺭ ﻋﺒﻮﺭ ﺍﻟﻤﺴﺎﺭ‬


‫‪7.5.1‬ﻟﻜﻞ ﺍﺧﺘﺒﺎﺭ ‪ Fuzz‬ﻗﻤﺖ َﺑﻪ‪ ،‬ﺭﺍﺟﻊ ﺍﻟﻨﺘﺎﺉﺞ ﺍﻟﻨﺎﺗﺠﺔ ﻋﻦ ﺳﻼﺳﻞ ﻫﺠﻤﺎﺕ ﺍﺟﺘﻴﺎﺯ ﺍﻟﻤﺴﺎﺭ‬
‫ﺍﻟﻤﺬﻛﻮﺭﺓﻓﻲ ﺍﻟﺨﻄﻮﺓ ‪ .7.1.3‬ﻳﻤﻜﻨﻚ ﺍﻟﻨﻘﺮ ﻋﻠﻰ ﺃﻋﻠﻰ ﻋﻤﻮﺩ ﺍﻟﺤﻤﻮﻟﺔ ﻓﻲ ‪Burp Intruder‬‬
‫ﻟﻔﺮﺯﺟﺪﻭﻝ ﺍﻟﻨﺘﺎﺉﺞ ﺣﺴﺐ ﺍﻟﺤﻤﻮﻟﺔ ﻭﺗﺠﻤﻴﻊ ﻧﺘﺎﺉﺞ ﻫﺬﻩ ﺍﻟﺴﻼﺳﻞ‪ .‬ﻓﻲ ﺣﺎﻝ ﺍﺳﺘﻼﻡ‬
‫ﺭﺳﺎﻟﺔﺧﻄﺄ ﻏﻴﺮ ﻋﺎﺩﻳﺔ ﺃﻭ ﺍﺳﺘﺠﺎﺑﺔ ﺑﻄﻮﻝ ﻏﻴﺮ ﻃﺒﻴﻌﻲ‪ ،‬ﺭﺍﺟﻊ ﺍﻻﺳﺘﺠﺎﺑﺔ ﻳﺪﻭﻳﺎً ﻟﺘﺤﺪﻳﺪ ﻣﺎ ﺇﺫﺍ‬
‫ﻛﺎﻧﺖﺗﺤﺘﻮﻱ ﻋﻠﻰ ﻣﺤﺘﻮﻳﺎﺕ ﺍﻟﻤﻠﻒ ﺍﻟﻤﺤﺪﺩ ﺃﻭ ﺃﻱ ﺩﻟﻴﻞ ﺁﺧﺮ ﻋﻠﻰ ﺣﺪﻭﺙ ﻋﻤﻠﻴﺔ ﻣﻠﻒ ﻏﻴﺮ‬
‫ﻃﺒﻴﻌﻴﺔ‪.‬‬

‫‪7.5.2‬ﻋﻨﺪ ﺗﺤﺪﻳﺪﻙ ﻟﺴﻄﺢ ﻫﺠﻮﻡ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﻳﺠﺐ ﻋﻠﻴﻚ ﻣﻼﺣﻈﺔ ﺃﻱ ﻭﻇﻴﻔﺔ ﺗﺪﻋﻢ ﺗﺤﺪﻳﺪﺍً ﻗﺮﺍءﺓ‬
‫ﺍﻟﻤﻠﻔﺎﺕﻭﻛﺘﺎﺑﺘﻬﺎ ﺑﻨﺎء ًﻋﻠﻰ ﻣﺪﺧﻼﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ‪ .‬ﺑﺎﻹﺿﺎﻓﺔ ﺇﻟﻰ ﺍﻟﺘﺸﻮﻳﺶ ﺍﻟﻌﺎﻡ ﻋﻠﻰ‬
‫ﺟﻤﻴﻊﺍﻟﻤﻌﻠﻤﺎﺕ‪ ،‬ﻳﺠﺐ ﻋﻠﻴﻚ ﺍﺧﺘﺒﺎﺭ ﻫﺬﻩ ﺍﻟﻮﻇﻴﻔﺔ ﻳﺪﻭﻳﺎً ﺑﺪﻗﺔ ﺷﺪﻳﺪﺓ ﻟﺘﺤﺪﻳﺪ ﺃﻱ ﺛﻐﺮﺍﺕ‬
‫ﺃﻣﻨﻴﺔﻓﻲ ﻣﺴﺎﺭ ﺍﻻﺧﺘﺮﺍﻕ‪.‬‬

‫‪7.5.3‬ﺇﺫﺍ ﺑﺪﺍ ﺃﻥ ﺃﺣﺪ ﺍﻟﻤﻌﺎﻣﻠﻴﻦ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﺍﺳﻢ ﻣﻠﻒ‪ ،‬ﺃﻭ ﺟﺰء ﻣﻨﻪ‪ ،‬ﺃﻭ ﺩﻟﻴﻞ‪ ،‬ﻓﻌﺪﻝّ ﻗﻴﻤﺔ‬
‫ﺍﻟﻤﻌﺎﻣﻞﺍﻟﺤﺎﻟﻴﺔ ﻹﺩﺭﺍﺝ ﺃﻱ ﺩﻟﻴﻞ ﻓﺮﻋﻲ ﻭﺗﺴﻠﺴﻞ ﺍﺟﺘﻴﺎﺯ ﻭﺍﺣﺪ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﺇﺫﺍ‬
‫ﺃﺭﺳﻞﺍﻟﺘﻄﺒﻴﻖ ﻫﺬﻩ ﺍﻟﻤﻌﺎﻣﻞ‪:‬‬

‫ﺍﻟﻤﻠﻒ=‪foo/file1.txt‬‬

‫ﺣﺎﻭﻝﺇﺭﺳﺎﻝ ﻫﺬﻩ ﺍﻟﻘﻴﻤﺔ‪:‬‬


‫ﺍﻟﻤﻠﻒ=‪foo/bar/../file1.txt‬‬

‫ﺇﺫﺍﻛﺎﻥ ﺳﻠﻮﻙ ﺍﻟﺘﻄﺒﻴﻖ ﻣﺘﻄﺎﺑﻘﺎً ﻓﻲ ﺍﻟﺤﺎﻟﺘﻴﻦ‪ ،‬ﻓﻘﺪ ﻳﻜﻮﻥ ﻋﺮﺿﺔ ﻟﻠﺨﻄﺮ‪ ،‬ﻭﻋﻠﻴﻚ ﺍﻻﻧﺘﻘﺎﻝ‬
‫ﺇﻟﻰﺍﻟﺨﻄﻮﺓ ﺍﻟﺘﺎﻟﻴﺔ‪ .‬ﺃﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺴﻠﻮﻙ ﻣﺨﺘﻠﻔﺎً‪ ،‬ﻓﻘﺪ ﻳﻘﻮﻡ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺤﻈﺮ ﺃﻭ ﺇﺯﺍﻟﺔ ﺃﻭ‬
‫ﺗﻄﻬﻴﺮ‪.‬‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪834‬‬

‫ﺗﺴﻠﺴﻼﺕﻋﺒﻮﺭ‪ ،‬ﻣﻤﺎ ﻳﺆﺩﻱ ﺇﻟﻰ ﻣﺴﺎﺭ ﻣﻠﻒ ﻏﻴﺮ ﺻﺎﻟﺢ‪ .‬ﺣﺎﻭﻝ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﺘﺮﻣﻴﺰ‬
‫ﻭﺍﻟﻬﺠﻤﺎﺕﺍﻷﺧﺮﻯ ﺍﻟﻤﻮﺿﺤﺔ ﻓﻲ ﺍﻟﻔﺼﻞ ﺍﻟﻌﺎﺷﺮ ﻟﺘﺠﺎﻭﺯ ﺍﻟﻤﺮﺷﺤﺎﺕ‪.‬‬

‫‪7.5.4‬ﺇﺫﺍ ﻧﺠﺢ ﺍﻻﺧﺘﺒﺎﺭ ﺍﻟﺴﺎﺑﻖ ﻻﺳﺘﺨﺪﺍﻡ ﺗﺴﻠﺴﻼﺕ ﺍﻟﺘﻨﻘﻞ ﺩﺍﺧﻞ ﺍﻟﺪﻟﻴﻞ ﺍﻷﺳﺎﺳﻲ‪ ،‬ﻓﺤﺎﻭﻝ‬
‫ﺍﺳﺘﺨﺪﺍﻡﺗﺴﻠﺴﻼﺕ ﺇﺿﺎﻓﻴﺔ ﻟﻠﻮﺻﻮﻝ ﺇﻟﻰ ﺍﻟﻤﻠﻔﺎﺕ ﺍﻟﻤﻌﺮﻭﻓﺔ ﻋﻠﻰ ﻧﻈﺎﻡ ﺗﺸﻐﻴﻞ ﺍﻟﺨﺎﺩﻡ‪.‬‬
‫ﺇﺫﺍﻓﺸﻠﺖ ﻫﺬﻩ ﺍﻟﻤﺤﺎﻭﻻﺕ‪ ،‬ﻓﻘﺪ ﻳﻔﺮﺽ ﺍﻟﺘﻄﺒﻴﻖ ﻋﻮﺍﻣﻞ ﺗﺼﻔﻴﺔ ﺃﻭ ﻓﺤﻮﺻﺎﺕ ﻣﺨﺘﻠﻔﺔ‬
‫ﻗﺒﻞﻣﻨﺢ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺍﻟﻤﻠﻔﺎﺕ‪ .‬ﻳﺠﺐ ﻋﻠﻴﻚ ﺇﺟﺮﺍء ﺍﻟﻤﺰﻳﺪ ﻣﻦ ﺍﻟﺒﺤﺚ ﻟﻔﻬﻢ ﻋﻨﺎﺻﺮ‬
‫ﺍﻟﺘﺤﻜﻢﺍﻟﻤﻄُﺒﻘﺔ‪ ،‬ﻭﻣﺎ ﺇﺫﺍ ﻛﺎﻧﺖ ﻫﻨﺎﻙ ﺃﻱ ﺗﺠﺎﻭﺯﺍﺕ‪.‬‬

‫‪7.5.5‬ﻗﺪ ﻳﺘﺤﻘﻖ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻦ ﺍﻣﺘﺪﺍﺩ ﺍﻟﻤﻠﻒ ﺍﻟﻤﻄﻠﻮﺏ ﻭﻳﺴﻤﺢ ﺑﺎﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺃﻧﻮﺍﻉ ﻣﻌﻴﻨﺔ ﻓﻘﻂ‬
‫ﻣﻦﺍﻟﻤﻠﻔﺎﺕ‪ .‬ﺣﺎﻭﻝ ﺍﺳﺘﺨﺪﺍﻡ ﻫﺠﻮﻡ ﺑﺎﻳﺖ ﻓﺎﺭﻍ ﺃﻭ ﺳﻄﺮ ﺟﺪﻳﺪ ﻣﻊ ﺍﻣﺘﺪﺍﺩ ﻣﻠﻒ ﻣﻌﺮﻭﻑ‬
‫ﻭﻣﻘﺒﻮﻝﻟﺘﺠﺎﻭﺯ ﺍﻟﻔﻠﺘﺮ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪:‬‬

‫‪. . /../../../../boot.ini%00.jpg‬‬
‫‪. . /../../../../etc/passwd%0a.jpg‬‬

‫‪7.5.6‬ﻗﺪ ﻳﺘﺤﻘﻖ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻦ ﺃﻥ ﻣﺴﺎﺭ ﺍﻟﻤﻠﻒ ﺍﻟﺬﻱ ﻳﺪُﺧﻠﻪ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻳﺒﺪﺃ ﺑﺪﻟﻴﻞ ﺃﻭ ﺟﺬﻉ‬
‫ﻣﺤُﺪﺩ‪.‬ﺣﺎﻭﻝ ﺇﺿﺎﻓﺔ ﺗﺴﻠﺴﻼﺕ ﺍﻧﺘﻘﺎﻝ ﺑﻌﺪ ﺟﺬﻉ ﻣﻘُﺒﻮﻝ ﻣﻌﺮﻭﻑ ﻟﺘﺠﺎﻭﺯ ﺍﻟﻤﺮُﺷﺢِّ‪ .‬ﻋﻠﻰ‬
‫ﺳﺒﻴﻞﺍﻟﻤﺜﺎﻝ‪:‬‬
‫‪/‬ﺍﻟﺼﻮﺭ‪/../../../../../../../‬ﺇﻟﺦ‪/‬ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‬

‫‪7.5.7‬ﺇﺫﺍ ﻟﻢ ﺗﻨﺠﺢ ﻫﺬﻩ ﺍﻟﻬﺠﻤﺎﺕ‪ ،‬ﻓﺤﺎﻭﻝ ﺍﻟﺠﻤﻊ ﺑﻴﻦ ﻋﺪﺓ ﻋﻤﻠﻴﺎﺕ ﺗﺠﺎﻭﺯ‪ ،‬ﻭﺍﻟﻌﻤﻞ ﻓﻲ ﺍﻟﺒﺪﺍﻳﺔ‬
‫ﺑﺎﻟﻜﺎﻣﻞﺩﺍﺧﻞ ﺍﻟﺪﻟﻴﻞ ﺍﻷﺳﺎﺳﻲ ﻓﻲ ﻣﺤﺎﻭﻟﺔ ﻟﻔﻬﻢ ﺍﻟﻤﺮﺷﺤﺎﺕ ﺍﻟﻤﻮﺟﻮﺩﺓ ﻭﺍﻟﻄﺮﻕ ﺍﻟﺘﻲ‬
‫ﻳﺘﻌﺎﻣﻞﺑﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻊ ﺍﻹﺩﺧﺎﻝ ﻏﻴﺮ ﺍﻟﻤﺘﻮﻗﻊ‪.‬‬

‫‪7.5.8‬ﺇﺫﺍ ﻧﺠﺤﺖ ﻓﻲ ﺍﻟﺤﺼﻮﻝ ﻋﻠﻰ ﺣﻖ ﺍﻟﻮﺻﻮﻝ ﻟﻠﻘﺮﺍءﺓ ﺇﻟﻰ ﻣﻠﻔﺎﺕ ﻋﺸﻮﺍﺉﻴﺔ ﻋﻠﻰ ﺍﻟﺨﺎﺩﻡ‪،‬‬
‫ﻓﺤﺎﻭﻝﺍﺳﺘﺮﺩﺍﺩ ﺃﻱ ﻣﻦ ﺍﻟﻤﻠﻔﺎﺕ ﺍﻟﺘﺎﻟﻴﺔ‪ ،‬ﻣﻤﺎ ﻗﺪ ﻳﻤﻜﻨّﻚ ﻣﻦ ﺗﺼﻌﻴﺪ ﻫﺠﻮﻣﻚ‪:‬‬

‫ﻣﻠﻔﺎﺕﻛﻠﻤﺎﺕ ﺍﻟﻤﺮﻭﺭ ﻟﻨﻈﺎﻡ ﺍﻟﺘﺸﻐﻴﻞ ﻭﺍﻟﺘﻄﺒﻴﻖ‬ ‫‪-‬‬

‫ﻣﻠﻔﺎﺕﺗﻜﻮﻳﻦ ﺍﻟﺨﺎﺩﻡ ﻭﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﻻﻛﺘﺸﺎﻑ ﻧﻘﺎﻁ ﺿﻌﻒ ﺃﺧﺮﻯ ﺃﻭ ﺿﺒﻂ ﻫﺠﻮﻡ ﻣﺨﺘﻠﻒ‬ ‫‪-‬‬

‫ﺗﻀﻤﻴﻦﺍﻟﻤﻠﻔﺎﺕ ﺍﻟﺘﻲ ﻗﺪ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺑﻴﺎﻧﺎﺕ ﺍﻋﺘﻤﺎﺩ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ‬ ‫‪-‬‬

‫ﻣﺼﺎﺩﺭﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺘﻲ ﻳﺴﺘﺨﺪﻣﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﻣﺜﻞ ﻣﻠﻔﺎﺕ ﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ ‪ MySQL‬ﺃﻭ‬ ‫‪-‬‬

‫ﻣﻠﻔﺎﺕ‪XML‬‬
‫ﻛﻮﺩﺍﻟﻤﺼﺪﺭ ﻟﺼﻔﺤﺎﺕ ﻗﺎﺑﻠﺔ ﻟﻠﺘﻨﻔﻴﺬ ﻋﻠﻰ ﺍﻟﺨﺎﺩﻡ‪ ،‬ﻹﺟﺮﺍء ﻣﺮﺍﺟﻌﺔ ﻟﻠﻜﻮﺩ ﺑﺤﺜﺎً ﻋﻦ‬ ‫‪-‬‬

‫ﺍﻷﺧﻄﺎء‬
‫ﻣﻠﻔﺎﺕﺳﺠﻞ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺘﻲ ﻗﺪ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎﺕ ﻣﺜﻞ ﺃﺳﻤﺎء ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ‬ ‫‪-‬‬

‫ﻭﺭﻣﻮﺯﺍﻟﺠﻠﺴﺔ‬
‫‪835‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫‪7.5.9‬ﺇﺫﺍ ﻧﺠﺤﺖ ﻓﻲ ﺍﻟﺤﺼﻮﻝ ﻋﻠﻰ ﺣﻖ ﺍﻟﻮﺻﻮﻝ ﻟﻠﻜﺘﺎﺑﺔ ﺇﻟﻰ ﻣﻠﻔﺎﺕ ﻋﺸﻮﺍﺉﻴﺔ ﻋﻠﻰ ﺍﻟﺨﺎﺩﻡ‪،‬‬
‫ﻓﺘﺄﻛﺪﻣﻦ ﺇﻣﻜﺎﻧﻴﺔ ﺗﻨﻔﻴﺬ ﺃﻱ ﻣﻦ ﺍﻟﻬﺠﻤﺎﺕ ﺍﻟﺘﺎﻟﻴﺔ ﻟﺘﺼﻌﻴﺪ ﻫﺠﻮﻣﻚ‪:‬‬

‫ﺇﻧﺸﺎءﺍﻟﺒﺮﺍﻣﺞ ﺍﻟﻨﺼﻴﺔ ﻓﻲ ﻣﺠﻠﺪﺍﺕ ﺑﺪء ﺍﻟﺘﺸﻐﻴﻞ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ‬ ‫‪-‬‬

‫ﺗﻌﺪﻳﻞﺍﻟﻤﻠﻔﺎﺕ ﻣﺜﻞ‪in.ftpd‬ﻟﺘﻨﻔﻴﺬ ﺃﻭﺍﻣﺮ ﻋﺸﻮﺍﺉﻴﺔ ﻋﻨﺪ ﺍﺗﺼﺎﻝ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﺘﺎﻟﻲ‬ ‫‪-‬‬

‫ﻛﺘﺎﺑﺔﺍﻟﺒﺮﺍﻣﺞ ﺍﻟﻨﺼﻴﺔ ﺇﻟﻰ ﺩﻟﻴﻞ ﻭﻳﺐ ﺑﺄﺫﻭﻧﺎﺕ ﺍﻟﺘﻨﻔﻴﺬ ﻭﺍﺳﺘﺪﻋﺎﺉﻬﺎ ﻣﻦ ﻣﺘﺼﻔﺤﻚ‬ ‫‪-‬‬

‫‪7.6‬ﺍﺧﺘﺒﺎﺭ ﺣﻘﻦ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ‬


‫‪7.6.1‬ﺑﺎﻟﻨﺴﺒﺔ ﻟﻜﻞ ﺍﺧﺘﺒﺎﺭ ‪ fuzz‬ﻗﻤﺖ ﺑﻪ‪ ،‬ﺭﺍﺟﻊ ﺍﻟﻨﺘﺎﺉﺞ ﺍﻟﺨﺎﺻﺔ ﺑﺎﻟﺴﻠﺴﻠﺔ‬
‫‪111111‬ﺑﻤﻔﺮﺩﻫﺎ )ﺃﻱ‪ ،‬ﻻ ﻳﺴﺒﻘﻬﺎ ﺑﺎﻗﻲ ﺳﻠﺴﻠﺔ ﺍﻻﺧﺘﺒﺎﺭ(‪ .‬ﻳﻤﻜﻨﻚ ﺗﺤﺪﻳﺪﻫﺎ ﺑﺴﺮﻋﺔ ﻓﻲ‬
‫‪ Burp Intruder‬ﺑﺎﻟﻨﻘﺮ ﻣﻊ ﺍﻟﻀﻐﻂ ﻋﻠﻰ ﻣﻔﺘﺎﺡ ‪ Shift‬ﻋﻠﻰ ﻋﻨﻮﺍﻥ‪111111‬ﺍﺳﺘﺨﺪﻡ‬
‫ﺳﻠﺴﻠﺔ‪ Grep‬ﻟﺘﺠﻤﻴﻊ ﺟﻤﻴﻊ ﺍﻟﻨﺘﺎﺉﺞ ﺍﻟﺘﻲ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﻫﺬﻩ ﺍﻟﺴﻠﺴﻠﺔ‪ .‬ﺍﺑﺤﺚ ﻋﻦ ﺃﻱ‬
‫ﻧﺘﺎﺉﺞﻻ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﻋﻼﻣﺔ ﺗﺤﻘﻖ ﻓﻲ ﻋﻤﻮﺩ ‪ .Payload Grep‬ﻣﻦ ﺍﻟﻤﺮﺟﺢ ﺃﻥ ﺗﻜﻮﻥ ﺃﻱ‬
‫ﺣﺎﻻﺕﻳﺘﻢ ﺗﺤﺪﻳﺪﻫﺎ ﻋﺮﺿﺔ ﻟﺤﻘﻦ ﺃﻭﺍﻣﺮ ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ‪.‬‬

‫‪7.6.2‬ﺭﺍﺟﻊ ﺟﻤﻴﻊ ﺣﺎﻻﺕ ﺍﻻﺧﺘﺒﺎﺭ ﺍﻟﺘﻲ ﺍﺳﺘﺨﺪﻣﺖ ﺳﻼﺳﻞ ﺣﻘﻦ ﺍﻟﻨﺼﻮﺹ ﺍﻟﺒﺮﻣﺠﻴﺔ‪ ،‬ﻭﺣﺪﺩ ﺃﻱ‬
‫ﺭﺳﺎﺉﻞﺧﻄﺄ ﺑﺮﻣﺠﻴﺔ ﻗﺪ ﺗﺸﻴﺮ ﺇﻟﻰ ﺃﻥ ﺇﺩﺧﺎﻟﻚ ﻗﻴﺪ ﺍﻟﺘﻨﻔﻴﺬ ﻭﻟﻜﻨﻪ ﺗﺴﺒﺐ ﻓﻲ ﺣﺪﻭﺙ‬
‫ﺧﻄﺄ‪.‬ﻗﺪ ﺗﺤﺘﺎﺝ ﻫﺬﻩ ﺍﻟﺮﺳﺎﺉﻞ ﺇﻟﻰ ﺿﺒﻂ ﺩﻗﻴﻖ ﻹﺟﺮﺍء ﺣﻘﻦ ﻧﺼﻮﺹ ﺑﺮﻣﺠﻴﺔ ﻧﺎﺟﺢ‪.‬‬

‫‪7.6.3‬ﺇﺫﺍ ﺑﺪﺍ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻌُﺮﺿَّﺎً ﻟﻠﺨﻄﺮ‪ ،‬ﻓﺘﺤﻘﻖ ﻣﻦ ﺫﻟﻚ ﻋﻦ ﻃﺮﻳﻖ ﺣﻘﻦ ﺃﻭﺍﻣﺮ ﺇﺿﺎﻓﻴﺔ ﺧﺎﺻﺔ‬
‫ﺑﻤﻨﺼﺔﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﺍﻟﻤﺴُﺘﺨﺪﻣﺔ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﺣﻤﻮﻻﺕ‬
‫ﻫﺠﻮﻣﻴﺔﻣﺸﺎﺑﻬﺔ ﻟﺘﻠﻚ ﺍﻟﻤﺴُﺘﺨﺪﻣﺔ ﻋﻨﺪ ﺍﻟﺘﻤﻮﻳﻪ ﻟﺤﻘﻦ ﺃﻭﺍﻣﺮ ﻧﻈﺎﻡ ﺍﻟﺘﺸﻐﻴﻞ‪:‬‬

‫ﺍﻟﻨﻈﺎﻡ)'‪('ping%20127.0.0.1‬‬

‫‪7.7‬ﺍﺧﺘﺒﺎﺭ ﺗﻀﻤﻴﻦ ﺍﻟﻤﻠﻒ‬


‫‪7.7.1‬ﺇﺫﺍ ﺗﻠﻘﻴﺖ َﺃﻱ ﺍﺗﺼﺎﻻﺕ ‪ HTTP‬ﻭﺍﺭﺩﺓ ﻣﻦ ﺍﻟﺒﻨﻴﺔ ﺍﻟﺘﺤﺘﻴﺔ ﻟﻠﺘﻄﺒﻴﻖ ﺍﻟﻤﺴﺘﻬﺪﻑ ﺃﺛﻨﺎء ﻋﻤﻠﻴﺔ‬
‫ﺍﻟﺘﺸﻮﻳﺶ‪،‬ﻓﻤﻦ ﺷﺒﻪ ﺍﻟﻤﺆﻛﺪ ﺃﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻌﺮﺽ ٌﻟﺨﻄﺮ ﺗﻀﻤﻴﻦ ﻣﻠﻒ ﺑﻌﻴﺪ‪ .‬ﻛﺮﺭّ‬
‫ﺍﻻﺧﺘﺒﺎﺭﺍﺕﺫﺍﺕ ﺍﻟﺼﻠﺔ ﺑﻄﺮﻳﻘﺔ ﺃﺣﺎﺩﻳﺔ ﺍﻟﺨﻴﻂ ﻭﻣﻘﻴﺪﺓ ﺯﻣﻨﻴﺎً ﻟﺘﺤﺪﻳﺪ ﺍﻟﻤﻌﻠﻤﺎﺕ ﺍﻟﺘﻲ‬
‫ﺗﺴُﺒﺐﺇﺻﺪﺍﺭ ﺍﻟﺘﻄﺒﻴﻖ ﻟﻄﻠﺒﺎﺕ ‪ HTTP‬ﺑﺪﻗﺔ‪.‬‬

‫‪7.7.2‬ﺭﺍﺟﻊ ﻧﺘﺎﺉﺞ ﺍﺧﺘﺒﺎﺭﺍﺕ ﺗﻀﻤﻴﻦ ﺍﻟﻤﻠﻔﺎﺕ‪ ،‬ﻭﺣﺪﺩ ﺃﻳﺎً ﻣﻨﻬﺎ ﺗﺴﺒﺐ ﻓﻲ ﺗﺄﺧﻴﺮ ﻏﻴﺮ ﻃﺒﻴﻌﻲ ﻓﻲ‬
‫ﺍﺳﺘﺠﺎﺑﺔﺍﻟﺘﻄﺒﻴﻖ‪ .‬ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻻﺕ‪،‬‬
‫ﻗﺪﻳﻜﻮﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻧﻔﺴﻪ ﻋﺮﺿﺔ ﻟﻠﺨﻄﺮ ﻭﻟﻜﻦ ﻃﻠﺒﺎﺕ ‪ HTTP‬ﺍﻟﻨﺎﺗﺠﺔ ﻗﺪ ﺗﻮﻗﻔﺖ ﻋﻦ‬
‫ﺍﻟﻌﻤﻞﺑﺴﺒﺐ ﻋﻮﺍﻣﻞ ﺍﻟﺘﺼﻔﻴﺔ ﻋﻠﻰ ﻣﺴﺘﻮﻯ ﺍﻟﺸﺒﻜﺔ‪.‬‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪836‬‬

‫‪7.7.3‬ﺇﺫﺍ ﻭﺟﺪﺕ ﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ ﻹﺩﺭﺍﺝ ﻣﻠﻒ ﻋﻦ ﺑﻌﺪ‪ ،‬ﻓﻘﻢ ﺑﻨﺸﺮ ﺧﺎﺩﻡ ﻭﻳﺐ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﻧﺺ‬
‫ﺑﺮﻣﺠﻲﺿﺎﺭ ﺧﺎﺹ ﺑﺎﻟﻠﻐﺔ ﺍﻟﺘﻲ ﺗﺴﺘﻬﺪﻓﻬﺎ‪ ،‬ﻭﺍﺳﺘﺨﺪﻡ ﺍﻷﻭﺍﻣﺮ ﻣﺜﻞ ﺗﻠﻚ ﺍﻟﻤﺴﺘﺨﺪﻣﺔ‬
‫ﻻﺧﺘﺒﺎﺭﺣﻘﻦ ﺍﻟﻨﺺ ﺍﻟﺒﺮﻣﺠﻲ ﻟﻠﺘﺄﻛﺪ ﻣﻦ ﺗﻨﻔﻴﺬ ﺍﻟﻨﺺ ﺍﻟﺒﺮﻣﺠﻲ ﺍﻟﺨﺎﺹ ﺑﻚ‪.‬‬

‫ﺍﺧﺘﺒﺎﺭﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ ﻓﻲ ﺍﻹﺩﺧﺎﻻﺕ ﺍﻟﺨﺎﺻﺔ ﺑﺎﻟﻮﻇﻴﻔﺔ‬ ‫‪8‬‬


‫ﺑﺎﻹﺿﺎﻓﺔﺇﻟﻰ ﺍﻟﻬﺠﻤﺎﺕ ﺍﻟﻘﺎﺉﻤﺔ ﻋﻠﻰ ﺍﻟﻤﺪﺧﻼﺕ ﺍﻟﺘﻲ ﺍﺳﺘﻬﺪﻓﺘﻬﺎ ﺍﻟﺨﻄﻮﺓ ﺍﻟﺴﺎﺑﻘﺔ‪ ،‬ﻋﺎﺩﺓ ًﻣﺎ ﺗﻈﻬﺮ‬
‫ﻣﺠﻤﻮﻋﺔﻣﻦ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ ﻓﻲ ﺃﻧﻮﺍﻉ ﻣﺤﺪﺩﺓ ﻣﻦ ﺍﻟﻮﻇﺎﺉﻒ ﻓﻘﻂ‪ .‬ﻗﺒﻞ ﺍﻻﻧﺘﻘﺎﻝ ﺇﻟﻰ ﺍﻟﺨﻄﻮﺍﺕ‬
‫ﺍﻟﻤﻮﺿﺤﺔﻓﻲ ﻫﺬﺍ ﺍﻟﻘﺴﻢ‪ ،‬ﻳﻨُﺼﺢ ﺑﻤﺮﺍﺟﻌﺔ ﺗﻘﻴﻴﻤﻚ ﻟﺴﻄﺢ ﻫﺠﻮﻡ ﺍﻟﺘﻄﺒﻴﻖ ﻟﺘﺤﺪﻳﺪ ﻭﻇﺎﺉﻒ‬
‫ﺍﻟﺘﻄﺒﻴﻖﺍﻟﻤﺤﺪﺩﺓ ﺍﻟﺘﻲ ﻳﺤُﺘﻤﻞ ﻇﻬﻮﺭ ﻫﺬﻩ ﺍﻟﻌﻴﻮﺏ ﻓﻴﻬﺎ‪ ،‬ﻭﺗﺮﻛﻴﺰ ﺍﺧﺘﺒﺎﺭﻙ ﻋﻠﻴﻬﺎ‪.‬‬

‫ﻧﺘﺎﺉﺞﺗﻌﻴﻴﻦ ﺍﻟﺘﻄﺒﻴﻖ‬

‫‪.8.6‬ﺍﻟﻮﺍﺟﻬﺔ ﺍﻟﺨﻠﻔﻴﺔ‬
‫‪8.7. XXE‬‬ ‫‪8.5. XPath‬‬ ‫‪.8.3‬ﺍﻟﺼﺎﺑﻮﻥ‬ ‫‪.8.2‬ﺃﺻﻠﻲ‬ ‫‪8.1. SMTP‬‬
‫ﻃﻠﺐ‬
‫‪.8.4‬ﺑﺮﻭﺗﻮﻛﻮﻝ ‪LDAP‬‬

‫ﺣﻘﻦ‬ ‫ﺣﻘﻦ‬ ‫ﺣﻘﻦ‬ ‫ﺣﻘﻦ‬ ‫ﻋﻴﻮﺏﻓﻲ ﺍﻟﻜﻮﺩ‬ ‫ﺣﻘﻦ‬


‫ﺣﻘﻦ‬

‫ﺍﻟﺸﻜﻞ‪:9-21‬ﺍﺧﺘﺒﺎﺭ ﻧﻘﺎﻁ ﺍﻟﻀﻌﻒ ﻓﻲ ﺍﻹﺩﺧﺎﻝ ﺍﻟﺨﺎﺻﺔ ﺑﺎﻟﻮﻇﺎﺉﻒ‬

‫‪8.1‬ﺍﺧﺘﺒﺎﺭ ﺣﻘﻦ ‪SMTP‬‬


‫‪8.1.1‬ﻟﻜﻞ ﻃﻠﺐ ﻣﺴُﺘﺨﺪﻡ ﻓﻲ ﻭﻇﺎﺉﻒ ﺍﻟﺒﺮﻳﺪ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ‪ ،‬ﺃﺭﺳﻞ ﻛﻼً ﻣﻦ ﺳﻼﺳﻞ ﺍﻻﺧﺘﺒﺎﺭ ﺍﻟﺘﺎﻟﻴﺔ‬
‫ﻛﻤﻌﺎﻣﻞﻭﺍﺣﺪ‪ ،‬ﻣﻊ ﺇﺩﺧﺎﻝ ﻋﻨﻮﺍﻥ ﺑﺮﻳﺪﻙ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ ﻓﻲ ﺍﻟﻤﻮﺿﻊ ﺍﻟﻤﻨﺎﺳﺐ‪ .‬ﻳﻤﻜﻨﻚ‬
‫ﺍﺳﺘﺨﺪﺍﻡ‪ Burp Intruder‬ﻷﺗﻤﺘﺔ ﻫﺬﻩ ﺍﻟﻌﻤﻠﻴﺔ‪ ،‬ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓﻲ ﺍﻟﺨﻄﻮﺓ ‪7.1‬‬
‫ﻟﻠﺘﺸﻮﻳﺶﺍﻟﻌﺎﻡ‪ .‬ﺗﺤﺘﻮﻱ ﺳﻼﺳﻞ ﺍﻻﺧﺘﺒﺎﺭ ﻫﺬﻩ ﻋﻠﻰ ﺃﺣﺮﻑ ﺧﺎﺻﺔ ﻣﺮُﻣﺰّﺓ ﺑـ ‪ ،URL‬ﻟﺬﺍ ﻻ‬
‫ﺗﻄُﺒﻖّﻋﻠﻴﻬﺎ ﺃﻱ ﺗﺮﻣﻴﺰ ﺇﺿﺎﻓﻲ‪.‬‬

‫>ﺑﺮﻳﺪﻙ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ<‪0a%‬ﻧﺴﺨﺔ ﺍﺣﺘﻴﺎﻃﻴﺔ‪>:‬ﺑﺮﻳﺪﻙ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ<‬

‫>ﺑﺮﻳﺪﻙ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ<‪0d%0a%‬ﻧﺴﺨﺔ ﺍﺣﺘﻴﺎﻃﻴﺔ‪>:‬ﺑﺮﻳﺪﻙ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ<‬

‫>ﺑﺮﻳﺪﻙ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ<‪0a%‬ﻧﺴﺨﺔ ﻣﺨﻔﻴﺔ‪>:‬ﺑﺮﻳﺪﻙ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ<‬

‫>ﺑﺮﻳﺪﻙ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ<‪0d%0a%‬ﻧﺴﺨﺔ ﻣﺨﻔﻴﺔ‪>:‬ﺑﺮﻳﺪﻙ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ<‬

‫<ﺇﻟﻰ‪>+:‬ﺑﺮﻳﺪﻙ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ‪aRCPT+‬ﻣﻦ‪>+:‬ﺑﺮﻳﺪﻙ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ<‪%0aDATA%0afoo%0a%2e%0aMAIL+0%‬‬


‫‪837‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫‪:+test%0afoo %0a%2e%0a‬ﺍﻟﻤﻮﺿﻮﻉ‪:+>youremail<%0a‬ﺇﻟﻰ‪:+>youremail<%0a‬ﻣﻦ‪%0aDATA%0a‬‬

‫‪d%0aRCPT‬ﺍﻟﺒﺮﻳﺪ‪+‬ﻣﻦ‪>+:‬ﺑﺮﻳﺪﻙ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ<‪%0d%0aDATA%0d%0afoo%0d%0a%2e%0d%0a0%‬‬
‫‪ +‬ﺇﻟﻰ‪+:‬‬
‫‪:+test%0d%0afoo%0d%0a%2e%0d%0a‬ﺍﻟﻤﻮﺿﻮﻉ‪:+>youremail< %0d%0a‬ﺇﻟﻰ‬
‫‪:+>youremail<%0d%0a‬ﻣﻦ‪d%0a‬ﺍﻟﺒﻴﺎﻧﺎﺕ‪>youremail<%0d%0a0%‬‬

‫‪8.1.2‬ﺭﺍﺟﻊ ﺍﻟﻨﺘﺎﺉﺞ ﻟﺘﺤﺪﻳﺪ ﺃﻱ ﺭﺳﺎﺉﻞ ﺧﻄﺄ ﻳﻌﺮﺿﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ‪ .‬ﺇﺫﺍ ﺑﺪﺕ ﻫﺬﻩ ﺍﻟﺮﺳﺎﺉﻞ ﻣﺘﻌﻠﻘﺔ‬
‫ﺑﺄﻱﻣﺸﻜﻠﺔ ﻓﻲ ﻭﻇﻴﻔﺔ ﺍﻟﺒﺮﻳﺪ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ‪ ،‬ﻓﺘﺤﻘﻖ ﻣﻤﺎ ﺇﺫﺍ ﻛﻨﺖ ﺑﺤﺎﺟﺔ ﺇﻟﻰ ﺿﺒﻂ ﺇﺩﺧﺎﻟﻚ‬
‫ﺑﺪﻗﺔﻻﺳﺘﻐﻼﻝ ﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ‪.‬‬
‫‪8.1.3‬ﺭﺍﻗﺐ ﻋﻨﻮﺍﻥ ﺍﻟﺒﺮﻳﺪ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ ﺍﻟﺬﻱ ﺣﺪﺩﺗﻪ ﻟﻤﻌﺮﻓﺔ ﻣﺎ ﺇﺫﺍ ﺗﻢ ﺍﺳﺘﻼﻡ ﺃﻱ ﺭﺳﺎﺉﻞ ﺑﺮﻳﺪ‬
‫ﺇﻟﻜﺘﺮﻭﻧﻲ‪.‬‬
‫‪8.1.4‬ﺭﺍﺟﻊ ﻧﻤﻮﺫﺝ ‪ HTML‬ﺍﻟﺬﻱ ﻳﻨُﺸﺊ ﺍﻟﻄﻠﺐ ﺫﻱ ﺍﻟﺼﻠﺔ ﺑﻌﻨﺎﻳﺔ‪ .‬ﻗﺪ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﺩﻻﺉﻞ ﺗﺘﻌﻠﻖ‬
‫ﺑﺒﺮﻧﺎﻣﺞﺍﻟﺨﺎﺩﻡ ﺍﻟﻤﺴُﺘﺨﺪﻡ‪ .‬ﻗﺪ ﻳﺤﺘﻮﻱ ﺃﻳﻀﺎً ﻋﻠﻰ ﺣﻘﻞ ﻣﺨﻔﻲ ﺃﻭ ﻣﻌُﻄﻞّ ﻳﺴُﺘﺨﺪﻡ ﻟﺘﺤﺪﻳﺪ‬

‫ﺇﻟﻰﻋﻨﻮﺍﻥ ﺍﻟﺒﺮﻳﺪ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ ﺍﻟﺬﻱ ﻳﻤﻜﻨﻚ ﺗﻌﺪﻳﻠﻪ ﻣﺒﺎﺷﺮﺓ‪.‬‬

‫‪8.2‬ﺍﺧﺘﺒﺎﺭ ﻧﻘﺎﻁ ﺍﻟﻀﻌﻒ ﻓﻲ ﺍﻟﺒﺮﺍﻣﺞ ﺍﻷﺻﻠﻴﺔ‬


‫‪8.2.1‬ﺍﺧﺘﺒﺎﺭ ﺗﺠﺎﻭﺯﺍﺕ ﺍﻟﻤﺨﺰﻥ ﺍﻟﻤﺆﻗﺖ‬
‫‪8.2.1.1‬ﻟﻜﻞ ﻋﻨﺼﺮ ﺑﻴﺎﻧﺎﺕ ﻣﺴُﺘﻬﺪﻑ‪ ،‬ﺃﺭﺳﻞ ﻧﻄﺎﻗﺎً ﻣﻦ ﺍﻟﺴﻼﺳﻞ ﺍﻟﻄﻮﻳﻠﺔ ﺑﻄﻮﻝ ﺃﻃﻮﻝ ﻗﻠﻴﻼً ﻣﻦ‬
‫ﺃﺣﺠﺎﻡﺍﻟﻤﺨﺎﺯﻥ ﺍﻟﻤﺆﻗﺘﺔ ﺍﻟﺸﺎﺉﻌﺔ‪ .‬ﺍﺳﺘﻬﺪﻑ ﻋﻨﺼﺮ ﺑﻴﺎﻧﺎﺕ ﻭﺍﺣﺪﺍً ﻓﻲ ﻛﻞ ﻣﺮﺓ ﻟﺰﻳﺎﺩﺓ‬
‫ﺗﻐﻄﻴﺔﻣﺴﺎﺭﺍﺕ ﺍﻟﺘﻌﻠﻴﻤﺎﺕ ﺍﻟﺒﺮﻣﺠﻴﺔ ﻓﻲ ﺍﻟﺘﻄﺒﻴﻖ‪.‬‬
‫ﻳﻤﻜﻨﻚﺍﺳﺘﺨﺪﺍﻡ ﻣﺼﺪﺭ ﺣﻤﻮﻟﺔ ﻛﺘﻞ ﺍﻷﺣﺮﻑ ﻓﻲ ‪ Burp Intruder‬ﻟﺘﻮﻟﻴﺪ ﺣﻤﻮﻻﺕ‬
‫ﺑﺄﺣﺠﺎﻡﻣﺨﺘﻠﻔﺔ ﺗﻠﻘﺎﺉﻴﺎً‪ .‬ﺃﺣﺠﺎﻡ ﺍﻟﻤﺨﺰﻥ ﺍﻟﻤﺆﻗﺖ ﺍﻟﺘﺎﻟﻴﺔ ﻣﻨﺎﺳﺒﺔ ﻟﻼﺧﺘﺒﺎﺭ‪:‬‬

‫‪1100‬‬
‫‪4200‬‬
‫‪33000‬‬

‫‪8.2.1.2‬ﺭﺍﻗﺐ ﺍﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ ﻟﺘﺤﺪﻳﺪ ﺃﻱ ﺧﻠﻞ‪.‬‬


‫ﻣﻦﺷﺒﻪ ﺍﻟﻤﺆﻛﺪ ﺃﻥ ﺍﻟﺘﺠﺎﻭﺯ ﺍﻟﻤﺘُﺼﻴﺪ ﺳﻴﺘﺴﺒﺐ ﻓﻲ ﺣﺪﻭﺙ ﺍﺳﺘﺜﻨﺎء ﻓﻲ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﻣﻊ ﺃﻥ‬
‫ﺗﺸﺨﻴﺺﻃﺒﻴﻌﺔ ﺍﻟﻤﺸﻜﻠﺔ ﻋﻦ ﺑﻌُﺪ ﻗﺪ ﻳﻜﻮﻥ ﺻﻌﺒﺎً‪ .‬ﺍﺑﺤﺚ ﻋﻦ ﺃﻱ ٍّﻣﻦ ﺍﻟﺤﺎﻻﺕ ﺍﻟﺸﺎﺫﺓ‬
‫ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬
‫ﺭﻣﺰﺣﺎﻟﺔ ‪ HTTP 500‬ﺃﻭ ﺭﺳﺎﻟﺔ ﺧﻄﺄ‪ ،‬ﺣﻴﺚ ﻻ ﻳﻜﻮﻥ ﻟﻠﻤﺪﺧﻼﺕ ﺍﻟﻤﺸﻮﻫﺔ ﺍﻷﺧﺮﻯ )‬ ‫‪-‬‬

‫ﻭﻟﻜﻦﻟﻴﺴﺖ ﻃﻮﻳﻠﺔ ﺟﺪﺍً( ﻧﻔﺲ ﺍﻟﺘﺄﺛﻴﺮ‬


‫ﺭﺳﺎﻟﺔﺇﻋﻼﻣﻴﺔ ﺗﺸﻴﺮ ﺇﻟﻰ ﺣﺪﻭﺙ ﻓﺸﻞ ﻓﻲ ﺑﻌﺾ ﻣﻜﻮﻧﺎﺕ ﺍﻟﻜﻮﺩ ﺍﻷﺻﻠﻴﺔ ﺍﻟﺨﺎﺭﺟﻴﺔ‬ ‫‪-‬‬

‫ﺍﺳﺘﺠﺎﺑﺔﺟﺰﺉﻴﺔ ﺃﻭ ﻣﺸﻮﻫﺔ ﻳﺘﻢ ﺗﻠﻘﻴﻬﺎ ﻣﻦ ﺍﻟﺨﺎﺩﻡ‬ ‫‪-‬‬

‫ﺇﻏﻼﻕﺍﺗﺼﺎﻝ ‪ TCP‬ﺑﺎﻟﺨﺎﺩﻡ ﻓﺠﺄﺓ ﺩﻭﻥ ﺇﺭﺟﺎﻉ ﺍﺳﺘﺠﺎﺑﺔ‬ ‫‪-‬‬


‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪838‬‬

‫ﻟﻢﻳﻌﺪ ﺗﻄﺒﻴﻖ ﺍﻟﻮﻳﺐ ﺑﺄﻛﻤﻠﻪ ﻳﺴﺘﺠﻴﺐ‬ ‫‪-‬‬

‫ﺑﻴﺎﻧﺎﺕﻏﻴﺮ ﻣﺘﻮﻗﻌﺔ ﻳﺘﻢ ﺇﺭﺟﺎﻋﻬﺎ ﺑﻮﺍﺳﻄﺔ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﻣﻤﺎ ﻗﺪ ﻳﺸﻴﺮ ﺇﻟﻰ ﺃﻥ ﺳﻠﺴﻠﺔ ﻓﻲ‬ ‫‪-‬‬

‫ﺍﻟﺬﺍﻛﺮﺓﻓﻘﺪﺕ ﻧﻬﺎﻳﺘﻬﺎ ﺍﻟﻔﺎﺭﻏﺔ‬

‫‪8.2.2‬ﺍﺧﺘﺒﺎﺭ ﻧﻘﺎﻁ ﺍﻟﻀﻌﻒ ﻓﻲ ﺍﻷﻋﺪﺍﺩ ﺍﻟﺼﺤﻴﺤﺔ‬

‫‪8.2.2.1‬ﻋﻨﺪ ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻣﻜﻮﻧﺎﺕ ﺍﻟﻜﻮﺩ ﺍﻷﺻﻠﻴﺔ‪ ،‬ﺣﺪﺩ ﺃﻱ ﺑﻴﺎﻧﺎﺕ ﺗﻌﺘﻤﺪ ﻋﻠﻰ ﺍﻷﻋﺪﺍﺩ ﺍﻟﺼﺤﻴﺤﺔ‪،‬‬
‫ﻭﺧﺎﺻﺔﻣﺆﺷﺮﺍﺕ ﺍﻟﻄﻮﻝ‪ ،‬ﻭﺍﻟﺘﻲ ﻳﻤﻜﻦ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻹﺛﺎﺭﺓ ﺛﻐﺮﺍﺕ ﺍﻷﻋﺪﺍﺩ ﺍﻟﺼﺤﻴﺤﺔ‪.‬‬

‫‪.8.2.2.2‬ﺿﻤﻦ ﻛﻞ ﻋﻨﺼﺮ ﻣﺴﺘﻬﺪﻑ‪ ،‬ﺃﺭﺳﻞ ﺣﻤﻮﻻﺕ ﻣﻨﺎﺳﺒﺔ ﻣﺼﻤﻤﺔ ﻟﺘﻔﻌﻴﻞ ﺃﻱ ﺛﻐﺮﺍﺕ ﺃﻣﻨﻴﺔ‪.‬‬
‫ﻟﻜﻞﻋﻨﺼﺮ ﺑﻴﺎﻧﺎﺕ ﻣﺴﺘﻬﺪﻑ‪ ،‬ﺃﺭﺳﻞ ﺳﻠﺴﻠﺔ ﻣﻦ ﺍﻟﻘﻴﻢ ﺍﻟﻤﺨﺘﻠﻔﺔ ﺑﺎﻟﺘﺮﺗﻴﺐ‪ ،‬ﺗﻤﺜﻞ ﺣﺎﻻﺕ‬
‫ﺣﺪﻭﺩﻳﺔﻟﻺﺻﺪﺍﺭﺍﺕ ﺍﻟﻤﻮﻗﻌﺔ ﻭﻏﻴﺮ ﺍﻟﻤﻮﻗﻌﺔ ﻷﺣﺠﺎﻡ ﻣﺨﺘﻠﻔﺔ ﻣﻦ ﺍﻷﻋﺪﺍﺩ ﺍﻟﺼﺤﻴﺤﺔ‪ .‬ﻋﻠﻰ‬
‫ﺳﺒﻴﻞﺍﻟﻤﺜﺎﻝ‪:‬‬
‫(ﻭ‪x80 )127 128‬ﻭ‪0x7f 0‬‬ ‫‪-‬‬

‫(ﻭ‪x100 )255 256‬ﻭ‪0xff 0‬‬ ‫‪-‬‬

‫(ﻭ ‪x8000 )32767 32768‬ﻭ ‪0x7ffff 0‬‬ ‫‪-‬‬

‫(ﻭ ‪x10000 )65535 65536‬ﻭ ‪0xffff 0‬‬ ‫‪-‬‬

‫(ﻭ ‪x80000000 )2147483647 2147483648‬ﻭ ‪0x7ffffffff 0‬‬ ‫‪-‬‬

‫(ﻭ ‪x0 )4294967295 0‬ﻭ ‪0xffffffff 0‬‬ ‫‪-‬‬

‫‪8.2.2.3‬ﻋﻨﺪﻣﺎ ﻳﺘﻢ ﺗﻤﺜﻴﻞ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺘﻲ ﻳﺘﻢ ﺗﻌﺪﻳﻠﻬﺎ ﻓﻲ ﺷﻜﻞ ﺳﺪﺍﺳﻲ ﻋﺸﺮﻱ‪ ،‬ﻗﻢ ﺑﺈﺭﺳﺎﻝ‬
‫ﺇﺻﺪﺍﺭﺍﺕﺻﻐﻴﺮﺓ ﻭﻛﺒﻴﺮﺓ ﻟﻜﻞ ﺣﺎﻟﺔ ﺍﺧﺘﺒﺎﺭ‪ ،‬ﻣﺜﻞ‪ff7f‬‬
‫ﻭ‪7fff.‬ﺇﺫﺍ ﺗﻢ ﺇﺭﺳﺎﻝ ﺍﻷﺭﻗﺎﻡ ﺍﻟﺴﺪﺍﺳﻴﺔ ﻋﺸﺮﻳﺔ ﻓﻲ ﻧﻤﻮﺫﺝ ‪ ،ASCII‬ﻓﺎﺳﺘﺨﺪﻡ ﻧﻔﺲ ﺍﻟﺤﺎﻟﺔ‬
‫ﺍﻟﺘﻲﻳﺴﺘﺨﺪﻣﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ ﻧﻔﺴﻪ ﻟﻸﺣﺮﻑ ﺍﻷﺑﺠﺪﻳﺔ ﻟﻠﺘﺄﻛﺪ ﻣﻦ ﻓﻚ ﺗﺸﻔﻴﺮﻫﺎ ﺑﺸﻜﻞ ﺻﺤﻴﺢ‪.‬‬

‫‪8.2.2.4‬ﻣﺮﺍﻗﺒﺔ ﺍﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ ﻟﻸﺣﺪﺍﺙ ﺍﻟﺸﺎﺫﺓ‪ ،‬ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓﻲ ﺍﻟﺨﻄﻮﺓ ‪.8.2.1.2‬‬

‫‪8.2.3‬ﺍﺧﺘﺒﺎﺭ ﺛﻐﺮﺍﺕ ﺗﻨﺴﻴﻖ ﺍﻟﺴﻠﺴﻠﺔ‬


‫‪٨.٢.٣.١‬ﺍﺳﺘﻬﺪﺍﻑ ﻛﻞ ﻣﻌﻠﻤﺔ ﻋﻠﻰ ﺣﺪﺓ‪ ،‬ﻭﺇﺭﺳﺎﻝ ﺳﻼﺳﻞ ﻧﺼﻴﺔ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺗﺴﻠﺴﻼﺕ ﻃﻮﻳﻠﺔ ﻣﻦ‬
‫ﻣﺤُﺪﺩِّﺍﺕﺗﻨﺴﻴﻖ ﻣﺨﺘﻠﻔﺔ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪:‬‬
‫‪%n%...‬‬

‫ﺗﺬﻛﺮﺃﻥ ﺗﻘﻮﻡ ﺑﺘﺮﻣﻴﺰ ﺣﺮﻑ ‪ %‬ﻓﻲ ﻋﻨﻮﺍﻥ ‪ URL‬ﻛـ ‪.25%‬‬

‫‪8.2.3.2‬ﻣﺮﺍﻗﺒﺔ ﺍﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ ﻟﻸﺣﺪﺍﺙ ﺍﻟﺸﺎﺫﺓ‪ ،‬ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓﻲ ﺍﻟﺨﻄﻮﺓ ‪.8.2.1.2‬‬


‫‪839‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫‪8.3‬ﺍﺧﺘﺒﺎﺭ ﺣﻘﻦ ﺍﻟﺼﺎﺑﻮﻥ‬


‫‪8.3.1‬ﺍﺳﺘﻬﺪﻑ ﻛﻞ ﻣﻌﻠﻤﺔ ﺗﺸﻚ ﻓﻲ ﻣﻌﺎﻟﺠﺘﻬﺎ ﻋﺒﺮ ﺭﺳﺎﻟﺔ ‪ .SOAP‬ﺃﺭﺳﻞ ﻭﺳﻢ ﺇﻏﻼﻕ ‪ XML‬ﻏﻴﺮ‬
‫ﻣﻮﺛﻮﻕ‪،‬ﻣﺜﻞ >‪/‬ﻓﻮ<‪.‬ﺇﺫﺍ ﻟﻢ ﻳﺤﺪﺙ ﺃﻱ ﺧﻄﺄ‪ ،‬ﻓﻤﻦ ﺍﻟﻤﺤﺘﻤﻞ ﺃﻥ ﺇﺩﺧﺎﻟﻚ ﻻ ﻳﺘﻢ ﺇﺩﺭﺍﺟﻪ ﻓﻲ‬
‫ﺭﺳﺎﻟﺔ‪ SOAP‬ﺃﻭ ﻳﺘﻢ ﺗﻄﻬﻴﺮﻩ ﺑﻄﺮﻳﻘﺔ ﻣﺎ‪.‬‬

‫‪8.3.2‬ﺇﺫﺍ ﺗﻢ ﺗﻠﻘﻲ ﺧﻄﺄ‪ ،‬ﻗﻢ ﺑﺈﺭﺳﺎﻝ ﺯﻭﺝ ﺻﺎﻟﺢ ﻣﻦ ﻋﻼﻣﺎﺕ ﺍﻟﻔﺘﺢ ﻭﺍﻹﻏﻼﻕ‪ ،‬ﻣﺜﻞ >ﻓﻮ<>‪/‬ﻓﻮ<‪.‬ﺇﺫﺍ‬
‫ﺃﺩﻯﻫﺬﺍ ﺇﻟﻰ ﺍﺧﺘﻔﺎء ﺍﻟﺨﻄﺄ‪ ،‬ﻓﻘﺪ ﻳﻜﻮﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻋﺮﺿﺔ ﻟﻠﺨﻄﺮ‪.‬‬

‫‪8.3.3‬ﺇﺫﺍ ﺗﻢ ﻧﺴﺦ ﺍﻟﻌﻨﺼﺮ ﺍﻟﺬﻱ ﺃﺭﺳﻠﺘﻪ ﺇﻟﻰ ﺍﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﻓﺄﺭﺳﻞ ﺍﻟﻘﻴﻤﺘﻴﻦ ﺍﻟﺘﺎﻟﻴﺘﻴﻦ‬
‫ﺑﺎﻟﺘﺮﺗﻴﺐ‪.‬ﺇﺫﺍ ﻭﺟﺪﺕ ﺃﻥ ﺃﺣﺪ ﺍﻟﻌﻨﺼﺮﻳﻦ ﻳﻌُﺎﺩ ﻛﻌﻨﺼﺮ ﺁﺧﺮ‪ ،‬ﺃﻭ ﺑﺒﺴﺎﻃﺔ ﻛـﺍﻣﺘﺤﺎﻥ‪،‬ﻳﻤﻜﻨﻚ‬
‫ﺍﻟﺘﺄﻛﺪﻣﻦ ﺃﻥ ﺇﺩﺧﺎﻟﻚ ﻳﺘﻢ ﺇﺩﺭﺍﺟﻪ ﻓﻲ ﺭﺳﺎﻟﺔ ﺗﻌﺘﻤﺪ ﻋﻠﻰ ‪.XML‬‬

‫ﺍﺧﺘﺒﺎﺭ>‪</foo‬‬
‫ﺍﺧﺘﺒﺎﺭ>‪<foo<>/foo‬‬

‫‪8.3.4‬ﺇﺫﺍ ﺍﺣﺘﻮﻯ ﻃﻠﺐ ‪ HTTP‬ﻋﻠﻰ ﻋﺪﺓ ﻣﻌﻠﻤﺎﺕ ﻗﺪ ﺗﻜﻮﻥ ﻣﺪُﺭﺟﺔ ﻓﻲ ﺭﺳﺎﻟﺔ ‪ ،SOAP‬ﻓﺤﺎﻭﻝ‬
‫ﺇﺩﺭﺍﺝﺣﺮﻑ ﺍﻟﺘﻌﻠﻴﻖ ﺍﻻﻓﺘﺘﺎﺣﻲ >!‪ --‬ﻓﻲ ﺃﺣﺪ ﺍﻟﻤﻌﻠﻤﺎﺕ ﻭﺣﺮﻑ ﺍﻟﺘﻌﻠﻴﻖ ﺍﻟﺨﺘﺎﻣﻲ !‪ <--‬ﻓﻲ‬
‫ﻣﻌﻠﻤﺔﺃﺧﺮﻯ‪ .‬ﺛﻢ ﺑﺪﻝّ ﻫﺬﻩ ﺍﻟﻤﻌﻠﻤﺎﺕ )ﻷﻧﻚ ﻻ ﺗﻌﺮﻑ ﺗﺮﺗﻴﺐ ﻇﻬﻮﺭ ﺍﻟﻤﻌﻠﻤﺎﺕ(‪ .‬ﻗﺪ ﻳﺆﺩﻱ‬
‫ﻫﺬﺍﺇﻟﻰ ﺣﺬﻑ ﺟﺰء ﻣﻦ ﺭﺳﺎﻟﺔ ‪ SOAP‬ﺍﻟﺨﺎﺻﺔ ﺑﺎﻟﺨﺎﺩﻡ‪ ،‬ﻣﻤﺎ ﻗﺪ ﻳﻐُﻴﺮّ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ ﺃﻭ‬
‫ﻳﺆُﺩﻱﺇﻟﻰ ﺣﺎﻟﺔ ﺧﻄﺄ ﻣﺨﺘﻠﻔﺔ ﻗﺪ ﺗﻔُﺼﺢ ﻋﻦ ﻣﻌﻠﻮﻣﺎﺕ‪.‬‬

‫‪8.4‬ﺍﺧﺘﺒﺎﺭ ﺣﻘﻦ ‪LDAP‬‬


‫‪8.4.1‬ﻓﻲ ﺃﻱ ﻭﻇﻴﻔﺔ ﻳﺘﻢ ﻓﻴﻬﺎ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﻘﺪﻣﺔ ﻣﻦ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻻﺳﺘﺮﺩﺍﺩ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ‬
‫ﻣﻦﺧﺪﻣﺔ ﺍﻟﺪﻟﻴﻞ‪ ،‬ﺍﺳﺘﻬﺪﻑ ﻛﻞ ﻣﻌﻠﻤﺔ ﺑﺪﻭﺭﻫﺎ ﻻﺧﺘﺒﺎﺭ ﺍﻟﺤﻘﻦ ﺍﻟﻤﺤﺘﻤﻞ ﻓﻲ ﺍﺳﺘﻌﻼﻡ‬
‫‪.LDAP‬‬
‫‪٨.٤.٢‬ﺃﺩﺧﻞ ﺍﻟﺮﻣﺰ *‪ .‬ﺇﺫﺍ ﺗﻢ ﺇﺭﺟﺎﻉ ﻋﺪﺩ ﻛﺒﻴﺮ ﻣﻦ ﺍﻟﻨﺘﺎﺉﺞ‪ ،‬ﻓﻬﺬﺍ ﻣﺆﺷﺮ ﺟﻴﺪ ﻋﻠﻰ ﺃﻧﻚ ﺗﺘﻌﺎﻣﻞ ﻣﻊ‬
‫ﺍﺳﺘﻌﻼﻡ‪.LDAP‬‬
‫‪8.4.3‬ﺣﺎﻭﻝ ﺇﺩﺧﺎﻝ ﻋﺪﺩ ﻣﻦ ﺍﻷﻗﻮﺍﺱ ﺍﻟﺨﺘﺎﻣﻴﺔ‪:‬‬
‫((((((((((‬

‫ﻳﺆﺩﻱﻫﺬﺍ ﺍﻹﺩﺧﺎﻝ ﺇﻟﻰ ﺇﺑﻄﺎﻝ ﺑﻨﺎء ﺟﻤﻠﺔ ﺍﻻﺳﺘﻌﻼﻡ‪ ،‬ﻟﺬﺍ ﺇﺫﺍ ﺣﺪﺙ ﺧﻄﺄ ﺃﻭ ﺳﻠﻮﻙ ﻏﻴﺮ‬
‫ﻃﺒﻴﻌﻲﺁﺧﺮ‪ ،‬ﻓﻘﺪ ﻳﻜﻮﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻋﺮﺿﺔ ﻟﻠﺨﻄﺮ )ﻋﻠﻰ ﺍﻟﺮﻏﻢ ﻣﻦ ﺃﻥ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﻭﻇﺎﺉﻒ‬
‫ﺍﻟﺘﻄﺒﻴﻖﺍﻷﺧﺮﻯ ﻭﻣﻮﺍﻗﻒ ﺍﻟﺤﻘﻦ ﻗﺪ ﺗﺘﺼﺮﻑ ﺑﻨﻔﺲ ﺍﻟﻄﺮﻳﻘﺔ(‪.‬‬

‫‪8.4.4‬ﺣﺎﻭﻝ ﺇﺩﺧﺎﻝ ﺗﻌﺒﻴﺮﺍﺕ ﻣﺨﺘﻠﻔﺔ ﻣﺼﻤﻤﺔ ﻟﻠﺘﺪﺧﻞ ﻓﻲ ﺃﻧﻮﺍﻉ ﻣﺨﺘﻠﻔﺔ ﻣﻦ ﺍﻻﺳﺘﻌﻼﻣﺎﺕ‪،‬‬


‫ﻭﺍﻧﻈﺮﻣﺎ ﺇﺫﺍ ﻛﺎﻧﺖ ﺗﺴﻤﺢ ﻟﻚ ﺑﺎﻟﺘﺄﺛﻴﺮ ﻋﻠﻰ ﺍﻟﻨﺘﺎﺉﺞ ﺍﻟﺘﻲ ﻳﺘﻢ ﻋﺮﺿﻬﺎ‪.‬‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪840‬‬

‫ﻋﺎﺩ‪.‬ﺳﻲ ﺇﻥﻳﺘﻢ ﺩﻋﻢ ﺍﻟﺨﺎﺻﻴﺔ ﺑﻮﺍﺳﻄﺔ ﺟﻤﻴﻊ ﺗﻄﺒﻴﻘﺎﺕ ‪ LDAP‬ﻭﻫﻲ ﻣﻔﻴﺪﺓ ﺇﺫﺍ ﻛﻨﺖ ﻻ‬
‫ﺗﻌﺮﻑﺃﻱ ﺗﻔﺎﺻﻴﻞ ﺣﻮﻝ ﺍﻟﺪﻟﻴﻞ ﺍﻟﺬﻱ ﺗﺴﺘﻔﺴﺮ ﻋﻨﻪ‪:‬‬

‫*=‪( )cn‬‬
‫*=‪* ( ( )|)cn‬‬
‫* ( ( ‪%00‬‬

‫‪٨.٤.٥‬ﺟﺮﺏّ ﺇﺿﺎﻓﺔ ﺳﻤﺎﺕ ﺇﺿﺎﻓﻴﺔ ﺇﻟﻰ ﻧﻬﺎﻳﺔ ﻣﺪُﺧﻼﺗﻚ‪ ،‬ﻣﻊ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﻔﻮﺍﺻﻞ ﻟﻔﺼﻞ ﻛﻞ‬
‫ﻋﻨﺼﺮ‪.‬ﺍﺧﺘﺒﺮ ﻛﻞ ﺳﻤﺔ ﻋﻠﻰ ﺣﺪﺓ‪ .‬ﻳﺸﻴﺮ ﺍﻟﺨﻄﺄ ﺇﻟﻰ ﺃﻥ ﺍﻟﺴﻤﺔ ﻏﻴﺮ ﺻﺎﻟﺤﺔ ﻓﻲ ﺍﻟﺴﻴﺎﻕ‬
‫ﺍﻟﺤﺎﻟﻲ‪.‬ﺗﺴُﺘﺨﺪﻡ ﺍﻟﺴﻤﺎﺕ ﺍﻟﺘﺎﻟﻴﺔ ﻋﺎﺩﺓ ًﻓﻲ ﺍﻟﺪﻻﺉﻞ ﺍﻟﺘﻲ ﻳﺴﺘﻌﻠﻢ ﻋﻨﻬﺎ ‪:LDAP‬‬

‫ﺳﻲﺇﻥ‬

‫ﺝ‬
‫ﺑﺮﻳﺪ‬
‫ﺍﻻﺳﻢﺍﻷﻭﻝ‬
‫ﺍ‬
‫ﺍﻭ‬
‫ﺗﻴﺎﺭﻣﺴﺘﻤﺮ‬

‫ﻝ‬
‫ﻣﻌﺮﻑﺍﻟﻤﺴﺘﺨﺪﻡ‬

‫ﻓﺉﺔﺍﻟﻜﺎﺉﻦ‬
‫ﺍﻟﻌﻨﻮﺍﻥﺍﻟﺒﺮﻳﺪﻱ‬
‫‪dn‬‬
‫ﺳﻦ‬

‫‪8.5‬ﺍﺧﺘﺒﺎﺭ ﺣﻘﻦ ‪XPath‬‬


‫‪8.5.1‬ﺣﺎﻭﻝ ﺇﺭﺳﺎﻝ ﺍﻟﻘﻴﻢ ﺍﻟﺘﺎﻟﻴﺔ‪ ،‬ﻭﺣﺪﺩ ﻣﺎ ﺇﺫﺍ ﻛﺎﻧﺖ ﺗﺆﺩﻱ ﺇﻟﻰ ﺳﻠﻮﻙ ﻣﺨﺘﻠﻒ ﻟﻠﺘﻄﺒﻴﻖ ﺩﻭﻥ‬
‫ﺍﻟﺘﺴﺒﺐﻓﻲ ﺣﺪﻭﺙ ﺧﻄﺄ‪:‬‬
‫' ﺃﻭ ‪ count)parent::*]position)(=1[(=0‬ﺃﻭ '‪ ' a'='b‬ﺃﻭ ‪(=1[(<0‬‬
‫)‪ count)parent::*]position‬ﺃﻭ '‪a'='b‬‬

‫‪8.5.2‬ﺇﺫﺍ ﻛﺎﻧﺖ ﺍﻟﻤﻌﻠﻤﺔ ﺭﻗﻤﻴﺔ‪ ،‬ﻓﺤﺎﻭﻝ ﺃﻳﻀﺎً ﺍﺳﺘﺨﺪﺍﻡ ﺳﻼﺳﻞ ﺍﻻﺧﺘﺒﺎﺭ ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬
‫‪1‬ﺃﻭ ‪ count)parent::*]position)(=1[(=0 1‬ﺃﻭ ‪(=1[(<0‬‬
‫)‪count)parent::*]position‬‬

‫‪8.5.3‬ﺇﺫﺍ ﺗﺴﺒﺒﺖ ﺃﻱ ٌّﻣﻦ ﺍﻟﺴﻼﺳﻞ ﺍﻟﺴﺎﺑﻘﺔ ﻓﻲ ﺳﻠﻮﻙ ٍﻣﺨﺘﻠﻒ ٍﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ ﺩﻭﻥ ﺣﺪﻭﺙ‬
‫ﺧﻄﺄ‪،‬ﻓﻤﻦ ﺍﻟﻤﺮُﺟﺢَّ ﺃﻥ ﺗﺘﻤﻜﻦ ﻣﻦ ﺍﺳﺘﺨﺮﺍﺝ ﺑﻴﺎﻧﺎﺕ ٍﻋﺸﻮﺍﺉﻴﺔ ٍﻋﻦ ﻃﺮﻳﻖ ﺻﻴﺎﻏﺔ ﺷﺮﻭﻁ‬
‫ﺍﺧﺘﺒﺎﺭ ٍﻻﺳﺘﺨﺮﺍﺝ ﺑﺎﻳﺖ ٍﻭﺍﺣﺪ ٍﻣﻦ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﻓﻲ ﻛﻞ ِّﻣﺮﺓ‪ .‬ﺍﺳﺘﺨﺪﻡ ﺳﻠﺴﻠﺔ ًﻣﻦ ﺍﻟﺸﺮﻭﻁ‬
‫ﺑﺎﻟﺸﻜﻞﺍﻟﺘﺎﻟﻲ ﻟﺘﺤﺪﻳﺪ ﺍﺳﻢ ﺍﻟﻌﻘﺪﺓ ﺍﻷﻡ ﺍﻟﺤﺎﻟﻴﺔ‪:‬‬

‫ﺳﻠﺴﻠﺔﻓﺮﻋﻴﺔ )ﺍﻻﺳﻢ )ﺍﻷﺻﻞ‪]*::‬ﺍﻟﻤﻮﺿﻊ)(=‪'a' = (1 ،1 ،([1‬‬


‫‪841‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫‪8.5.4‬ﺑﻌﺪ ﺍﺳﺘﺨﺮﺍﺝ ﺍﺳﻢ ﺍﻟﻌﻘﺪﺓ ﺍﻷﺻﻠﻴﺔ‪ ،‬ﺍﺳﺘﺨﺪﻡ ﺳﻠﺴﻠﺔ ﻣﻦ ﺍﻟﺸﺮﻭﻁ ﺑﺎﻟﺸﻜﻞ ﺍﻟﺘﺎﻟﻲ‬
‫ﻻﺳﺘﺨﺮﺍﺝﻛﺎﻓﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺩﺍﺧﻞ ﺷﺠﺮﺓ ‪:XML‬‬
‫ﺳﻠﺴﻠﺔﻓﺮﻋﻴﺔ)‪//‬ﺍﺳﻢ ﺍﻟﻌﻘﺪﺓ ﺍﻷﺻﻠﻴﺔ]ﺍﻟﻤﻮﺿﻊ)(=‪/[1‬ﺍﻟﻌﻘﺪﺓ ﺍﻟﻔﺮﻋﻴﺔ‪]::‬ﺍﻟﻤﻮﺿﻊ)(=‪/[1‬ﺍﻟﻨﺺ)(‪'a'=(1،1،‬‬

‫‪8.6‬ﺍﺧﺘﺒﺎﺭ ﺣﻘﻦ ﺍﻟﻄﻠﺐ ﺍﻟﺨﻠﻔﻲ‬


‫‪8.6.1‬ﺣﺪﺩ ﺃﻱ ﺣﺎﻟﺔ ﻳﺤُﺪﺩ ﻓﻴﻬﺎ ﺍﺳﻢ ﺧﺎﺩﻡ ﺩﺍﺧﻠﻲ ﺃﻭ ﻋﻨﻮﺍﻥ ‪ IP‬ﻓﻲ ﻣﻌﻠﻤﺔ‪ .‬ﺃﺭﺳﻞ ﺧﺎﺩﻣﺎً ﻭﻣﻨﻔﺬﺍً‬
‫ﻋﺸﻮﺍﺉﻴﻴﻦ‪،‬ﻭﺭﺍﻗﺐ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺤﺜﺎً ﻋﻦ ﺍﻧﺘﻬﺎء ﺍﻟﻤﻬﻠﺔ‪ .‬ﺃﺭﺳﻞ ﺃﻳﻀﺎًﺍﻟﻤﻀﻴﻒ ﺍﻟﻤﺤﻠﻲ‪،‬ﻭﺃﺧﻴﺮﺍً‬
‫ﻋﻨﻮﺍﻥ‪ IP‬ﺍﻟﺨﺎﺹ ﺑﻚ‪ ،‬ﻟﻤﺮﺍﻗﺒﺔ ﺍﻻﺗﺼﺎﻻﺕ ﺍﻟﻮﺍﺭﺩﺓ ﻋﻠﻰ ﺍﻟﻤﻨﻔﺬ ﺍﻟﻤﺤﺪﺩ‪.‬‬

‫‪8.6.2‬ﺍﺳﺘﻬﺪﻑ ﻣﻌﻠﻤﺔ ﻃﻠﺐ ﺗﻘﻮﻡ ﺑﺈﺭﺟﺎﻉ ﺻﻔﺤﺔ ﻣﻌﻴﻨﺔ ﻟﻘﻴﻤﺔ ﻣﻌﻴﻨﺔ‪ ،‬ﻭﺣﺎﻭﻝ ﺇﺿﺎﻓﺔ ﻣﻌﻠﻤﺔ‬
‫ﺟﺪﻳﺪﺓﻣﺤﻘﻮﻧﺔ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺑﻨﺎء ﺟﻤﻠﺔ ﻣﺨﺘﻠﻒ‪ ،‬ﺑﻤﺎ ﻓﻲ ﺫﻟﻚ ﻣﺎ ﻳﻠﻲ‪:‬‬

‫&(‪foo=bar‬‬ ‫) ‪%26foo%3dbar‬ﻣﺸﻔﺮ ﺑﻮﺍﺳﻄﺔ ﻋﻨﻮﺍﻥ ‪URL‬‬

‫) ‪%3bfoo%3dbar‬ﻣﺮُﻣﺰَّ ﺑﻮﺍﺳﻄﺔ ﻋﻨﻮﺍﻥ ‪URL‬؛(‪foo=bar‬‬

‫) ‪%2526foo%253dbar‬ﻋﻨﻮﺍﻥ ‪ URL‬ﻣﺸﻔﺮ ﻣﺰﺩﻭﺝ &(‪foo=bar‬‬

‫ﺇﺫﺍﻛﺎﻥ ﺳﻠﻮﻙ ﺍﻟﺘﻄﺒﻴﻖ ﻛﻤﺎ ﻟﻮ ﺃﻥ ﺍﻟﻤﻌﻠﻤﺔ ﺍﻷﺻﻠﻴﺔ ﻟﻢ ﺗﻌُﺪﻝّ‪ ،‬ﻓﻬﻨﺎﻙ ﺍﺣﺘﻤﺎﻝ ﻟﻮﺟﻮﺩ‬
‫ﺛﻐﺮﺍﺕﻓﻲ ﺣﻘﻦ ﻣﻌﻠﻤﺎﺕ ‪ .HTTP‬ﺣﺎﻭﻝ ﻣﻬﺎﺟﻤﺔ ﻃﻠﺐ ﺍﻟﻮﺍﺟﻬﺔ ﺍﻟﺨﻠﻔﻴﺔ ﻋﻦ ﻃﺮﻳﻖ ﺣﻘﻦ‬
‫ﺃﺯﻭﺍﺝﻣﻦ ﺃﺳﻤﺎء‪/‬ﻗﻴﻢ ﺍﻟﻤﻌﻠﻤﺎﺕ ﺍﻟﻤﻌﺮﻭﻓﺔ‪ ،‬ﻣﻤﺎ ﻗﺪ ﻳﻐُﻴﺮّ ﻣﻨﻄﻖ ﺍﻟﻮﺍﺟﻬﺔ ﺍﻟﺨﻠﻔﻴﺔ‪ ،‬ﻛﻤﺎ ﻫﻮ‬
‫ﻣﻮﺿﺢﻓﻲ ﺍﻟﻔﺼﻞ ﺍﻟﻌﺎﺷﺮ‪.‬‬

‫‪8.7‬ﺍﺧﺘﺒﺎﺭ ﺣﻘﻦ ‪XXE‬‬


‫‪8.7.1‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﻤﺴﺘﺨﺪﻣﻮﻥ ﻳﺮﺳﻠﻮﻥ ‪ XML‬ﺇﻟﻰ ﺍﻟﺨﺎﺩﻡ‪ ،‬ﻓﻘﺪ ﻳﻜﻮﻥ ﻫﺠﻮﻡ ﺣﻘﻦ ﺍﻟﻜﻴﺎﻥ ﺍﻟﺨﺎﺭﺟﻲ‬
‫ﻣﻤﻜﻨﺎً‪.‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺤﻘﻞ ﻣﻌﺮﻭﻓﺎً ﻭﻳﻌُﺎﺩ ﺇﻟﻰ ﺍﻟﻤﺴﺘﺨﺪﻡ‪ ،‬ﻓﺤﺎﻭﻝ ﺗﺤﺪﻳﺪ ﻛﻴﺎﻥ ﺧﺎﺭﺟﻲ‪ ،‬ﻛﻤﺎ ﻓﻲ‬
‫ﺍﻟﻤﺜﺎﻝﺍﻟﺘﺎﻟﻲ‪:‬‬
‫‪: mdsec.net‬ﺍﻟﻤﻀﻴﻒ ‪/128/AjaxSearch.ashx HTTP/1.1‬‬
‫‪POST /search‬‬
‫ﻧﻮﻉﺍﻟﻤﺤﺘﻮﻯ‪text/xml :‬؛ ﻣﺠﻤﻮﻋﺔ ﺍﻷﺣﺮﻑ=‪ UTF-8‬ﻃﻮﻝ‬
‫ﺍﻟﻤﺤﺘﻮﻯ‪115:‬‬

‫<ﺑﺤﺚ‪<>SearchTerm<&xxe;>/SearchTerm<>/‬ﺑﺤﺚ> <[ < ”‪SYSTEM “file:///windows/win.ini‬‬


‫‪>!DOCTYPE foo ] >!ENTITY xxe‬‬

‫ﺇﺫﺍﻟﻢ ﻳﺘﻢ ﺍﻟﻌﺜﻮﺭ ﻋﻠﻰ ﺣﻘﻞ ﻣﻌﺮﻭﻑ‪ ،‬ﺣﺪﺩ ﻛﻴﺎﻧﺎً ﺧﺎﺭﺟﻴﺎً ﻟـ‬
‫"‪"http://192.168.1.1:25‬ﻭﺭﺍﻗﺐ ﻭﻗﺖ ﺍﺳﺘﺠﺎﺑﺔ ﺍﻟﺼﻔﺤﺔ‪ .‬ﺇﺫﺍ ﺍﺳﺘﻐﺮﻗﺖ ﺍﻟﺼﻔﺤﺔ ﻭﻗﺘﺎً‬
‫ﺃﻃﻮﻝﺑﻜﺜﻴﺮ ﻟﻠﻌﻮﺩﺓ ﺃﻭ ﺗﻮﻗﻔﺖ ﻋﻦ ﺍﻟﻌﻤﻞ‪ ،‬ﻓﻘﺪ ﺗﻜﻮﻥ ﻋﺮﺿﺔ ﻟﻠﺨﻄﺮ‪.‬‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪842‬‬

‫ﺍﺧﺘﺒﺎﺭﺍﻟﻌﻴﻮﺏ ﺍﻟﻤﻨﻄﻘﻴﺔ‬ ‫‪9‬‬

‫‪.9.1‬ﺗﺤﺪﻳﺪ ﺳﻄﺢ ﺍﻟﻬﺠﻮﻡ ﺍﻟﺮﺉﻴﺴﻲ‬

‫‪.9.5‬‬ ‫‪.9.4‬‬ ‫‪.9.3‬‬ ‫‪.9.2‬‬


‫ﻋﻤﻠﻴﺔ‬ ‫ﻳﺜﻖ‬ ‫ﻏﻴﺮﻣﻜﺘﻤﻞ‬ ‫ﻣﺘﻌﺪﺩﺍﻟﻤﺮﺍﺣﻞ‬
‫ﻣﻨﻄﻖ‬ ‫ﺣﺪﻭﺩ‬ ‫ﻣﺪﺧﻞ‬ ‫ﺍﻟﻌﻤﻠﻴﺎﺕ‬

‫ﺍﻟﺸﻜﻞ‪:10-21‬ﺍﺧﺘﺒﺎﺭ ﺍﻟﻌﻴﻮﺏ ﺍﻟﻤﻨﻄﻘﻴﺔ‬

‫‪9.1‬ﺗﺤﺪﻳﺪ ﺳﻄﺢ ﺍﻟﻬﺠﻮﻡ ﺍﻟﺮﺉﻴﺴﻲ‬


‫‪9.1.1‬ﻳﻤﻜﻦ ﺃﻥ ﺗﺘﺨﺬ ﺍﻟﻌﻴﻮﺏ ﺍﻟﻤﻨﻄﻘﻴﺔ ﺃﺷﻜﺎﻻً ﻣﺘﻨﻮﻋﺔ ﻟﻠﻐﺎﻳﺔ‪ ،‬ﻭﺗﻮﺟﺪ ﻓﻲ ﺃﻱ ﺟﺎﻧﺐ ﻣﻦ ﺟﻮﺍﻧﺐ‬
‫ﻭﻇﺎﺉﻒﺍﻟﺘﻄﺒﻴﻖ‪ .‬ﻟﻀﻤﺎﻥ ﺇﻣﻜﺎﻧﻴﺔ ﻓﺤﺺ ﺍﻟﻌﻴﻮﺏ ﺍﻟﻤﻨﻄﻘﻴﺔ‪ ،‬ﻳﺠﺐ ﻋﻠﻴﻚ ﺃﻭﻻً ﺗﻀﻴﻴﻖ‬
‫ﻧﻄﺎﻕﺍﻟﻬﺠﻮﻡ ﺇﻟﻰ ﻣﻨﻄﻘﺔ ﻣﻨﺎﺳﺒﺔ ﻟﻼﺧﺘﺒﺎﺭ ﺍﻟﻴﺪﻭﻱ‪.‬‬

‫‪9.1.2‬ﺭﺍﺟﻊ ﻧﺘﺎﺉﺞ ﺗﻤﺎﺭﻳﻦ ﺗﻌﻴﻴﻦ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺨﺎﺹ ﺑﻚ‪ ،‬ﻭﺣﺪﺩ ﺃﻱ ﺣﺎﻻﺕ ﻟﻠﻤﻴﺰﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬

‫ﺍﻟﻌﻤﻠﻴﺎﺕﻣﺘﻌﺪﺩﺓ ﺍﻟﻤﺮﺍﺣﻞ‬ ‫‪-‬‬

‫ﻭﻇﺎﺉﻒﺃﻣﻨﻴﺔ ﻣﻬﻤﺔ‪ ،‬ﻣﺜﻞ ﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ‬ ‫‪-‬‬

‫ﺍﻻﻧﺘﻘﺎﻻﺕﻋﺒﺮ ﺣﺪﻭﺩ ﺍﻟﺜﻘﺔ )ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﺍﻻﻧﺘﻘﺎﻝ ﻣﻦ ﻛﻮﻧﻚ ﻣﺠﻬﻮﻝ ﺍﻟﻬﻮﻳﺔ ﺇﻟﻰ‬ ‫‪-‬‬

‫ﻛﻮﻧﻚﻣﺴﺠﻼ ًﺫﺍﺗﻴﺎً ﺇﻟﻰ ﻛﻮﻧﻚ ﻣﺴﺠﻼ ًﺍﻟﺪﺧﻮﻝ(‬


‫ﻭﻇﻴﻔﺔﺗﻌﺘﻤﺪ ﻋﻠﻰ ﺍﻟﺴﻴﺎﻕ ﻳﺘﻢ ﺗﻘﺪﻳﻤﻬﺎ ﻟﻠﻤﺴﺘﺨﺪﻡ‬ ‫‪-‬‬

‫ﺍﻟﻔﺤﻮﺻﺎﺕﻭﺍﻟﺘﻌﺪﻳﻼﺕ ﺍﻟﺘﻲ ﺃﺟﺮﻳﺖ ﻋﻠﻰ ﺃﺳﻌﺎﺭ ﺍﻟﻤﻌﺎﻣﻼﺕ ﺃﻭ ﺍﻟﻜﻤﻴﺎﺕ‬ ‫‪-‬‬

‫‪9.2‬ﺍﺧﺘﺒﺎﺭ ﺍﻟﻌﻤﻠﻴﺎﺕ ﻣﺘﻌﺪﺩﺓ ﺍﻟﻤﺮﺍﺣﻞ‬


‫‪9.2.1‬ﻋﻨﺪﻣﺎ ﺗﺘﻀﻤﻦ ﻋﻤﻠﻴﺔ ﻣﺘﻌﺪﺩﺓ ﺍﻟﻤﺮﺍﺣﻞ ﺗﺴﻠﺴﻼً ﻣﺤﺪﺩﺍً ﻣﻦ ﺍﻟﻄﻠﺒﺎﺕ‪ ،‬ﺣﺎﻭﻝ ﺇﺭﺳﺎﻝ ﻫﺬﻩ‬
‫ﺍﻟﻄﻠﺒﺎﺕﺧﺎﺭﺝ ﺍﻟﺘﺴﻠﺴﻞ ﺍﻟﻤﺘﻮﻗﻊ‪ .‬ﺣﺎﻭﻝ ﺗﺨﻄﻲ ﻣﺮﺍﺣﻞ ﻣﻌﻴﻨﺔ‪ ،‬ﻭﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﻣﺮﺣﻠﺔ‬
‫ﻭﺍﺣﺪﺓﺃﻛﺜﺮ ﻣﻦ ﻣﺮﺓ‪ ،‬ﻭﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺍﻟﻤﺮﺍﺣﻞ ﺍﻟﺴﺎﺑﻘﺔ ﺑﻌﺪ ﺍﻟﻤﺮﺍﺣﻞ ﺍﻟﻼﺣﻘﺔ‪.‬‬

‫‪9.2.2‬ﻳﻤﻜﻦ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺗﺴﻠﺴﻞ ﺍﻟﻤﺮﺍﺣﻞ ﻋﺒﺮ ﺳﻠﺴﻠﺔ ﻣﻦﻳﺤﺼﻞﺃﻭﺑﺮﻳﺪ‬


‫ﻃﻠﺒﺎﺕﻋﻨﺎﻭﻳﻦ ‪ URL‬ﻣﻤﻴﺰﺓ‪ ،‬ﺃﻭ ﻗﺪ ﺗﺘﻀﻤﻦ ﺇﺭﺳﺎﻝ ﻣﺠﻤﻮﻋﺎﺕ ﻣﺨﺘﻠﻔﺔ ﻣﻦ ﺍﻟﻤﻌﻠﻤﺎﺕ ﺇﻟﻰ‬
‫ﻋﻨﻮﺍﻥ‪ URL‬ﻧﻔﺴﻪ‪ .‬ﻳﻤﻜﻨﻚ ﺗﺤﺪﻳﺪ ﺍﻟﻤﺮﺣﻠﺔ ﺍﻟﺘﻲ‬
‫‪843‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫ﻳﺘﻢﻃﻠﺒﻬﺎ ﻋﻦ ﻃﺮﻳﻖ ﺇﺭﺳﺎﻝ ﺍﺳﻢ ﺩﺍﻟﺔ ﺃﻭ ﻓﻬﺮﺱ ﺿﻤﻦ ﻣﻌﻠﻤﺔ ﻃﻠﺐ‪ .‬ﺗﺄﻛﺪ ﻣﻦ ﻓﻬﻢ ﺁﻟﻴﺎﺕ‬
‫ﺍﻟﺘﻄﺒﻴﻖﻟﺘﻮﻓﻴﺮ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﻣﺮﺍﺣﻞ ﻣﺨﺘﻠﻔﺔ‪.‬‬

‫‪9.2.3‬ﺑﺎﻹﺿﺎﻓﺔ ﺇﻟﻰ ﺍﻟﺘﺪﺍﺧﻞ ﻣﻊ ﺗﺴﻠﺴﻞ ﺍﻟﺨﻄﻮﺍﺕ‪ ،‬ﺣﺎﻭﻝ ﺃﺧﺬ ﺍﻟﻤﻌﻠﻤﺎﺕ ﺍﻟﻤﺮُﺳﻠﺔ ﻓﻲ ﻣﺮﺣﻠﺔ ﻣﺎ‬
‫ﻣﻦﺍﻟﻌﻤﻠﻴﺔ ﻭﺇﺭﺳﺎﻟﻬﺎ ﻓﻲ ﻣﺮﺣﻠﺔ ﺃﺧﺮﻯ‪ .‬ﺇﺫﺍ ﺗﻢ ﺗﺤﺪﻳﺚ ﻋﻨﺎﺻﺮ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺫﺍﺕ ﺍﻟﺼﻠﺔ ﺿﻤﻦ‬
‫ﺣﺎﻟﺔﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﻓﻌﻠﻴﻚ ﺍﻟﺘﺤﻘﻖ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻥ ﺑﺈﻣﻜﺎﻧﻚ ﺍﺳﺘﻐﻼﻝ ﻫﺬﺍ ﺍﻟﺴﻠﻮﻙ ﻟﻠﺘﺪﺧﻞ ﻓﻲ‬
‫ﻣﻨﻄﻖﺍﻟﺘﻄﺒﻴﻖ‪.‬‬

‫‪9.2.4‬ﺇﺫﺍ ﻛﺎﻧﺖ ﻋﻤﻠﻴﺔ ﻣﺘﻌﺪﺩﺓ ﺍﻟﻤﺮﺍﺣﻞ ﺗﺘﻀﻤﻦ ﻣﺴﺘﺨﺪﻣﻴﻦ ﻣﺨﺘﻠﻔﻴﻦ ﻳﺠُﺮﻭﻥ ﻋﻤﻠﻴﺎﺕ ﻋﻠﻰ‬
‫ﻧﻔﺲﻣﺠﻤﻮﻋﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ‪ ،‬ﻓﺤﺎﻭﻝ ﺃﺧﺬ ﻛﻞ ﻣﻌُﺎﻣﻞ ﻳﺮُﺳﻠﻪ ﻣﺴﺘﺨﺪﻡ ﻭﺍﺣﺪ ﻭﺇﺭﺳﺎﻟﻪ‬
‫ﻛﻤﺴﺘﺨﺪﻡﺁﺧﺮ‪ .‬ﺇﺫﺍ ﺗﻢ ﻗﺒﻮﻟﻬﺎ ﻭﻣﻌﺎﻟﺠﺘﻬﺎ ﻛﻤﺴﺘﺨﺪﻡ ﺁﺧﺮ‪ ،‬ﻓﺎﺳﺘﻜﺸﻒ ﺁﺛﺎﺭ ﻫﺬﺍ ﺍﻟﺴﻠﻮﻙ‪،‬‬
‫ﻛﻤﺎﻫﻮ ﻣﻮﺿﺢ ﺳﺎﺑﻘﺎً‪.‬‬
‫‪9.2.5‬ﻓﻲ ﺳﻴﺎﻕ ﺍﻟﻮﻇﻴﻔﺔ ﺍﻟﻤﻄُﺒﻘّﺔ‪ ،‬ﺣﺎﻭﻝ ﻓﻬﻢ ﺍﻻﻓﺘﺮﺍﺿﺎﺕ ﺍﻟﺘﻲ ﻗﺪ ﻳﻜﻮﻥ ﺍﻟﻤﻄﻮﺭﻭﻥ ﻗﺪ‬
‫ﻭﺿﻌﻮﻫﺎ‪،‬ﻭﻣﻜﺎﻥ ﺍﻟﻬﺠﻮﻡ ﺍﻟﺮﺉﻴﺴﻲ‪ .‬ﺣﺎﻭﻝ ﺗﺤﺪﻳﺪ ﻃﺮﻕ ﺍﻧﺘﻬﺎﻙ ﻫﺬﻩ ﺍﻻﻓﺘﺮﺍﺿﺎﺕ‬
‫ﻭﺍﻟﺘﺴﺒﺐﻓﻲ ﺳﻠﻮﻛﻴﺎﺕ ﻏﻴﺮ ﻣﺮﻏﻮﺏ ﻓﻴﻬﺎ ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ‪.‬‬

‫‪9.2.6‬ﻋﻨﺪ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺩﻭﺍﻝ ﻣﺘﻌﺪﺩﺓ ﺍﻟﻤﺮﺍﺣﻞ ﺑﺸﻜﻞ ﻏﻴﺮ ﻣﺘﺴﻠﺴﻞ‪ ،‬ﻣﻦ ﺍﻟﺸﺎﺉﻊ ﻣﻮﺍﺟﻬﺔ‬
‫ﻣﺠﻤﻮﻋﺔﻣﺘﻨﻮﻋﺔ ﻣﻦ ﺍﻟﺤﺎﻻﺕ ﺍﻟﺸﺎﺫﺓ ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﻣﺜﻞ ﻣﺘﻐﻴﺮﺍﺕ ﺑﻘﻴﻢ ﻓﺎﺭﻏﺔ ﺃﻭ ﻏﻴﺮ‬
‫ﻣﻬُﻴﺄﺓ‪،‬ﻭﺣﺎﻻﺕ ﻏﻴﺮ ﻣﺤُﺪﺩﺓ ﺟﺰﺉﻴﺎً ﺃﻭ ﻏﻴﺮ ﻣﺘﺴﻘﺔ‪ ،‬ﻭﺳﻠﻮﻛﻴﺎﺕ ﺃﺧﺮﻯ ﻏﻴﺮ ﻣﺘﻮﻗﻌﺔ‪ .‬ﺍﺑﺤﺚ‬
‫ﻋﻦﺭﺳﺎﺉﻞ ﺧﻄﺄ ﻣﺜُﻴﺮﺓ ﻟﻼﻫﺘﻤﺎﻡ ﻭﻣﺨﺮﺟﺎﺕ ﺗﺼﺤﻴﺢ ﺃﺧﻄﺎء‪ ،‬ﻭﺍﻟﺘﻲ ﻳﻤُﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ‬
‫ﻟﻔﻬﻢﺁﻟﻴﺔ ﻋﻤﻞ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺪﺍﺧﻠﻴﺔ ﺑﺸﻜﻞ ﺃﻓﻀﻞ‪ ،‬ﻭﺑﺎﻟﺘﺎﻟﻲ ﺿﺒﻂ ﺍﻟﻬﺠﻮﻡ ﺍﻟﺤﺎﻟﻲ ﺃﻭ ﺃﻱ‬
‫ﻫﺠﻮﻡﺁﺧﺮ‪.‬‬

‫‪9.3‬ﺍﺧﺘﺒﺎﺭ ﻣﻌﺎﻟﺠﺔ ﺍﻟﻤﺪﺧﻼﺕ ﻏﻴﺮ ﺍﻟﻤﻜﺘﻤﻠﺔ‬


‫‪9.3.1‬ﺑﺎﻟﻨﺴﺒﺔ ﻟﻮﻇﺎﺉﻒ ﺍﻷﻣﺎﻥ ﺍﻟﺤﺮﺟﺔ ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﻭﺍﻟﺘﻲ ﺗﺘﻀﻤﻦ ﻣﻌﺎﻟﺠﺔ ﺍﻟﻌﺪﻳﺪ ﻣﻦ‬
‫ﻋﻨﺎﺻﺮﺇﺩﺧﺎﻝ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻭﺍﺗﺨﺎﺫ ﻗﺮﺍﺭ ﺑﻨﺎء ًﻋﻠﻴﻬﺎ‪ ،‬ﺍﺧﺘﺒﺮ ﻗﺪﺭﺓ ﺍﻟﺘﻄﺒﻴﻖ ﻋﻠﻰ ﺍﻟﺘﻜﻴﻒ ﻣﻊ‬
‫ﺍﻟﻄﻠﺒﺎﺕﺍﻟﺘﻲ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺇﺩﺧﺎﻝ ﻏﻴﺮ ﻣﻜﺘﻤﻞ‪.‬‬

‫‪9.3.2‬ﻟﻜﻞ ﻣﻌﻠﻤﺔ‪ ،‬ﺍﺣﺬﻑ ﺍﺳﻢ ﺍﻟﻤﻌﻠﻤﺔ ﻭﻗﻴﻤﺘﻬﺎ ﻣﻦ ﺍﻟﻄﻠﺐ‪ .‬ﺭﺍﻗﺐ ﺍﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺤﺜﺎً‬
‫ﻋﻦﺃﻱ ﺍﺧﺘﻼﻑ ﻓﻲ ﺳﻠﻮﻛﻪ‪ ،‬ﻭﻋﻦ ﺃﻱ ﺭﺳﺎﺉﻞ ﺧﻄﺄ ﺗﺸُﻴﺮ ﺇﻟﻰ ﻣﻨﻄﻖ ﺍﻟﺘﻨﻔﻴﺬ‪.‬‬

‫‪9.3.3‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﻄﻠﺐ ﺍﻟﺬﻱ ﺗﻘﻮﻡ ﺑﻤﻌﺎﻟﺠﺘﻪ ﺟﺰءﺍً ﻣﻦ ﻋﻤﻠﻴﺔ ﻣﺘﻌﺪﺩﺓ ﺍﻟﻤﺮﺍﺣﻞ‪ ،‬ﻓﺎﺗﺒﻊ ﺍﻟﻌﻤﻠﻴﺔ ﺣﺘﻰ‬
‫ﺍﻛﺘﻤﺎﻟﻬﺎ‪،‬ﻷﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻗﺪ ﻳﺨﺰﻥ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺮﺳﻠﺔ ﻓﻲ ﻣﺮﺍﺣﻞ ﺳﺎﺑﻘﺔ ﺿﻤﻦ ﺍﻟﺠﻠﺴﺔ ﺛﻢ‬
‫ﻳﻌﺎﻟﺠﻬﺎﻓﻲ ﻣﺮﺣﻠﺔ ﻻﺣﻘﺔ‪.‬‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪844‬‬

‫‪9.4‬ﺍﺧﺘﺒﺎﺭ ﺣﺪﻭﺩ ﺍﻟﺜﻘﺔ‬


‫‪9.4.1‬ﺗﺤﻘﻖ ﻣﻦ ﻛﻴﻔﻴﺔ ﺗﻌﺎﻣﻞ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻊ ﺍﻻﻧﺘﻘﺎﻻﺕ ﺑﻴﻦ ﺃﻧﻮﺍﻉ ﻣﺨﺘﻠﻔﺔ ﻣﻦ ﺛﻘﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ‪.‬‬
‫ﺍﺑﺤﺚﻋﻦ ﻭﻇﻴﻔﺔ ﺗﺘﻴﺢ ﻟﻠﻤﺴﺘﺨﺪﻡ‪ ،‬ﺍﻟﺬﻱ ﻳﺘﻤﺘﻊ ﺑﺤﺎﻟﺔ ﺛﻘﺔ ﻣﻌﻴﻨﺔ‪ ،‬ﺗﺠﻤﻴﻊ ﻗﺪﺭ ﻣﻦ‬
‫ﺍﻟﻤﻌﻠﻮﻣﺎﺕﺍﻟﻤﺘﻌﻠﻘﺔ ﺑﻬﻮﻳﺘﻪ‪.‬‬
‫ﻋﻠﻰﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﻗﺪ ﻳﻘﺪﻡ ﻣﺴﺘﺨﺪﻡ ﻣﺠﻬﻮﻝ ﻣﻌﻠﻮﻣﺎﺕ ﺷﺨﺼﻴﺔ ﺃﺛﻨﺎء ﺍﻟﺘﺴﺠﻴﻞ‬
‫ﺍﻟﺬﺍﺗﻲ‪،‬ﺃﻭ ﻳﻤﻀﻲ ﻓﻲ ﺟﺰء ﻣﻦ ﻋﻤﻠﻴﺔ ﺍﺳﺘﺮﺩﺍﺩ ﺍﻟﺤﺴﺎﺏ ﺍﻟﻤﺼﻤﻤﺔ ﻟﺘﺤﺪﻳﺪ ﻫﻮﻳﺘﻪ‪.‬‬

‫‪9.4.2‬ﺣﺎﻭﻝ ﺇﻳﺠﺎﺩ ﻃﺮﻕ ﻹﺟﺮﺍء ﺍﻧﺘﻘﺎﻻﺕ ﻏﻴﺮ ﺳﻠﻴﻤﺔ ﻋﺒﺮ ﺣﺪﻭﺩ ﺍﻟﺜﻘﺔ ﻣﻦ ﺧﻼﻝ ﺗﺠﻤﻴﻊ ﺍﻟﺤﺎﻟﺔ‬
‫ﺫﺍﺕﺍﻟﺼﻠﺔ ﻓﻲ ﻣﻨﻄﻘﺔ ﻣﺎ‪ ،‬ﺛﻢ ﺍﻻﻧﺘﻘﺎﻝ ﺇﻟﻰ ﻣﻨﻄﻘﺔ ﺃﺧﺮﻯ ﺑﻄﺮﻳﻘﺔ ﻏﻴﺮ ﻃﺒﻴﻌﻴﺔ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ‬
‫ﺍﻟﻤﺜﺎﻝ‪،‬ﺑﻌﺪ ﺇﻛﻤﺎﻝ ﺟﺰء ﻣﻦ ﻋﻤﻠﻴﺔ ﺍﺳﺘﺮﺩﺍﺩ ﺍﻟﺤﺴﺎﺏ‪ ،‬ﺣﺎﻭﻝ ﺍﻻﻧﺘﻘﺎﻝ ﺇﻟﻰ ﺻﻔﺤﺔ ﺧﺎﺻﺔ‬
‫ﺑﻤﺴﺘﺨﺪﻡﻣﺼُﺎﺩﻕ ﻋﻠﻴﻪ‪ .‬ﺗﺤﻘﻖ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﻌُﻄﻴﻚ ﻣﺴﺘﻮﻯ ﺛﻘﺔ ﻏﻴﺮ ﻣﻨﺎﺳﺐ‬
‫ﻋﻨﺪﺍﻻﻧﺘﻘﺎﻝ ﺑﻬﺬﻩ ﺍﻟﻄﺮﻳﻘﺔ‪.‬‬

‫‪9.4.3‬ﺣﺎﻭﻝ ﺗﺤﺪﻳﺪ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﺑﺈﻣﻜﺎﻧﻚ ﺍﻻﺳﺘﻔﺎﺩﺓ ﻣﻦ ﺃﻱ ﻭﻇﻴﻔﺔ ﺫﺍﺕ ﺍﻣﺘﻴﺎﺯ ﺃﻋﻠﻰ ﺑﺸﻜﻞ ﻣﺒﺎﺷﺮ‬
‫ﺃﻭﻏﻴﺮ ﻣﺒﺎﺷﺮ ﻟﻠﻮﺻﻮﻝ ﺇﻟﻰ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﺃﻭ ﺍﺳﺘﻨﺘﺎﺟﻬﺎ‪.‬‬

‫‪9.5‬ﺍﺧﺘﺒﺎﺭ ﻣﻨﻄﻖ ﺍﻟﻤﻌﺎﻣﻼﺕ‬


‫‪9.5.1‬ﻓﻲ ﺍﻟﺤﺎﻻﺕ ﺍﻟﺘﻲ ﻳﻔﺮﺽ ﻓﻴﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ ﺣﺪﻭﺩﺍً ﻋﻠﻰ ﺍﻟﻤﻌﺎﻣﻼﺕ‪ ،‬ﺍﺧﺘﺒﺮ ﺁﺛﺎﺭ ﺇﺭﺳﺎﻝ ﻗﻴﻢ‬
‫ﺳﻠﺒﻴﺔ‪.‬ﻓﻲ ﺣﺎﻝ ﻗﺒﻮﻟﻬﺎ‪ ،‬ﻗﺪ ﻳﻜﻮﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺗﺠﺎﻭﺯ ﺍﻟﺤﺪﻭﺩ ﺑﺈﺟﺮﺍء ﻣﻌﺎﻣﻼﺕ ﻛﺒﻴﺮﺓ ﻓﻲ‬
‫ﺍﻻﺗﺠﺎﻩﺍﻟﻤﻌﺎﻛﺲ‪.‬‬

‫‪9.5.2‬ﺗﺤﻘﻖ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻥ ﺑﺈﻣﻜﺎﻧﻚ ﺍﺳﺘﺨﺪﺍﻡ ﺳﻠﺴﻠﺔ ﻣﻦ ﺍﻟﻤﻌﺎﻣﻼﺕ ﺍﻟﻤﺘﺘﺎﻟﻴﺔ ﻹﻧﺸﺎء ﺣﺎﻟﺔ‬
‫ﻳﻤﻜﻨﻚﺍﺳﺘﻐﻼﻟﻬﺎ ﻟﻐﺮﺽ ﻣﻔﻴﺪ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪ ،‬ﻗﺪ ﺗﺘﻤﻜﻦ ﻣﻦ ﺇﺟﺮﺍء ﻋﺪﺓ ﺗﺤﻮﻳﻼﺕ‬
‫ﻣﻨﺨﻔﻀﺔﺍﻟﻘﻴﻤﺔ ﺑﻴﻦ ﺍﻟﺤﺴﺎﺑﺎﺕ ﻟﺘﺠﻤﻴﻊ ﺭﺻﻴﺪ ﻛﺒﻴﺮ ﻛﺎﻥ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ ﻳﻬﺪﻑ ﺇﻟﻰ‬
‫ﻣﻨﻌﻪ‪.‬‬

‫‪9.5.3‬ﺇﺫﺍ ﻗﺎﻡ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺘﻌﺪﻳﻞ ﺍﻷﺳﻌﺎﺭ ﺃﻭ ﻏﻴﺮﻫﺎ ﻣﻦ ﺍﻟﻘﻴﻢ ﺍﻟﺤﺴﺎﺳﺔ ﺑﻨﺎء ًﻋﻠﻰ ﻣﻌﺎﻳﻴﺮ ﺗﺤُﺪﺩﻫﺎ‬
‫ﺑﻴﺎﻧﺎﺕﺃﻭ ﺇﺟﺮﺍءﺍﺕ ﺧﺎﺿﻌﺔ ﻟﺴﻴﻄﺮﺓ ﺍﻟﻤﺴﺘﺨﺪﻡ‪ ،‬ﻓﻌﻠﻴﻚ ﺃﻭﻻ ًﻓﻬﻢ ﺍﻟﺨﻮﺍﺭﺯﻣﻴﺎﺕ ﺍﻟﺘﻲ‬
‫ﻳﺴﺘﺨﺪﻣﻬﺎﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﻭﺍﻟﻨﻘﻄﺔ ﺍﻟﺘﻲ ﺗﺠُﺮﻯ ﻓﻴﻬﺎ ﺍﻟﺘﻌﺪﻳﻼﺕ ﺿﻤﻦ ﻣﻨﻄﻘﻪ‪ .‬ﺣﺪﺩ ﻣﺎ ﺇﺫﺍ‬
‫ﻛﺎﻧﺖﻫﺬﻩ ﺍﻟﺘﻌﺪﻳﻼﺕ ﺗﺠُﺮﻯ ﻟﻤﺮﺓ ﻭﺍﺣﺪﺓ ﻓﻘﻂ‪ ،‬ﺃﻭ ﻣﺎ ﺇﺫﺍ ﻛﺎﻧﺖ ﺗﺮُﺍﺟﻊ ﺍﺳﺘﺠﺎﺑﺔ ًﻹﺟﺮﺍءﺍﺕ‬
‫ﺃﺧﺮﻯﻳﻘﻮﻡ ﺑﻬﺎ ﺍﻟﻤﺴﺘﺨﺪﻡ‪.‬‬

‫‪9.5.4‬ﺣﺎﻭﻝ ﺇﻳﺠﺎﺩ ﻃﺮﻕ ﻟﻠﺘﻼﻋﺐ ﺑﺴﻠﻮﻙ ﺍﻟﺘﻄﺒﻴﻖ ﻹﺩﺧﺎﻟﻪ ﻓﻲ ﺣﺎﻟﺔ ﺣﻴﺚ ﻻ ﺗﺘﻮﺍﻓﻖ ﺍﻟﺘﻌﺪﻳﻼﺕ‬
‫ﺍﻟﺘﻲﻃﺒﻘﻬﺎ ﻣﻊ ﺍﻟﻤﻌﺎﻳﻴﺮ ﺍﻷﺻﻠﻴﺔ ﺍﻟﺘﻲ ﻗﺼﺪﻫﺎ ﻣﺼﻤﻤﻮﻩ‪.‬‬
‫‪845‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫‪10‬ﺍﺧﺘﺒﺎﺭﺍﺕ ﻟﺜﻐﺮﺍﺕ ﺍﻻﺳﺘﻀﺎﻓﺔ ﺍﻟﻤﺸﺘﺮﻛﺔ‬

‫‪.10.1‬ﻓﺼﻞ ﺍﻻﺧﺘﺒﺎﺭﺍﺕ ﻓﻲ ﺍﻟﺒﻨﻰ ﺍﻟﺘﺤﺘﻴﺔ ﺍﻟﻤﺸﺘﺮﻛﺔ‬

‫‪.10.2‬ﺍﺧﺘﺒﺎﺭ ﺍﻟﻔﺼﻞ ﺑﻴﻦ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﻤﺴﺘﻀﺎﻓﺔ ﻋﻠﻰ ‪ASP‬‬

‫ﺍﻟﺸﻜﻞ‪:11-21‬ﺍﺧﺘﺒﺎﺭ ﻧﻘﺎﻁ ﺍﻟﻀﻌﻒ ﻓﻲ ﺍﻻﺳﺘﻀﺎﻓﺔ ﺍﻟﻤﺸﺘﺮﻛﺔ‬

‫‪ 10.1‬ﺍﺧﺘﺒﺎﺭﺍﻟﻔﺼﻞ ﻓﻲ ﺍﻟﺒﻨﻰ ﺍﻟﺘﺤﺘﻴﺔ ﺍﻟﻤﺸﺘﺮﻛﺔ‬


‫‪ 10.1.1‬ﺇﺫﺍﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻣﺴُﺘﻀﺎﻓﺎً ﻋﻠﻰ ﺑﻨﻴﺔ ﺗﺤﺘﻴﺔ ﻣﺸﺘﺮﻛﺔ‪ ،‬ﻓﺘﺤﻘﻖ ﻣﻦ ﺁﻟﻴﺎﺕ ﺍﻟﻮﺻﻮﻝ ﺍﻟﻤﺘُﺎﺣﺔ‬
‫ﻟﻤﺴﺘﺨﺪﻣﻲﺍﻟﺒﻴﺉﺔ ﺍﻟﻤﺸﺘﺮﻛﺔ ﻟﺘﺤﺪﻳﺚ ﻭﺇﺩﺍﺭﺓ ﻣﺤﺘﻮﺍﻫﻢ ﻭﻭﻇﺎﺉﻔﻬﻢ‪ .‬ﺿﻊ ﻓﻲ ﺍﻋﺘﺒﺎﺭﻙ‬
‫ﺍﻷﺳﺉﻠﺔﺍﻟﺘﺎﻟﻴﺔ‪:‬‬

‫ﻫﻞﻳﺴﺘﺨﺪﻡ ﻣﺮﻓﻖ ﺍﻟﻮﺻﻮﻝ ﻋﻦ ﺑﻌﺪ ﺑﺮﻭﺗﻮﻛﻮﻻً ﺁﻣﻨﺎً ﻭﺑﻨﻴﺔ ﺃﺳﺎﺳﻴﺔ ﻣﻌﺰﺯﺓ ﺑﺸﻜﻞ‬ ‫‪-‬‬

‫ﻣﻨﺎﺳﺐ؟‬
‫ﻫﻞﻳﻤﻜﻦ ﻟﻠﻌﻤﻼء ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺍﻟﻤﻠﻔﺎﺕ ﻭﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﺍﻟﻤﻮﺍﺭﺩ ﺍﻷﺧﺮﻯ ﺍﻟﺘﻲ ﻻ ﻳﺤﺘﺎﺟﻮﻥ ﺇﻟﻰ‬ ‫‪-‬‬

‫ﺍﻟﻮﺻﻮﻝﺇﻟﻴﻬﺎ ﺑﺸﻜﻞ ﺷﺮﻋﻲ؟‬


‫ﻫﻞﻳﻤﻜﻦ ﻟﻠﻌﻤﻼء ﺍﻟﺤﺼﻮﻝ ﻋﻠﻰ ﻏﻼﻑ ﺗﻔﺎﻋﻠﻲ ﺩﺍﺧﻞ ﺑﻴﺉﺔ ﺍﻻﺳﺘﻀﺎﻓﺔ ﻭﺗﻨﻔﻴﺬ ﺃﻭﺍﻣﺮ‬ ‫‪-‬‬

‫ﻋﺸﻮﺍﺉﻴﺔ؟‬
‫‪ 10.1.2‬ﺇﺫﺍﺗﻢ ﺍﺳﺘﺨﺪﺍﻡ ﺗﻄﺒﻴﻖ ﺧﺎﺹ ﻟﻠﺴﻤﺎﺡ ﻟﻠﻌﻤﻼء ﺑﺘﻜﻮﻳﻦ ﺑﻴﺉﺔ ﻣﺸﺘﺮﻛﺔ ﻭﺗﺨﺼﻴﺼﻬﺎ‪ ،‬ﻓﻔﻜﺮ‬
‫ﻓﻲﺍﺳﺘﻬﺪﺍﻑ ﻫﺬﺍ ﺍﻟﺘﻄﺒﻴﻖ ﻛﻄﺮﻳﻘﺔ ﻟﺘﻬﺪﻳﺪ ﺍﻟﺒﻴﺉﺔ ﻧﻔﺴﻬﺎ ﻭﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﻔﺮﺩﻳﺔ ﺍﻟﺘﻲ‬
‫ﺗﻌﻤﻞﺩﺍﺧﻠﻬﺎ‪.‬‬

‫‪ 10.1.3‬ﺇﺫﺍﻛﺎﻥ ﺑﺈﻣﻜﺎﻧﻚ ﺗﺤﻘﻴﻖ ﺗﻨﻔﻴﺬ ﺍﻷﻭﺍﻣﺮ ﺃﻭ ﺣﻘﻦ ‪ SQL‬ﺃﻭ ﺍﻟﻮﺻﻮﻝ ﺍﻟﻌﺸﻮﺍﺉﻲ ﺇﻟﻰ ﺍﻟﻤﻠﻔﺎﺕ‬
‫ﺩﺍﺧﻞﺗﻄﺒﻴﻖ ﻭﺍﺣﺪ‪ ،‬ﻓﻘﻢ ﺑﺎﻟﺘﺤﻘﻴﻖ ﺑﻌﻨﺎﻳﺔ ﻟﻤﻌﺮﻓﺔ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﻫﺬﺍ ﻳﻮﻓﺮ ﺃﻱ ﻃﺮﻳﻘﺔ ﻟﺘﺼﻌﻴﺪ‬
‫ﻫﺠﻮﻣﻚﻻﺳﺘﻬﺪﺍﻑ ﺗﻄﺒﻴﻘﺎﺕ ﺃﺧﺮﻯ‪.‬‬

‫‪ 10.2‬ﺍﺧﺘﺒﺎﺭﺍﻟﻔﺼﻞ ﺑﻴﻦ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﻤﺴﺘﻀﺎﻓﺔ ﻋﻠﻰ ‪ASP‬‬


‫‪ 10.2.1‬ﺇﺫﺍﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﺗﺎﺑﻌﺎً ﻟﺨﺪﻣﺔ ﻣﺴﺘﻀﺎﻓﺔ ﻋﻠﻰ ‪ ،ASP‬ﺗﺘﺄﻟﻒ ﻣﻦ ﻣﺰﻳﺞ ﻣﻦ ﺍﻟﻤﻜﻮﻧﺎﺕ‬
‫ﺍﻟﻤﺸﺘﺮﻛﺔﻭﺍﻟﻤﺨﺼﺼﺔ‪ ،‬ﻓﺤﺪﺩ ﺃﻱ ﻣﻜﻮﻧﺎﺕ ﻣﺸﺘﺮﻛﺔ‪ ،‬ﻣﺜﻞ ﺁﻟﻴﺎﺕ ﺍﻟﺘﺴﺠﻴﻞ ﻭﺍﻟﻮﻇﺎﺉﻒ‬
‫ﺍﻹﺩﺍﺭﻳﺔﻭﻣﻜﻮﻧﺎﺕ ﺃﻛﻮﺍﺩ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ‪ .‬ﺣﺎﻭﻝ ﺍﺳﺘﻐﻼﻟﻬﺎ ﻻﺧﺘﺮﺍﻕ ﺍﻟﺠﺰء ﺍﻟﻤﺸﺘﺮﻙ ﻣﻦ‬
‫ﺍﻟﺘﻄﺒﻴﻖ‪،‬ﻭﺑﺎﻟﺘﺎﻟﻲ ﻣﻬﺎﺟﻤﺔ ﺗﻄﺒﻴﻘﺎﺕ ﺃﺧﺮﻯ‪.‬‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪846‬‬

‫‪ 10.2.2‬ﺇﺫﺍﺍﺳﺘﺨُﺪﻣﺖ ﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ ﻣﺸﺘﺮﻛﺔ ﺿﻤﻦ ﺃﻱ ﻧﻮﻉ ﻣﻦ ﺍﻟﺒﻴﺉﺎﺕ ﺍﻟﻤﺸﺘﺮﻛﺔ‪ ،‬ﻓﺄﺟﺮ ِ‬


‫ﺗﺪﻗﻴﻘﺎًﺷﺎﻣﻼً ﻟﺘﻜﻮﻳﻦ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ‪ ،‬ﻭﻣﺴﺘﻮﻯ ﺍﻟﺘﺼﺤﻴﺢ‪ ،‬ﻭﺑﻨﻴﺔ ﺍﻟﺠﺪﻭﻝ‪ ،‬ﻭﺍﻷﺫﻭﻧﺎﺕ‬
‫ﺑﺎﺳﺘﺨﺪﺍﻡﺃﺩﺍﺓ ﻓﺤﺺ ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻣﺜﻞ ‪ .NGSSquirrel‬ﻗﺪ ﺗﺘُﻴﺢ ﺃﻱ ﻋﻴﻮﺏ ﻓﻲ‬
‫ﻧﻤﻮﺫﺝﺃﻣﺎﻥ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻓﺮﺻﺔ ًﻟﺘﺼﻌﻴﺪ ﺍﻟﻬﺠﻮﻡ ﻣﻦ ﺩﺍﺧﻞ ﺗﻄﺒﻴﻖ ﺇﻟﻰ ﺁﺧﺮ‪.‬‬

‫ﺍﺧﺘﺒﺎﺭﻧﻘﺎﻁ ﺿﻌﻒ ﺧﺎﺩﻡ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ‬ ‫‪11‬‬

‫‪.11.1‬ﺍﺧﺘﺒﺎﺭ ﺑﻴﺎﻧﺎﺕ ﺍﻻﻋﺘﻤﺎﺩ ﺍﻻﻓﺘﺮﺍﺿﻴﺔ‬

‫‪.11.2‬ﺍﺧﺘﺒﺎﺭ ﺍﻟﻤﺤﺘﻮﻯ ﺍﻻﻓﺘﺮﺍﺿﻲ‬

‫‪.11.3‬ﺍﺧﺘﺒﺎﺭ ﺃﺳﺎﻟﻴﺐ ‪ HTTP‬ﺍﻟﺨﻄﻴﺮﺓ‬

‫‪.11.4‬ﺍﺧﺘﺒﺎﺭ ﻭﻇﻴﻔﺔ ﺍﻟﻮﻛﻴﻞ‬

‫‪.11.5‬ﺍﺧﺘﺒﺎﺭ ﺳﻮء ﺗﻜﻮﻳﻦ ﺍﻻﺳﺘﻀﺎﻓﺔ ﺍﻻﻓﺘﺮﺍﺿﻴﺔ‬

‫‪.11.6‬ﺍﺧﺘﺒﺎﺭ ﺃﺧﻄﺎء ﺑﺮﻧﺎﻣﺞ ﺧﺎﺩﻡ ﺍﻟﻮﻳﺐ‬

‫‪.11.7‬ﺍﺧﺘﺒﺎﺭ ﺟﺪﺍﺭ ﺣﻤﺎﻳﺔ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫ﺍﻟﺸﻜﻞ‪:12-21‬ﺍﺧﺘﺒﺎﺭ ﻧﻘﺎﻁ ﺿﻌﻒ ﺧﺎﺩﻡ ﺍﻟﻮﻳﺐ‬

‫‪11.1‬ﺍﺧﺘﺒﺎﺭ ﺑﻴﺎﻧﺎﺕ ﺍﻻﻋﺘﻤﺎﺩ ﺍﻻﻓﺘﺮﺍﺿﻴﺔ‬


‫‪11.1.1‬ﻗﻢ ﺑﻤﺮﺍﺟﻌﺔ ﻧﺘﺎﺉﺞ ﺗﻤﺎﺭﻳﻦ ﺗﻌﻴﻴﻦ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺨﺎﺹ ﺑﻚ ﻟﺘﺤﺪﻳﺪ ﺧﺎﺩﻡ ﺍﻟﻮﻳﺐ ﻭﺍﻟﺘﻘﻨﻴﺎﺕ‬
‫ﺍﻷﺧﺮﻯﺍﻟﻤﺴﺘﺨﺪﻣﺔ ﺍﻟﺘﻲ ﻗﺪ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﻭﺍﺟﻬﺎﺕ ﺇﺩﺍﺭﻳﺔ ﻳﻤﻜﻦ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻴﻬﺎ‪.‬‬

‫‪11.1.2‬ﻗﻢ ﺑﺈﺟﺮﺍء ﻓﺤﺺ ﻣﻨﻔﺬ ﻟﺨﺎﺩﻡ ﺍﻟﻮﻳﺐ ﻟﺘﺤﺪﻳﺪ ﺃﻱ ﻭﺍﺟﻬﺎﺕ ﺇﺩﺍﺭﻳﺔ ﺗﻌﻤﻞ ﻋﻠﻰ ﻣﻨﻔﺬ ﻣﺨﺘﻠﻒ‬
‫ﻋﻦﺗﻄﺒﻴﻖ ﺍﻟﻬﺪﻑ ﺍﻟﺮﺉﻴﺴﻲ‪.‬‬
‫‪11.1.3‬ﺑﺎﻟﻨﺴﺒﺔ ﻷﻱ ﻭﺍﺟﻬﺎﺕ ﺗﻢ ﺗﺤﺪﻳﺪﻫﺎ‪ ،‬ﺭﺍﺟﻊ ﻭﺛﺎﺉﻖ ﺍﻟﺸﺮﻛﺔ ﺍﻟﻤﺼﻨﻌﺔ ﻭﻗﻮﺍﺉﻢ ﻛﻠﻤﺎﺕ ﺍﻟﻤﺮﻭﺭ‬
‫ﺍﻻﻓﺘﺮﺍﺿﻴﺔﺍﻟﺸﺎﺉﻌﺔ ﻟﻠﺤﺼﻮﻝ ﻋﻠﻰ ﺑﻴﺎﻧﺎﺕ ﺍﻻﻋﺘﻤﺎﺩ ﺍﻻﻓﺘﺮﺍﺿﻴﺔ‪.‬‬
‫‪11.1.4‬ﺇﺫﺍ ﻟﻢ ﺗﻨﺠﺢ ﺑﻴﺎﻧﺎﺕ ﺍﻻﻋﺘﻤﺎﺩ ﺍﻻﻓﺘﺮﺍﺿﻴﺔ‪ ،‬ﻓﺎﺳﺘﺨﺪﻡ ﺍﻟﺨﻄﻮﺍﺕ ﺍﻟﻤﺪﺭﺟﺔ ﻓﻲ ﺍﻟﻘﺴﻢ ‪4‬‬
‫ﻟﻤﺤﺎﻭﻟﺔﺗﺨﻤﻴﻦ ﺑﻴﺎﻧﺎﺕ ﺍﻻﻋﺘﻤﺎﺩ ﺍﻟﺼﺎﻟﺤﺔ‪.‬‬
‫‪11.1.5‬ﺇﺫﺍ ﺗﻤﻜﻨﺖ ﻣﻦ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﻭﺍﺟﻬﺔ ﺇﺩﺍﺭﻳﺔ‪ ،‬ﻓﺮﺍﺟﻊ ﺍﻟﻮﻇﺎﺉﻒ ﺍﻟﻤﺘﺎﺣﺔ ﻭﺣﺪﺩ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﻣﻦ‬
‫ﺍﻟﻤﻤﻜﻦﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻟﻤﺰﻳﺪ ﻣﻦ ﺍﻟﻤﺴﺎﺱ ﺑﺎﻟﻤﻀﻴﻒ ﻭﻣﻬﺎﺟﻤﺔ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺮﺉﻴﺴﻲ‪.‬‬
‫‪847‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫‪11.2‬ﺍﺧﺘﺒﺎﺭ ﺍﻟﻤﺤﺘﻮﻯ ﺍﻻﻓﺘﺮﺍﺿﻲ‬


‫‪11.2.1‬ﻗﻢ ﺑﻤﺮﺍﺟﻌﺔ ﻧﺘﺎﺉﺞ ﻓﺤﺺ ‪) Nikto‬ﺍﻟﺨﻄﻮﺓ ‪ (1.4.1‬ﻟﺘﺤﺪﻳﺪ ﺃﻱ ﻣﺤﺘﻮﻯ ﺍﻓﺘﺮﺍﺿﻲ ﻗﺪ ﻳﻜﻮﻥ‬
‫ﻣﻮﺟﻮﺩﺍًﻋﻠﻰ ﺍﻟﺨﺎﺩﻡ ﻭﻟﻜﻨﻪ ﻟﻴﺲ ﺟﺰءﺍً ﻻ ﻳﺘﺠﺰﺃ ﻣﻦ ﺍﻟﺘﻄﺒﻴﻖ‪.‬‬

‫‪11.2.2‬ﺍﺳﺘﺨﺪﻡ ﻣﺤﺮﻛﺎﺕ ﺍﻟﺒﺤﺚ ﻭﺍﻟﻤﻮﺍﺭﺩ ﺍﻷﺧﺮﻯ ﻣﺜﻞ‪www.exploit-db.com‬ﻭ‬


‫‪www.osvdb.org‬ﻟﺘﺤﺪﻳﺪ ﺍﻟﻤﺤﺘﻮﻯ ﻭﺍﻟﻮﻇﺎﺉﻒ ﺍﻻﻓﺘﺮﺍﺿﻴﺔ ﺍﻟﻤﻀﻤﻨﺔ ﻓﻲ ﺍﻟﺘﻘﻨﻴﺎﺕ ﺍﻟﺘﻲ‬
‫ﺗﺴﺘﺨﺪﻣﻬﺎ‪.‬ﺇﻥ ﺃﻣﻜﻦ‪ ،‬ﻗﻢ ﺑﺘﺜﺒﻴﺘﻬﺎ ﻣﺤﻠﻴﺎً‪ ،‬ﻭﺭﺍﺟﻌﻬﺎ ﺑﺤﺜﺎً ﻋﻦ ﺃﻱ ﻭﻇﺎﺉﻒ ﺍﻓﺘﺮﺍﺿﻴﺔ‬
‫ﻳﻤﻜﻨﻚﺍﺳﺘﻐﻼﻟﻬﺎ ﻓﻲ ﻫﺠﻮﻣﻚ‪.‬‬

‫‪11.2.3‬ﻓﺤﺺ ﺍﻟﻤﺤﺘﻮﻯ ﺍﻻﻓﺘﺮﺍﺿﻲ ﺑﺤﺜﺎً ﻋﻦ ﺃﻱ ﻭﻇﻴﻔﺔ ﺃﻭ ﻧﻘﺎﻁ ﺿﻌﻒ ﻗﺪ ﺗﺘﻤﻜﻦ ﻣﻦ ﺍﺳﺘﻐﻼﻟﻬﺎ‬


‫ﻟﻤﻬﺎﺟﻤﺔﺍﻟﺨﺎﺩﻡ ﺃﻭ ﺍﻟﺘﻄﺒﻴﻖ‪.‬‬

‫‪11.3‬ﺍﺧﺘﺒﺎﺭ ﺃﺳﺎﻟﻴﺐ ‪ HTTP‬ﺍﻟﺨﻄﻴﺮﺓ‬


‫‪11.3.1‬ﺍﺳﺘﺨﺪﻡﺧﻴﺎﺭﺍﺕﻃﺮﻳﻘﺔ ﻟﻌﺮﺽ ﻃﺮﻕ ‪ HTTP‬ﺍﻟﺘﻲ ﻳﻌُﻠﻦ ﺍﻟﺨﺎﺩﻡ ﻋﻦ ﺗﻮﻓﺮﻫﺎ‪ .‬ﻳﺮُﺟﻰ ﻣﻼﺣﻈﺔ‬
‫ﺃﻧﻪﻗﺪ ﻳﺘﻢ ﺗﻔﻌﻴﻞ ﻃﺮﻕ ﻣﺨﺘﻠﻔﺔ ﻓﻲ ﻣﺠﻠﺪﺍﺕ ﻣﺨﺘﻠﻔﺔ‪ .‬ﻳﻤﻜﻨﻚ ﺇﺟﺮﺍء ﻓﺤﺺ ﻟﻠﺜﻐﺮﺍﺕ‬
‫ﺍﻷﻣﻨﻴﺔﻓﻲ ‪ Paros‬ﻹﺟﺮﺍء ﻫﺬﺍ ﺍﻟﻔﺤﺺ‪.‬‬

‫‪11.3.2‬ﺟﺮﺏ ﻛﻞ ﻃﺮﻳﻘﺔ ﺗﻢ ﺍﻹﺑﻼﻍ ﻋﻨﻬﺎ ﻳﺪﻭﻳﺎً ﻟﻠﺘﺄﻛﺪ ﻣﻦ ﺇﻣﻜﺎﻧﻴﺔ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﺑﺎﻟﻔﻌﻞ‪.‬‬

‫‪11.3.3‬ﺇﺫﺍ ﻭﺟﺪﺕ ﺃﻥ ﺑﻌﺾ ﻃﺮﻕ ‪ WebDAV‬ﻣﻤﻜﻨّﺔ‪ ،‬ﻓﺎﺳﺘﺨﺪﻡ ﻋﻤﻴﻞ ‪WebDAVenabled‬‬


‫ﻟﻤﺰﻳﺪﻣﻦ ﺍﻟﺘﺤﻘﻴﻖ‪ ،‬ﻣﺜﻞ ‪ Microsoft FrontPage‬ﺃﻭ ﺧﻴﺎﺭ ﻓﺘﺢ ﻛﻤﺠﻠﺪ ﻭﻳﺐ ﻓﻲ‬
‫‪.Internet Explorer‬‬

‫‪11.4‬ﺍﺧﺘﺒﺎﺭ ﻭﻇﻴﻔﺔ ﺍﻟﻮﻛﻴﻞ‬


‫‪11.4.1‬ﺍﺳﺘﺨﺪﺍﻡ ﻛﻠﻴﻬﻤﺎﻳﺤﺼﻞﻭﻳﺘﺼﻞﺍﻟﻄﻠﺒﺎﺕ‪ ،‬ﺣﺎﻭﻝ ﺍﺳﺘﺨﺪﺍﻡ ﺧﺎﺩﻡ ﺍﻟﻮﻳﺐ ﻛﻮﻛﻴﻞ ﻟﻼﺗﺼﺎﻝ‬
‫ﺑﺨﻮﺍﺩﻡﺃﺧﺮﻯ ﻋﻠﻰ ﺍﻹﻧﺘﺮﻧﺖ ﻭﺍﺳﺘﺮﺩﺍﺩ ﺍﻟﻤﺤﺘﻮﻯ ﻣﻨﻬﺎ‪.‬‬

‫‪11.4.2‬ﺍﺳﺘﺨﺪﺍﻡ ﻛﻠﻴﻬﻤﺎﻳﺤﺼﻞﻭﻳﺘﺼﻞﺗﺤﺎﻭﻝ ﺍﻟﻄﻠﺒﺎﺕ ﺍﻻﺗﺼﺎﻝ ﺑﻌﻨﺎﻭﻳﻦ ‪ IP‬ﻭﻣﻨﺎﻓﺬ ﻣﺨﺘﻠﻔﺔ ﺩﺍﺧﻞ‬


‫ﺍﻟﺒﻨﻴﺔﺍﻟﺘﺤﺘﻴﺔ ﻟﻼﺳﺘﻀﺎﻓﺔ‪.‬‬
‫‪11.4.3‬ﺍﺳﺘﺨﺪﺍﻡ ﻛﻠﻴﻬﻤﺎﻳﺤﺼﻞﻭﻳﺘﺼﻞﻓﻲ ﺍﻟﻄﻠﺒﺎﺕ‪ ،‬ﺣﺎﻭﻝ ﺍﻻﺗﺼﺎﻝ ﺑﺄﺭﻗﺎﻡ ﺍﻟﻤﻨﺎﻓﺬ ﺍﻟﻤﺸﺘﺮﻛﺔ ﻋﻠﻰ‬
‫ﺧﺎﺩﻡﺍﻟﻮﻳﺐ ﻧﻔﺴﻪ ﻋﻦ ﻃﺮﻳﻖ ﺗﺤﺪﻳﺪ ‪ 127.0.0.1‬ﻛﻤﻀﻴﻒ ﻣﺴﺘﻬﺪﻑ ﻓﻲ ﺍﻟﻄﻠﺐ‪.‬‬

‫‪11.5‬ﺍﺧﺘﺒﺎﺭ ﺳﻮء ﺗﻜﻮﻳﻦ ﺍﻻﺳﺘﻀﺎﻓﺔ ﺍﻻﻓﺘﺮﺍﺿﻴﺔ‬


‫‪11.5.1‬ﺇﺭﺳﺎﻝﻳﺤﺼﻞﺍﻟﻄﻠﺒﺎﺕ ﺇﻟﻰ ﺍﻟﺪﻟﻴﻞ ﺍﻟﺠﺬﺭ ﺑﺎﺳﺘﺨﺪﺍﻡ ﻣﺎ ﻳﻠﻲ‪:‬‬

‫ﺍﻟﺼﺤﻴﺢﻳﺴﺘﻀﻴﻒﺭﺃﺱ ﺍﻟﺼﻔﺤﺔ‬ ‫‪-‬‬

‫ﻭﻫﻤﻲﻳﺴﺘﻀﻴﻒﺭﺃﺱ ﺍﻟﺼﻔﺤﺔ‬ ‫‪-‬‬


‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪848‬‬

‫ﻋﻨﻮﺍﻥ‪ IP‬ﺍﻟﺨﺎﺹ ﺑﺎﻟﺨﺎﺩﻡ ﻓﻲﻳﺴﺘﻀﻴﻒﺭﺃﺱ ﺍﻟﺼﻔﺤﺔ‬ ‫‪-‬‬

‫ﻻﻳﺴﺘﻀﻴﻒﺍﻟﺮﺃﺱ )ﺍﺳﺘﺨﺪﻡ ‪ HTTP/1.0‬ﻓﻘﻂ(‬ ‫‪-‬‬

‫‪١١.٥.٢‬ﻗﺎﺭﻥ ﺍﻻﺳﺘﺠﺎﺑﺎﺕ ﻟﻬﺬﻩ ﺍﻟﻄﻠﺒﺎﺕ‪ .‬ﺍﻟﻨﺘﻴﺠﺔ ﺍﻟﺸﺎﺉﻌﺔ ﻫﻲ ﺃﻥ ﺍﻟﺘﻮﺟﻴﻬﺎﺕ‬


‫ﻳﺘﻢﺍﻟﺤﺼﻮﻝ ﻋﻠﻰ ﻗﻮﺍﺉﻢ ﺍﻟﻘﺼﺺ ﻋﻨﺪ ﺍﺳﺘﺨﺪﺍﻡ ﻋﻨﻮﺍﻥ ‪ IP‬ﺍﻟﺨﺎﺹ ﺑﺎﻟﺨﺎﺩﻡ ﻓﻲﻳﺴﺘﻀﻴﻒ‬
‫ﻗﺪﺗﺠﺪ ﺃﻳﻀﺎً ﺇﻣﻜﺎﻧﻴﺔ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﻣﺤﺘﻮﻯ ﺍﻓﺘﺮﺍﺿﻲ ﻣﺨﺘﻠﻒ‪.‬‬
‫‪١١.٥.٣‬ﺇﺫﺍ ﻻﺣﻈﺖ َﺳﻠﻮﻛﺎً ﻣﺨﺘﻠﻔﺎً‪ ،‬ﻓﻜﺮّ ﻓﻲ ﺗﻤﺎﺭﻳﻦ ﺗﻌﻴﻴﻦ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﻤﻮﺿﺤﺔ ﻓﻲ ﺍﻟﻘﺴﻢ ‪١‬‬
‫ﺑﺎﺳﺘﺨﺪﺍﻡﺍﺳﻢ ﺍﻟﻤﻀﻴﻒ ﺍﻟﺬﻱ ﻭﻟﺪّ ﻧﺘﺎﺉﺞ ﻣﺨﺘﻠﻔﺔ‪ .‬ﺗﺄﻛﺪ ﻣﻦ ﺇﺟﺮﺍء ﻓﺤﺺ ‪Nikto‬‬
‫ﺑﺎﺳﺘﺨﺪﺍﻡ‪-‬ﺍﺳﺘﻀﺎﻓﺔ ﺍﻓﺘﺮﺍﺿﻴﺔﺧﻴﺎﺭ ﻟﺘﺤﺪﻳﺪ ﺃﻱ ﻣﺤﺘﻮﻯ ﺍﻓﺘﺮﺍﺿﻲ ﺭﺑﻤﺎ ﺗﻢ ﺗﺠﺎﻫﻠﻪ ﺃﺛﻨﺎء‬
‫ﺗﻌﻴﻴﻦﺍﻟﺘﻄﺒﻴﻖ ﺍﻷﻭﻟﻲ‪.‬‬

‫‪11.6‬ﺍﺧﺘﺒﺎﺭ ﺃﺧﻄﺎء ﺑﺮﺍﻣﺞ ﺧﺎﺩﻡ ﺍﻟﻮﻳﺐ‬


‫‪11.6.1‬ﻗﻢ ﺑﺘﺸﻐﻴﻞ ‪ Nessus‬ﻭﺃﻱ ﻣﺎﺳﺤﺎﺕ ﺿﻮﺉﻴﺔ ﻣﻤﺎﺛﻠﺔ ﺃﺧﺮﻯ ﻣﺘﻮﻓﺮﺓ ﻟﺪﻳﻚ ﻟﺘﺤﺪﻳﺪ ﺃﻱ‬
‫ﺛﻐﺮﺍﺕﻣﻌﺮﻭﻓﺔ ﻓﻲ ﺑﺮﻧﺎﻣﺞ ﺧﺎﺩﻡ ﺍﻟﻮﻳﺐ ﺍﻟﺬﻱ ﺗﻘﻮﻡ ﺑﻤﻬﺎﺟﻤﺘﻪ‪.‬‬
‫‪11.6.2‬ﻗﻢ ﺑﻤﺮﺍﺟﻌﺔ ﺍﻟﻤﻮﺍﺭﺩ ﻣﺜﻞ ‪ Security Focus‬ﻭ‪ Bugtraq‬ﻭ‪ Full Disclosure‬ﻟﻠﻌﺜﻮﺭ ﻋﻠﻰ‬
‫ﺗﻔﺎﺻﻴﻞﺃﻱ ﺛﻐﺮﺍﺕ ﺗﻢ ﺍﻛﺘﺸﺎﻓﻬﺎ ﻣﺆﺧﺮﺍً ﻭﺍﻟﺘﻲ ﺭﺑﻤﺎ ﻟﻢ ﻳﺘﻢ ﺇﺻﻼﺣﻬﺎ ﻋﻠﻰ ﺟﻬﺎﺯﻙ‬
‫ﺍﻟﻤﺴﺘﻬﺪﻑ‪.‬‬
‫‪١١.٦.٣‬ﺇﺫﺍ ﻃﻮُﺭِّ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻦ ﻗﺒِﻞ ﺟﻬﺔ ﺧﺎﺭﺟﻴﺔ‪ ،‬ﻓﺘﺤﻘﻖ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻥ ﻣﺰﻭﺩﺍً ﺑﺨﺎﺩﻡ ﻭﻳﺐ ﺧﺎﺹ ﺑﻪ )‬
‫ﻋﺎﺩﺓ ًﻣﺎ ﻳﻜﻮﻥ ﺧﺎﺩﻣﺎً ﻣﻔﺘﻮﺡ ﺍﻟﻤﺼﺪﺭ(‪ .‬ﺇﺫﺍ ﻛﺎﻥ ﻣﺰﻭﺩﺍً ﺑﻪ‪ ،‬ﻓﺘﺤﻘﻖ ﻣﻦ ﻭﺟﻮﺩ ﺃﻱ ﺛﻐﺮﺍﺕ‬
‫ﺃﻣﻨﻴﺔ‪.‬ﻳﺮُﺟﻰ ﺍﻟﻌﻠﻢ ﺃﻧﻪ ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ‪ ،‬ﻗﺪ ﻳﻜﻮﻥ ﻗﺪ ﺗﻢ ﺗﻌﺪﻳﻞ ﺷﻌﺎﺭ ﺍﻟﺨﺎﺩﻡ ﺍﻟﻘﻴﺎﺳﻲ‪.‬‬

‫‪11.6.4‬ﺇﺫﺍ ﻛﺎﻥ ﺫﻟﻚ ﻣﻤﻜﻨﺎً‪ ،‬ﻓﻜﺮ ﻓﻲ ﺇﺟﺮﺍء ﺗﺜﺒﻴﺖ ﻣﺤﻠﻲ ﻟﻠﺒﺮﻧﺎﻣﺞ ﺍﻟﺬﻱ ﺗﻬﺎﺟﻤﻪ‪ ،‬ﻭﻗﻢ ﺑﺈﺟﺮﺍء‬
‫ﺍﺧﺘﺒﺎﺭﺍﺗﻚﺍﻟﺨﺎﺻﺔ ﻟﻠﻌﺜﻮﺭ ﻋﻠﻰ ﻧﻘﺎﻁ ﺿﻌﻒ ﺟﺪﻳﺪﺓ ﻟﻢ ﻳﺘﻢ ﺍﻛﺘﺸﺎﻓﻬﺎ ﺃﻭ ﺗﺪﺍﻭﻟﻬﺎ ﻋﻠﻰ ﻧﻄﺎﻕ‬
‫ﻭﺍﺳﻊ‪.‬‬

‫‪11.7‬ﺍﺧﺘﺒﺎﺭ ﺟﺪﺍﺭ ﺣﻤﺎﻳﺔ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬


‫‪11.7.1‬ﺃﺭﺳﻞ ﺍﺳﻢ ﻣﻌﻠﻤﺔ ﻋﺸﻮﺍﺉﻴﺎً ﺇﻟﻰ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻊ ﺣﻤﻮﻟﺔ ﻫﺠﻮﻡ ﻭﺍﺿﺤﺔ ﻓﻲ ﺍﻟﻘﻴﻤﺔ‪ ،‬ﻭﻳﻔﻀﻞ‬
‫ﺃﻥﻳﺘﻀﻤﻦ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻻﺳﻢ ﻭ‪/‬ﺃﻭ ﺍﻟﻘﻴﻤﺔ ﻓﻲ ﺍﻻﺳﺘﺠﺎﺑﺔ‪ .‬ﺇﺫﺍ ﺻﺪ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﻬﺠﻮﻡ‪ ،‬ﻓﻤﻦ‬
‫ﺍﻟﻤﺮﺟﺢﺃﻥ ﻳﻜﻮﻥ ﺫﻟﻚ ﺑﺴﺒﺐ ﺩﻓﺎﻉ ﺧﺎﺭﺟﻲ‪.‬‬

‫‪11.7.2‬ﺇﺫﺍ ﻛﺎﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺇﺭﺳﺎﻝ ﻣﺘﻐﻴﺮ ﻳﺘﻢ ﺇﺭﺟﺎﻋﻪ ﻓﻲ ﺍﺳﺘﺠﺎﺑﺔ ﺍﻟﺨﺎﺩﻡ‪ ،‬ﻓﻘﻢ ﺑﺈﺭﺳﺎﻝ ﻣﺠﻤﻮﻋﺔ‬
‫ﻣﻦﺳﻼﺳﻞ ‪ fuzz‬ﻭﺍﻟﻤﺘﻐﻴﺮﺍﺕ ﺍﻟﻤﺸﻔﺮﺓ ﻟﺘﺤﺪﻳﺪ ﺳﻠﻮﻙ ﺩﻓﺎﻋﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ ﻹﺩﺧﺎﻝ‬
‫ﺍﻟﻤﺴﺘﺨﺪﻡ‪.‬‬
‫‪11.7.3‬ﻗﻢ ﺑﺘﺄﻛﻴﺪ ﻫﺬﺍ ﺍﻟﺴﻠﻮﻙ ﻋﻦ ﻃﺮﻳﻖ ﺗﻨﻔﻴﺬ ﻧﻔﺲ ﺍﻟﻬﺠﻤﺎﺕ ﻋﻠﻰ ﺍﻟﻤﺘﻐﻴﺮﺍﺕ ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ‪.‬‬

‫‪11.7.4‬ﻟﺠﻤﻴﻊ ﺳﻼﺳﻞ ﻭﻃﻠﺒﺎﺕ ﺍﻟﺘﺸﻮﻳﺶ‪ ،‬ﺍﺳﺘﺨﺪﻡ ﺳﻼﺳﻞ ﺣﻤﻮﻟﺔ ﻣﻦ ﻏﻴﺮ ﺍﻟﻤﺮﺟﺢ ﻭﺟﻮﺩﻫﺎ ﻓﻲ‬
‫ﻗﺎﻋﺪﺓﺑﻴﺎﻧﺎﺕ ﺍﻟﺘﻮﻗﻴﻊ ﺍﻟﻘﻴﺎﺳﻴﺔ‪ .‬ﻋﻠﻰ ﺍﻟﺮﻏﻢ ﻣﻦ ﺇﻋﻄﺎء ﺃﻣﺜﻠﺔ ﻋﻠﻰ‬
‫‪849‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫ﻣﻦﺍﻟﻤﺴﺘﺤﻴﻞ ﺣﺴﺐ ﺍﻟﺘﻌﺮﻳﻒ ﺃﻥ ﺗﻔﻌﻞ ﺫﻟﻚ‪ ،‬ﺗﺠﻨﺐ ﺍﺳﺘﺨﺪﺍﻡ ‪/‬ﺇﻟﺦ‪/‬ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭﺃﻭ ‪/sam/‬‬
‫‪windows/system32/config‬ﻛﺤﻤﻮﻻﺕ ﻻﺳﺘﺮﺟﺎﻉ ﺍﻟﻤﻠﻔﺎﺕ‪ .‬ﺗﺠﻨﺐ ﺃﻳﻀﺎً ﺍﺳﺘﺨﺪﺍﻡ‬
‫ﻣﺼﻄﻠﺤﺎﺕﻣﺜﻞ >ﻧﺺ<ﻓﻲ ﻫﺠﻮﻡ ‪ XSS‬ﻭﺍﺳﺘﺨﺪﺍﻡﻳﺤُﺬﺭًِ)(ﺃﻭ‪xss‬ﻛﺤﻤﻮﻻﺕ ‪.XSS‬‬

‫‪11.7.5‬ﺇﺫﺍ ﺗﻢ ﺣﻈﺮ ﻃﻠﺐ ﻣﻌﻴﻦ‪ ،‬ﻓﺤﺎﻭﻝ ﺇﺭﺳﺎﻝ ﻧﻔﺲ ﺍﻟﻤﻌﻠﻤﺔ ﻓﻲ ﻣﻮﻗﻊ ﺃﻭ ﺳﻴﺎﻕ ﻣﺨﺘﻠﻒ‪ .‬ﻋﻠﻰ‬
‫ﺳﺒﻴﻞﺍﻟﻤﺜﺎﻝ‪ ،‬ﺃﺭﺳﻞ ﻧﻔﺲ ﺍﻟﻤﻌﻠﻤﺔ ﻓﻲ ﻋﻨﻮﺍﻥ ‪ URL‬ﻓﻲﻳﺤﺼﻞﻃﻠﺐ‪ ،‬ﺿﻤﻦ ﻧﺺﺑﺮﻳﺪ‬
‫ﺍﻟﻄﻠﺐ‪،‬ﻭﺩﺍﺧﻞ ﻋﻨﻮﺍﻥ ‪ URL‬ﻓﻲﺑﺮﻳﺪﻃﻠﺐ‪.‬‬

‫‪11.7.6‬ﻋﻠﻰ ‪ ،ASP.NET‬ﺣﺎﻭﻝ ﺃﻳﻀﺎً ﺇﺭﺳﺎﻝ ﺍﻟﻤﻌﻠﻤﺔ ﻛﻤﻠﻒ ﺗﻌﺮﻳﻒ ﺍﺭﺗﺒﺎﻁ‪ .‬ﻭﺍﺟﻬﺔ ﺑﺮﻣﺠﺔ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ‬
‫ﻃﻠﺐ‪.‬ﺍﻟﻤﻌﻠﻤﺎﺕ]“‪[”foo‬ﺳﻴﺘﻢ ﺍﺳﺘﺮﺩﺍﺩ ﻗﻴﻤﺔ ﻣﻠﻒ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﺍﻟﻤﺴﻤﻰﻓﻮ‬
‫ﺇﺫﺍﻛﺎﻧﺖ ﺍﻟﻤﻌﻠﻤﺔﻓﻮﻟﻢ ﻳﺘﻢ ﺍﻟﻌﺜﻮﺭ ﻋﻠﻴﻬﺎ ﻓﻲ ﺳﻠﺴﻠﺔ ﺍﻻﺳﺘﻌﻼﻡ ﺃﻭ ﻧﺺ ﺍﻟﺮﺳﺎﻟﺔ‪.‬‬
‫‪11.7.7‬ﻗﻢ ﺑﻤﺮﺍﺟﻌﺔ ﺟﻤﻴﻊ ﺍﻟﻄﺮﻕ ﺍﻷﺧﺮﻯ ﻹﺩﺧﺎﻝ ﺇﺩﺧﺎﻝ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﻤﻘﺪﻣﺔ ﻓﻲ ﺍﻟﻔﺼﻞ ‪ ،4‬ﻭﺍﺧﺘﺮ‬
‫ﺃﻱﻃﺮﻕ ﻏﻴﺮ ﻣﺤﻤﻴﺔ‪.‬‬
‫‪11.7.8‬ﺣﺪﺩ ﺍﻟﻤﻮﺍﻗﻊ ﺍﻟﺘﻲ ﺗﺮُﺳﻞ ﻓﻴﻬﺎ ﻣﺪﺧﻼﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ )ﺃﻭ ﻳﻤُﻜﻦ ﺇﺭﺳﺎﻟﻬﺎ( ﺑﺘﻨﺴﻴﻖ ﻏﻴﺮ‬
‫ﻗﻴﺎﺳﻲ‪،‬ﻣﺜﻞ ﺍﻟﺘﺴﻠﺴﻞ ﺃﻭ ﺍﻟﺘﺮﻣﻴﺰ‪ .‬ﺇﺫﺍ ﻟﻢ ﻳﺘﻮﻓﺮ ﺃﻱ ٌّﻣﻨﻬﺎ‪ ،‬ﻓﻘﻢ ﺑﺒﻨﺎء ﺳﻠﺴﻠﺔ ﺍﻟﻬﺠﻮﻡ ﻋﻦ‬
‫ﻃﺮﻳﻖﺍﻟﺘﺠﻤﻴﻊ ﻭ‪/‬ﺃﻭ ﺗﻮﺳﻴﻌﻬﺎ ﻋﺒﺮ ﻣﺘﻐﻴﺮﺍﺕ ﻣﺘﻌﺪﺩﺓ‪) .‬ﻻﺣﻆ ﺃﻧﻪ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﻬﺪﻑ ﻫﻮ‬
‫‪ ،ASP.NET‬ﻓﻘﺪ ﺗﺘﻤﻜﻦ ﻣﻦ ﺍﺳﺘﺨﺪﺍﻡ ‪ HPP‬ﻟﺮﺑﻂ ﺍﻟﻬﺠﻮﻡ ﺑﺎﺳﺘﺨﺪﺍﻡ ﻣﻮﺍﺻﻔﺎﺕ ﻣﺘﻌﺪﺩﺓ‬
‫ﻟﻨﻔﺲﺍﻟﻤﺘﻐﻴﺮ(‪.‬‬

‫ﺍﻟﺸﻴﻜﺎﺕﺍﻟﻤﺘﻨﻮﻋﺔ‬ ‫‪12‬‬

‫‪.12.1‬ﺍﺧﺘﺒﺎﺭ ﺍﻟﻬﺠﻤﺎﺕ ﺍﻟﻘﺎﺉﻤﺔ ﻋﻠﻰ ‪DOM‬‬

‫‪.12.2‬ﺍﺧﺘﺒﺎﺭ ﺛﻐﺮﺍﺕ ﺍﻟﺨﺼﻮﺻﻴﺔ ﺍﻟﻤﺤﻠﻴﺔ‬

‫‪.12.3‬ﺍﺧﺘﺒﺎﺭ ﺗﺸﻔﻴﺮ ‪ SSL‬ﺍﻟﻀﻌﻴﻒ‬

‫‪.١٢.٤‬ﺗﺤﻘﻖ ﻣﻦ ﺗﻜﻮﻳﻦ ﺳﻴﺎﺳﺔ ﺍﻟﻤﺆﺳﺴﺔ ﻧﻔﺴﻬﺎ‬

‫ﺍﻟﺸﻜﻞ‪:13-21‬ﺍﻟﺸﻴﻜﺎﺕ ﺍﻟﻤﺘﻨﻮﻋﺔ‬

‫‪12.1‬ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺍﻟﻬﺠﻤﺎﺕ ﺍﻟﻘﺎﺉﻤﺔ ﻋﻠﻰ ‪DOM‬‬


‫‪١٢.١.١‬ﻗﻢ ﺑﻤﺮﺍﺟﻌﺔ ﺳﺮﻳﻌﺔ ﻟﻜﻞ ﺟﺰء ﻣﻦ ﺷﻔﺮﺓ ﺟﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ ﺍﻟﻮﺍﺭﺩﺓ ﻣﻦ ﺍﻟﺘﻄﺒﻴﻖ‪ .‬ﺣﺪﺩ ﺃﻱ ﺛﻐﺮﺍﺕ‬
‫ﺃﻣﻨﻴﺔﻣﻦ ﻧﻮﻉ ‪ XSS‬ﺃﻭ ﺇﻋﺎﺩﺓ ﺗﻮﺟﻴﻪ ﻳﻤﻜﻦ ﺍﺳﺘﻐﻼﻟﻬﺎ ﺑﺎﺳﺘﺨﺪﺍﻡ ﻋﻨﻮﺍﻥ ‪ URL‬ﻣﻌُﺪ ّﻹﺩﺧﺎﻝ‬
‫ﺑﻴﺎﻧﺎﺕﺿﺎﺭﺓ ﺇﻟﻰ ﻧﻤﻮﺫﺝ ‪ DOM‬ﻟﻠﺼﻔﺤﺔ ﺍﻟﻤﻌﻨﻴﺔ‪ .‬ﻗﻢ ﺑﺘﻀﻤﻴﻦ ﺟﻤﻴﻊ ﻣﻠﻔﺎﺕ ﺟﺎﻓﺎ‬
‫ﺳﻜﺮﻳﺒﺖﺍﻟﻤﺴﺘﻘﻠﺔ‪.‬‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪850‬‬

‫ﻭﺍﻟﺒﺮﺍﻣﺞﺍﻟﻨﺼﻴﺔ ﺍﻟﻤﻀﻤﻨﺔ ﻓﻲ ﺻﻔﺤﺎﺕ ‪) HTML‬ﺍﻟﺜﺎﺑﺘﺔ ﻭﺍﻟﻤﻮﻟﺪﺓ ﺩﻳﻨﺎﻣﻴﻜﻴﺎً(‪.‬‬

‫‪12.1.2‬ﺗﺤﺪﻳﺪ ﺟﻤﻴﻊ ﺍﺳﺘﺨﺪﺍﻣﺎﺕ ﻭﺍﺟﻬﺎﺕ ﺑﺮﻣﺠﺔ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﺘﺎﻟﻴﺔ‪ ،‬ﻭﺍﻟﺘﻲ ﻳﻤﻜﻦ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻟﻠﻮﺻﻮﻝ ﺇﻟﻰ ﺑﻴﺎﻧﺎﺕ‬
‫‪ DOM‬ﺍﻟﺘﻲ ﻳﻤﻜﻦ ﺍﻟﺘﺤﻜﻢ ﻓﻴﻬﺎ ﻋﺒﺮ ﻋﻨﻮﺍﻥ ‪ URL‬ﻣﺼﻤﻢ ﺧﺼﻴﺼﺎً‪:‬‬

‫ﻣﻮﻗﻊﺍﻟﻤﺴﺘﻨﺪ‬
‫ﻋﻨﻮﺍﻥ‪ URL‬ﻟﻠﻤﺴﺘﻨﺪ‬
‫ﺍﻟﻤﺴﺘﻨﺪ‪ URL.‬ﻏﻴﺮ ﻣﺸﻔﺮ‬
‫ﻭﺛﻴﻘﺔﻣﺮﺟﻌﻴﺔ‬
‫ﻣﻮﻗﻊﺍﻟﻨﺎﻓﺬﺓ‬

‫‪١٢.١.٣‬ﺗﺘﺒﻊ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺫﺍﺕ ﺍﻟﺼﻠﺔ ﻣﻦ ﺧﻼﻝ ﺍﻟﻜﻮﺩ ﻟﺘﺤﺪﻳﺪ ﺍﻹﺟﺮﺍءﺍﺕ ﺍﻟﺘﻲ ﺗﻨُﻔﺬَّ ﺑﻬﺎ‪ .‬ﺇﺫﺍ ﺗﻢ ﺗﻤﺮﻳﺮ‬
‫ﺍﻟﺒﻴﺎﻧﺎﺕ)ﺃﻭ ﻧﺴﺨﺔ ﻣﻌُﺪَﻟَّﺔ ﻣﻨﻬﺎ( ﺇﻟﻰ ﺇﺣﺪﻯ ﻭﺍﺟﻬﺎﺕ ﺑﺮﻣﺠﺔ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﺘﺎﻟﻴﺔ‪ ،‬ﻓﻘﺪ ﻳﻜﻮﻥ‬
‫ﺍﻟﺘﻄﺒﻴﻖﻋﺮُﺿﺔ ًﻟﻬﺠﻤﺎﺕ ‪:XSS‬‬
‫()‪document.write‬‬
‫()‪document.writeln‬‬
‫()‪eval‬‬
‫‪document.body.innerHtml‬‬
‫()‪window.execScript‬‬
‫()‪window.setInterval‬‬
‫()‪window.setTimeout‬‬

‫‪12.1.4‬ﺇﺫﺍ ﺗﻢ ﺗﻤﺮﻳﺮ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺇﻟﻰ ﺇﺣﺪﻯ ﻭﺍﺟﻬﺎﺕ ﺑﺮﻣﺠﺔ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﺘﺎﻟﻴﺔ‪ ،‬ﻓﻘﺪ ﻳﻜﻮﻥ ﺍﻟﺘﻄﺒﻴﻖ‬
‫ﻋﺮﺿﺔﻟﻬﺠﻮﻡ ﺇﻋﺎﺩﺓ ﺍﻟﺘﻮﺟﻴﻪ‪:‬‬
‫ﻣﻮﻗﻊﺍﻟﻤﺴﺘﻨﺪ‬
‫ﻋﻨﻮﺍﻥ‪ URL‬ﻟﻠﻤﺴﺘﻨﺪ‬
‫ﻭﺛﻴﻘﺔ‪.‬ﻓﺘﺢ)(‬
‫‪window.location.href‬‬
‫()‪window.navigate‬‬
‫ﻧﺎﻓﺬﺓ‪.‬ﻓﺘﺢ)(‬

‫‪12.2‬ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﻧﻘﺎﻁ ﺿﻌﻒ ﺍﻟﺨﺼﻮﺻﻴﺔ ﺍﻟﻤﺤﻠﻴﺔ‬


‫‪12.2.1‬ﺭﺍﺟﻊ ﺍﻟﺴﺠﻼﺕ ﺍﻟﺘﻲ ﺃﻧﺸﺄﻫﺎ ﻭﻛﻴﻞ ﺍﻻﻋﺘﺮﺍﺽ ﺍﻟﺨﺎﺹ ﺑﻚ ﻟﺘﺤﺪﻳﺪ ﺟﻤﻴﻊ‬
‫ﻣﺠﻤﻮﻋﺔﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁﺍﻟﺘﻮﺟﻴﻬﺎﺕ ﺍﻟﻮﺍﺭﺩﺓ ﻣﻦ ﺍﻟﺘﻄﺒﻴﻖ ﺃﺛﻨﺎء ﺍﻻﺧﺘﺒﺎﺭ‪ .‬ﺇﺫﺍ ﻛﺎﻥ ﺃﻱ‬
‫ﻣﻨﻬﺎﻳﺤﺘﻮﻱ ﻋﻠﻰﺗﻨﺘﻬﻲ ﺻﻼﺣﻴﺘﻬﺎﺇﺫﺍ ﻛﺎﻧﺖ ﺍﻟﺴﻤﺔ ﺫﺍﺕ ﺗﺎﺭﻳﺦ ﻣﺴﺘﻘﺒﻠﻲ‪ ،‬ﻓﺴﻴﺘﻢ ﺗﺨﺰﻳﻦ‬
‫ﻣﻠﻒﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﺑﻮﺍﺳﻄﺔ ﻣﺘﺼﻔﺤﺎﺕ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺣﺘﻰ ﺫﻟﻚ ﺍﻟﺘﺎﺭﻳﺦ‪ .‬ﺭﺍﺟﻊ‬
‫ﻣﺤﺘﻮﻯﺃﻱ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﺭﺗﺒﺎﻁ ﺩﺍﺉﻤﺔ ﺑﺤﺜﺎً ﻋﻦ ﺑﻴﺎﻧﺎﺕ ﺣﺴﺎﺳﺔ‪.‬‬
‫‪١٢.٢.٢‬ﺇﺫﺍ ﺗﻢ ﺿﺒﻂ ﻣﻠﻒ ﺗﻌﺮﻳﻒ ﺍﺭﺗﺒﺎﻁ ﺩﺍﺉﻢ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﺃﻱ ﺑﻴﺎﻧﺎﺕ ﺣﺴﺎﺳﺔ‪ ،‬ﻓﻘﺪ ﻳﺘﻤﻜﻦ ﻣﻬﺎﺟﻢ‬
‫ﻣﺤﻠﻲﻣﻦ ﺍﻟﺘﻘﺎﻁ ﻫﺬﻩ ﺍﻟﺒﻴﺎﻧﺎﺕ‪ .‬ﺣﺘﻰ ﻟﻮ ﻛﺎﻧﺖ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻣﺸﻔﺮﺓ‪ ،‬ﺳﻴﺘﻤﻜﻦ ﺍﻟﻤﻬﺎﺟﻢ ﺍﻟﺬﻱ‬
‫ﻳﻠﺘﻘﻄﻬﺎﻣﻦ ﺇﻋﺎﺩﺓ ﺇﺭﺳﺎﻝ ﻣﻠﻒ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﺇﻟﻰ ﺍﻟﺘﻄﺒﻴﻖ ﻭﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺃﻱ ﺑﻴﺎﻧﺎﺕ ﺃﻭ‬
‫ﻭﻇﺎﺉﻒﻳﺘﻴﺤﻬﺎ ﺫﻟﻚ‪.‬‬
‫‪١٢.٢.٣‬ﺇﺫﺍ ﺗﻢ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺃﻱ ﺻﻔﺤﺎﺕ ﺗﻄﺒﻴﻖ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺑﻴﺎﻧﺎﺕ ﺣﺴﺎﺳﺔ ﻋﺒﺮ ‪ ،HTTP‬ﻓﺎﺑﺤﺚ‬
‫ﻋﻦﺃﻱ ﺗﻮﺟﻴﻬﺎﺕ ﺗﺨﺰﻳﻦ ﻣﺆﻗﺖ ﺿﻤﻦ ﺍﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺨﺎﺩﻡ‪ .‬ﺇﺫﺍ ﻟﻢ ﺗﻜﻦ ﺃﻱ ﻣﻦ ﺍﻟﺘﻮﺟﻴﻬﺎﺕ‬
‫ﺍﻟﺘﺎﻟﻴﺔﻣﻮﺟﻮﺩﺓ )ﺳﻮﺍء ًﺿﻤﻦ ﺭﺅﻭﺱ ‪(HTTP‬‬
‫‪851‬‬ ‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬

‫ﺃﻭﺿﻤﻦ ﻋﻼﻣﺎﺕ ‪ HTML‬ﺍﻟﻮﺻﻔﻴﺔ‪ ،‬ﻗﺪ ﻳﺘﻢ ﺗﺨﺰﻳﻦ ﺍﻟﺼﻔﺤﺔ ﺍﻟﻤﻌﻨﻴﺔ ﻣﺆﻗﺘﺎً ﺑﻮﺍﺳﻄﺔ‬
‫ﻣﺘﺼﻔﺢﻭﺍﺣﺪ ﺃﻭ ﺃﻛﺜﺮ‪:‬‬
‫ﺗﺎﺭﻳﺦﺍﻻﻧﺘﻬﺎء‪0 :‬‬
‫ﺍﻟﺘﺤﻜﻢﻓﻲ ﺫﺍﻛﺮﺓ ﺍﻟﺘﺨﺰﻳﻦ ﺍﻟﻤﺆﻗﺖ‪ :‬ﻋﺪﻡ‬
‫ﻭﺟﻮﺩﺫﺍﻛﺮﺓ ﺗﺨﺰﻳﻦ ﻣﺆﻗﺖ‬

‫‪١٢.٢.٤‬ﺣﺪﺩ ﺃﻱ ﺣﺎﻻﺕ ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺘﻢ ﻓﻴﻬﺎ ﻧﻘﻞ ﺑﻴﺎﻧﺎﺕ ﺣﺴﺎﺳﺔ ﻋﺒﺮ ﻣﻌﻠﻤﺔ ‪ .URL‬ﻓﻲ ﺣﺎﻝ‬
‫ﻭﺟﻮﺩﺃﻱ ﺣﺎﻻﺕ‪ ،‬ﺍﻓﺤﺺ ﺳﺠﻞ ﺍﻟﻤﺘﺼﻔﺢ ﻟﻠﺘﺄﻛﺪ ﻣﻦ ﺗﺨﺰﻳﻦ ﻫﺬﻩ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻓﻴﻪ‪.‬‬

‫‪١٢.٢.٥‬ﻟﺠﻤﻴﻊ ﺍﻟﻨﻤﺎﺫﺝ ﺍﻟﻤﺴﺘﺨﺪﻣﺔ ﻟﺠﻤﻊ ﺑﻴﺎﻧﺎﺕ ﺣﺴﺎﺳﺔ ﻣﻦ ﺍﻟﻤﺴﺘﺨﺪﻡ )ﻣﺜﻞ ﺗﻔﺎﺻﻴﻞ ﺑﻄﺎﻗﺔ‬
‫ﺍﻻﺉﺘﻤﺎﻥ(‪ ،‬ﺭﺍﺟﻊ ﻣﺼﺪﺭ ‪ HTML‬ﻟﻠﻨﻤﻮﺫﺝ‪ .‬ﺇﺫﺍ ﻛﺎﻧﺖ ﺍﻟﺴﻤﺔ‬
‫ﺍﻹﻛﻤﺎﻝﺍﻟﺘﻠﻘﺎﺉﻲ=ﺇﻳﻘﺎﻑﺇﺫﺍ ﻟﻢ ﻳﺘﻢ ﺿﺒﻂ ﺫﻟﻚ‪ ،‬ﺳﻮﺍء ﺿﻤﻦ ﻋﻼﻣﺔ ﺍﻟﻨﻤﻮﺫﺝ ﺃﻭ ﻋﻼﻣﺔ ﺣﻘﻞ‬
‫ﺍﻹﺩﺧﺎﻝﺍﻟﻔﺮﺩﻱ‪ ،‬ﻳﺘﻢ ﺗﺨﺰﻳﻦ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺪﺧﻠﺔ ﺩﺍﺧﻞ ﺍﻟﻤﺘﺼﻔﺤﺎﺕ ﺍﻟﺘﻲ ﺗﺪﻋﻢ ﺍﻹﻛﻤﺎﻝ‬
‫ﺍﻟﺘﻠﻘﺎﺉﻲ‪،‬ﺑﺸﺮﻁ ﺃﻻ ﻳﻜﻮﻥ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻗﺪ ﻗﺎﻡ ﺑﺘﻌﻄﻴﻞ ﻫﺬﻩ ﺍﻟﻤﻴﺰﺓ‪.‬‬
‫‪12.2.6‬ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﻭﺟﻮﺩ ﺗﺨﺰﻳﻦ ﻣﺤﻠﻲ ﺧﺎﺹ ﺑﺎﻟﺘﻜﻨﻮﻟﻮﺟﻴﺎ‪.‬‬
‫‪12.2.6.1‬ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﻭﺟﻮﺩ ﻛﺎﺉﻨﺎﺕ ‪ Flash‬ﺍﻟﻤﺤﻠﻴﺔ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻹﺿﺎﻓﻲ ‪BetterPrivacy‬‬
‫ﻟﻤﺘﺼﻔﺢﻓﺎﻳﺮﻓﻮﻛﺲ‪.‬‬

‫‪12.2.6.2‬ﺗﺤﻘﻖ ﻣﻦ ﺃﻱ ﺗﺨﺰﻳﻦ ﻣﻌﺰﻭﻝ ﻟـ ‪ Silverlight‬ﻓﻲ ﻫﺬﺍ ﺍﻟﺪﻟﻴﻞ‪:‬‬


‫\‪{\AppData\LocalLow\Microsoft\Silverlight‬ﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ‬
‫}\‪C:\Users‬‬

‫‪12.2.6.3‬ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺃﻱ ﺍﺳﺘﺨﺪﺍﻡ ﻟﻠﺘﺨﺰﻳﻦ ﺍﻟﻤﺤﻠﻲ ‪.HTML5‬‬

‫‪12.3‬ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﻭﺟﻮﺩ ﺗﺸﻔﻴﺮ ‪ SSL‬ﺿﻌﻴﻒ‬


‫‪12.3.1‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺴﺘﺨﺪﻡ ‪ SSL‬ﻷﻱ ﻣﻦ ﺍﺗﺼﺎﻻﺗﻪ‪ ،‬ﻓﺎﺳﺘﺨﺪﻡ ﺍﻷﺩﺍﺓ ‪THCSSLCheck‬‬
‫ﻹﺩﺭﺍﺝﺍﻟﺘﺸﻔﻴﺮ ﻭﺍﻟﺒﺮﻭﺗﻮﻛﻮﻻﺕ ﺍﻟﻤﺪﻋﻮﻣﺔ‪.‬‬
‫‪12.3.2‬ﺇﺫﺍ ﺗﻢ ﺩﻋﻢ ﺃﻱ ﺗﺸﻔﻴﺮ ﺃﻭ ﺑﺮﻭﺗﻮﻛﻮﻻﺕ ﺿﻌﻴﻔﺔ ﺃﻭ ﻗﺪﻳﻤﺔ‪ ،‬ﻓﻘﺪ ﻳﺘﻤﻜﻦ ﺍﻟﻤﻬﺎﺟﻢ ﺍﻟﺬﻱ ﻳﺘﻤﺘﻊ‬
‫ﺑﻤﻮﻗﻊﻣﻨﺎﺳﺐ ﻣﻦ ﺗﻨﻔﻴﺬ ﻫﺠﻮﻡ ﻟﺨﻔﺾ ﻣﺴﺘﻮﻯ ﺃﻭ ﻓﻚ ﺗﺸﻔﻴﺮ ﺍﺗﺼﺎﻻﺕ ‪ SSL‬ﻟﻤﺴﺘﺨﺪﻡ‬
‫ﺍﻟﺘﻄﺒﻴﻖ‪،‬ﻭﺍﻟﺤﺼﻮﻝ ﻋﻠﻰ ﺇﻣﻜﺎﻧﻴﺔ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺑﻴﺎﻧﺎﺗﻪ ﺍﻟﺤﺴﺎﺳﺔ‪.‬‬

‫‪١٢.٣.٣‬ﺗﻌُﻠﻦ ﺑﻌﺾ ﺧﻮﺍﺩﻡ ﺍﻟﻮﻳﺐ ﻋﻦ ﺩﻋﻤﻬﺎ ﻟﺒﻌﺾ ﺍﻟﺸﻔﺮﺍﺕ ﻭﺍﻟﺒﺮﻭﺗﻮﻛﻮﻻﺕ ﺍﻟﻀﻌﻴﻔﺔ‪ ،‬ﻟﻜﻨﻬﺎ‬
‫ﺗﺮﻓﺾﺇﺗﻤﺎﻡ ﻋﻤﻠﻴﺔ ﺍﻟﻤﺼﺎﻓﺤﺔ ﺑﺎﺳﺘﺨﺪﺍﻣﻬﺎ ﺇﺫﺍ ﻃﻠﺒﻬﺎ ﺍﻟﻌﻤﻴﻞ‪ .‬ﻗﺪ ﻳﺆﺩﻱ ﻫﺬﺍ ﺇﻟﻰ ﻧﺘﺎﺉﺞ‬
‫ﺇﻳﺠﺎﺑﻴﺔﺧﺎﻃﺉﺔ ﻋﻨﺪ ﺍﺳﺘﺨﺪﺍﻡ ﺃﺩﺍﺓ ‪ .THCSSLCheck‬ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﻣﺘﺼﻔﺢ ﺃﻭﺑﺮﺍ‬
‫ﻟﻤﺤﺎﻭﻟﺔﺇﺗﻤﺎﻡ ﻋﻤﻠﻴﺔ ﺍﻟﻤﺼﺎﻓﺤﺔ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺑﺮﻭﺗﻮﻛﻮﻻﺕ ﺿﻌﻴﻔﺔ ﻣﺤُﺪﺩﺓ ﻟﻠﺘﺄﻛﺪ ﻣﻦ‬
‫ﺇﻣﻜﺎﻧﻴﺔﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻟﻠﻮﺻﻮﻝ ﺇﻟﻰ ﺍﻟﺘﻄﺒﻴﻖ‪.‬‬

‫‪12.4‬ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺗﻜﻮﻳﻦ ﺳﻴﺎﺳﺔ ﺍﻟﻤﺼﺪﺭ ﻧﻔﺴﻪ‬


‫‪12.4.1‬ﺍﻟﺘﺤﻘﻖ ﻣﻦ ‪/‬ﻣﻠﻒ ‪crossdomain.xml fi‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺴﻤﺢ ﺑﺎﻟﻮﺻﻮﻝ ﻏﻴﺮ ﺍﻟﻤﻘﻴﺪ )ﻋﻦ‬
‫ﻃﺮﻳﻖﺗﺤﺪﻳﺪ >ﺍﻟﺴﻤﺎﺡ ﺑﺎﻟﻮﺻﻮﻝ ﻣﻦ ﺍﻟﻤﺠﺎﻝ = “*” ‪،(</‬ﻛﺎﺉﻨﺎﺕ ﻓﻼﺵ‬
‫ﺍﻟﻔﺼﻞ‪-21‬ﻣﻨﻬﺠﻴﺔ ﺍﺧﺘﺮﺍﻕ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‬ ‫‪852‬‬

‫ﻣﻦﺃﻱ ﻣﻮﻗﻊ ﺁﺧﺮ‪ ،‬ﻳﻤﻜﻦ ﺇﺟﺮﺍء ﺗﻔﺎﻋﻞ ﺛﻨﺎﺉﻲ ﺍﻻﺗﺠﺎﻩ‪ ،‬ﺑﺎﻻﻋﺘﻤﺎﺩ ﻋﻠﻰ ﺟﻠﺴﺎﺕ ﻣﺴﺘﺨﺪﻣﻲ‬
‫ﺍﻟﺘﻄﺒﻴﻖ‪.‬ﻫﺬﺍ ﻳﺴﻤﺢ ﺑﺎﺳﺘﺮﺟﺎﻉ ﺟﻤﻴﻊ ﺍﻟﺒﻴﺎﻧﺎﺕ‪ ،‬ﻭﺗﻨﻔﻴﺬ ﺃﻱ ﺇﺟﺮﺍءﺍﺕ ﻟﻠﻤﺴﺘﺨﺪﻡ‪ ،‬ﻣﻦ ﺃﻱ‬
‫ﻧﻄﺎﻕﺁﺧﺮ‪.‬‬
‫‪12.4.2‬ﺗﺤﻘﻖ ﻣﻦ ‪/‬ﻣﻠﻒ ‪clientaccesspolicy.xml fi‬ﻋﻠﻰ ﻏﺮﺍﺭ ‪ ،Flash‬ﺇﺫﺍ ﻛﺎﻥ‬
‫>ﺍﻟﻮﺻﻮﻝ ﻋﺒﺮ ﺍﻟﻨﻄﺎﻕ<ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻜﻮﻳﻦ ﻣﺘﺴﺎﻫﻼ ًﻟﻠﻐﺎﻳﺔ‪ ،‬ﻓﻴﻤﻜﻦ ﻟﻠﻤﻮﺍﻗﻊ ﺍﻷﺧﺮﻯ ﺇﺟﺮﺍء‬
‫ﺗﻔﺎﻋﻞﺛﻨﺎﺉﻲ ﺍﻻﺗﺠﺎﻩ ﻣﻊ ﺍﻟﻤﻮﻗﻊ ﻗﻴﺪ ﺍﻟﺘﻘﻴﻴﻢ‪.‬‬
‫‪12.4.3‬ﺍﺧﺘﺒﺎﺭ ﺗﻌﺎﻣﻞ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻊ ﺍﻟﻄﻠﺒﺎﺕ ﻋﺒﺮ ﺍﻟﻨﻄﺎﻗﺎﺕ ﺑﺎﺳﺘﺨﺪﺍﻡ‬
‫ﻃﻠﺐ‪XMLHttp‬ﻋﻦ ﻃﺮﻳﻖ ﺇﺿﺎﻓﺔﺃﺻﻞﺭﺃﺱ ﻳﺤﺪﺩ ﻧﻄﺎﻗﺎً ﻣﺨﺘﻠﻔﺎً ﻭﻳﻔﺤﺺ ﺃﻳﺎً ﻣﻨﻬﺎﺍﻟﺘﺤﻜﻢ ﻓﻲ‬
‫ﺍﻟﻮﺻﻮﻝﺍﻟﻌﻨﺎﻭﻳﻦ ﺍﻟﻤﻌُﺎﺩﺓ‪ .‬ﺍﻵﺛﺎﺭ ﺍﻷﻣﻨﻴﺔ ﺍﻟﻤﺘﺮﺗﺒﺔ ﻋﻠﻰ ﺍﻟﺴﻤﺎﺡ ﺑﺎﻟﻮﺻﻮﻝ ﺛﻨﺎﺉﻲ ﺍﻻﺗﺠﺎﻩ‬
‫ﻣﻦﺃﻱ ﻧﻄﺎﻕ‪ ،‬ﺃﻭ ﻣﻦ ﻧﻄﺎﻗﺎﺕ ﺃﺧﺮﻯ ﻣﺤﺪﺩﺓ‪ ،‬ﻫﻲ ﻧﻔﺴﻬﺎ ﺍﻟﻤﻮﺿﺤﺔ ﻓﻲ ﺳﻴﺎﺳﺔ ﺍﻟﻮﺻﻮﻝ‬
‫ﻋﺒﺮﺍﻟﻨﻄﺎﻗﺎﺕ ﻓﻲ ‪.Flash‬‬

‫ﻣﺘﺎﺑﻌﺔﺃﻱ ﺗﺴﺮﻳﺐ ﻟﻠﻤﻌﻠﻮﻣﺎﺕ‬ ‫‪13‬‬


‫‪13.1‬ﻓﻲ ﺟﻤﻴﻊ ﺍﺧﺘﺒﺎﺭﺍﺗﻚ ﻟﻠﺘﻄﺒﻴﻖ ﺍﻟﻤﺴﺘﻬﺪﻑ‪ ،‬ﺭﺍﻗﺐ ﺍﺳﺘﺠﺎﺑﺎﺗﻪ ﻟﺮﺳﺎﺉﻞ ﺍﻟﺨﻄﺄ ﺍﻟﺘﻲ ﻗﺪ‬
‫ﺗﺤﺘﻮﻱﻋﻠﻰ ﻣﻌﻠﻮﻣﺎﺕ ﻣﻔﻴﺪﺓ ﺣﻮﻝ ﺳﺒﺐ ﺍﻟﺨﻄﺄ ﻭﺍﻟﺘﻘﻨﻴﺎﺕ ﺍﻟﻤﺴﺘﺨﺪﻣﺔ ﻭﺍﻟﺒﻨﻴﺔ ﺍﻟﺪﺍﺧﻠﻴﺔ‬
‫ﻟﻠﺘﻄﺒﻴﻖﻭﻭﻇﺎﺉﻔﻪ‪.‬‬

‫‪١٣.٢‬ﺇﺫﺍ ﺗﻠﻘﻴﺖ ﺃﻱ ﺭﺳﺎﺉﻞ ﺧﻄﺄ ﻏﻴﺮ ﻋﺎﺩﻳﺔ‪ ،‬ﻓﺘﺤﻘﻖ ﻣﻨﻬﺎ ﺑﺎﺳﺘﺨﺪﺍﻡ ﻣﺤﺮﻛﺎﺕ ﺍﻟﺒﺤﺚ ﺍﻟﻘﻴﺎﺳﻴﺔ‪.‬‬
‫ﻳﻤﻜﻨﻚﺍﺳﺘﺨﺪﺍﻡ ﻣﻴﺰﺍﺕ ﺑﺤﺚ ﻣﺘﻘﺪﻣﺔ ﻣﺘﻨﻮﻋﺔ ﻟﺘﻀﻴﻴﻖ ﻧﻄﺎﻕ ﻧﺘﺎﺉﺠﻚ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ‬
‫ﺍﻟﻤﺜﺎﻝ‪:‬‬
‫"ﻏﻴﺮ ﻗﺎﺩﺭ ﻋﻠﻰ ﺍﺳﺘﺮﺩﺍﺩ" ﻧﻮﻉ ﺍﻟﻤﻠﻒ‪php :‬‬

‫‪١٣.٣‬ﺭﺍﺟﻊ ﻧﺘﺎﺉﺞ ﺍﻟﺒﺤﺚ‪ ،‬ﻭﺍﺑﺤﺚ ﻋﻦ ﺃﻱ ﻧﻘﺎﺵ ﺣﻮﻝ ﺭﺳﺎﻟﺔ ﺍﻟﺨﻄﺄ ﻭﻋﻦ ﺃﻱ ﻣﻮﺍﻗﻊ ﻭﻳﺐ ﺃﺧﺮﻯ‬
‫ﻇﻬﺮﺕﻓﻴﻬﺎ ﺍﻟﺮﺳﺎﻟﺔ ﻧﻔﺴﻬﺎ‪ .‬ﻗﺪ ﺗﻨُﺘﺞ ﺗﻄﺒﻴﻘﺎﺕ ﺃﺧﺮﻯ ﺍﻟﺮﺳﺎﻟﺔ ﻧﻔﺴﻬﺎ ﻓﻲ ﺳﻴﺎﻕ ﺃﻛﺜﺮ‬
‫ﺗﻔﺼﻴﻼ‪ً،‬ﻣﻤﺎ ﻳﻤُﻜﻨّﻚ ﻣﻦ ﻓﻬﻢ ﺍﻟﻈﺮﻭﻑ ﺍﻟﺘﻲ ﺗﺴُﺒﺐ ﺍﻟﺨﻄﺄ ﺑﺸﻜﻞ ﺃﻓﻀﻞ‪ .‬ﺍﺳﺘﺨﺪﻡ ﺫﺍﻛﺮﺓ‬
‫ﺍﻟﺘﺨﺰﻳﻦﺍﻟﻤﺆﻗﺖ ﻟﻤﺤﺮﻙ ﺍﻟﺒﺤﺚ ﻻﺳﺘﺮﺟﺎﻉ ﺃﻣﺜﻠﺔ ﻋﻠﻰ ﺭﺳﺎﺉﻞ ﺍﻟﺨﻄﺄ ﺍﻟﺘﻲ ﻟﻢ ﺗﻌﺪ ﺗﻈﻬﺮ‬
‫ﻓﻲﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﻨﺸﻂ‪.‬‬

‫‪١٣.٤‬ﺍﺳﺘﺨﺪﻡ ﺑﺤﺚ ﺟﻮﺟﻞ ﻋﻦ ﺍﻟﻜﻮﺩ ﻟﻠﻌﺜﻮﺭ ﻋﻠﻰ ﺃﻱ ﻛﻮﺩ ﻣﺘﺎﺡ ﻟﻠﻌﺎﻣﺔ ﻗﺪ ﻳﻜﻮﻥ ﻣﺴﺆﻭﻻ ًﻋﻦ‬
‫ﺭﺳﺎﻟﺔﺧﻄﺄ ﻣﻌﻴﻨﺔ‪ .‬ﺍﺑﺤﺚ ﻋﻦ ﻣﻘﺘﻄﻔﺎﺕ ﻣﻦ ﺭﺳﺎﺉﻞ ﺍﻟﺨﻄﺄ ﺍﻟﺘﻲ ﻗﺪ ﺗﻜﻮﻥ ﻣﻀُﻤﻨﺔ ﻓﻲ‬
‫ﺍﻟﻜﻮﺩﺍﻟﻤﺼﺪﺭ ﻟﻠﺘﻄﺒﻴﻖ‪.‬‬
‫ﻳﻤﻜﻨﻚﺃﻳﻀﺎً ﺍﺳﺘﺨﺪﺍﻡ ﻣﻴﺰﺍﺕ ﺑﺤﺚ ﻣﺘﻘﺪﻣﺔ ﻣﺘﻨﻮﻋﺔ ﻟﺘﺤﺪﻳﺪ ﻟﻐﺔ ﺍﻟﻜﻮﺩ ﻭﺗﻔﺎﺻﻴﻞ ﺃﺧﺮﻯ‪،‬‬
‫ﺇﻥﻛﺎﻧﺖ ﻣﻌﺮﻭﻓﺔ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‪:‬‬
‫ﻏﻴﺮﻗﺎﺩﺭ ﻋﻠﻰ ﺍﺳﺘﺮﺩﺍﺩ ﺣﺰﻣﺔ ‪lang:php:mail‬‬

‫‪13.5‬ﺇﺫﺍ ﺗﻠﻘﻴﺖ ﺭﺳﺎﺉﻞ ﺧﻄﺄ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺗﺘﺒﻌﺎﺕ ﻣﻜﺪﺳﺔ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺃﺳﻤﺎء ﻣﻜﻮﻧﺎﺕ ﺍﻟﻤﻜﺘﺒﺔ‬
‫ﻭﺍﻟﻜﻮﺩﺍﻟﺨﺎﺭﺟﻲ‪ ،‬ﻓﺎﺑﺤﺚ ﻋﻦ ﻫﺬﻩ ﺍﻷﺳﻤﺎء ﻋﻠﻰ ﻛﻼ ﺍﻟﻨﻮﻋﻴﻦ ﻣﻦ ﻣﺤﺮﻛﺎﺕ ﺍﻟﺒﺤﺚ‪.‬‬
‫ﻓﻬِﺮﺱِ‬

‫ﺍﻟﻤﻨﺼﺎﺕ‪265-264،‬‬ ‫ﺍﻟﻌﻤﻴﻞ‪666–665،‬‬ ‫ﺃ‬


‫ﺑﺮﻣﺠﻲ‪282،‬‬ ‫ﻋﻼﻗﺎﺕﺍﻟﺜﻘﺔ ﻓﻲ ﺍﻟﻤﺴﺘﻮﻳﺎﺕ‬ ‫ﺍﻷﻓﺴﻨﺘﻴﻦ‪322،‬‬
‫ﻳﻌﺘﻤﺪﻋﻠﻰ ﺍﻟﻤﺮﺟﻊ‪266 ،‬‬ ‫ﺍﻟﻬﻨﺪﺳﺔﺍﻟﻤﻌﻤﺎﺭﻳﺔ‪649 ،‬‬ ‫ﻋﻨﺎﻭﻳﻦ‪ URL‬ﺍﻟﻤﻄﻠﻘﺔ‪ ،‬ﺇﻋﺎﺩﺓ ﺍﻟﺘﻮﺟﻴﻪ ﺍﻟﻤﻔﺘﻮﺣﺔ‬
‫ﻗﺎﺉﻢﻋﻠﻰ ﺍﻟﺪﻭﺭ‪282 ،‬‬ ‫ﺿﻮﺍﺑﻂﺍﻟﻮﺻﻮﻝ‬ ‫ﻧﻘﺎﻁﺍﻟﻀﻌﻒ‬
‫ﺍﻷﻣﻦ‪283-278،‬‬ ‫ﺍﺧﺘﺒﺎﺭﺍﻟﺤﺴﺎﺏ‪270-267 ،‬‬ ‫ﺍﻟﺤﺠﺐ‪545-544،‬‬
‫ﺃﻓﻀﻞﺍﻟﻤﻤﺎﺭﺳﺎﺕ‪ 280-279 ،‬ﻧﻬﺞ‬ ‫ﻃﺮﻕﻭﺍﺟﻬﺔ ﺑﺮﻣﺠﺔ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ‪277-276 ،‬‬
‫ﺍﻟﺒﺎﺩﺉﺔ‪546-545،‬‬
‫ﺍﻟﻤﻜﻮﻥﺍﻟﻤﺮﻛﺰﻱ‪،‬‬ ‫ﻃﺮﻕ‪HTTP، 278‬‬ ‫ﻧﻬﺞ"ﻗﺒﻮﻝ ﺍﻟﺨﻴﺮ ﺍﻟﻤﻌﺮﻭﻑ"‪،‬‬
‫‪280‬‬ ‫ﻭﺻﻮﻝﻣﺤﺪﻭﺩ‪ 276-273 ،‬ﻭﻇﻴﻔﺔ‬ ‫ﺍﻟﻤﺪﺧﻼﺕ‪24،‬‬
‫ﺍﻣﺘﻴﺎﺯﻣﺘﻌﺪﺩ ﺍﻟﻄﺒﻘﺎﺕ‬ ‫ﻣﺘﻌﺪﺩﺓﺍﻟﻤﺮﺍﺣﻞ‪ 273-271 ،‬ﻣﻮﺍﺭﺩ‬ ‫ﻭﺻﻮﻝ‬
‫ﻧﻤﻮﺫﺝ‪283–280،‬‬ ‫ﺛﺎﺑﺘﺔ‪277،‬‬ ‫ﻣﻬﺎﺟﻤﻮ‪ASP، 658–660‬‬
‫ﺍﻟﻤﺰﺍﻟﻖ‪279-278،‬‬ ‫ﺗﻌﻴﻴﻦﺍﻟﺘﻄﺒﻴﻖ‪269-268 ،‬‬ ‫ﻃﺮﻕ‪API ASP.NET‬‬
‫ﺍﻟﻤﻮﺍﺭﺩﺍﻟﺜﺎﺑﺘﺔ‪264-263 ،‬‬ ‫ﺍﻟﻤﻬﺎﺟﻤﻮﻥ‪278-266،‬‬ ‫ﻗﺎﻋﺪﺓﺍﻟﺒﻴﺎﻧﺎﺕ‪721 ،‬‬
‫ﺍﺧﺘﺒﺎﺭﺍﻟﺤﺴﺎﺏ‪277 ،‬‬ ‫ﺍﻷﻧﻮﺍﻉ‪260-258،‬‬ ‫ﻣﻠﻒ‪720‬‬
‫ﻭﻇﻴﻔﺔﻏﻴﺮ ﻣﺤﻤﻴﺔ‪ ،‬ﻭﺍﺟﻬﺔ ﺑﺮﻣﺠﺔ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ‬ ‫ﺃﺳﻤﺎءﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﻭﻛﻠﻤﺎﺕ ﺍﻟﻤﺮﻭﺭ‪،‬‬ ‫ﻣﻘﺪﻣﻮﺧﺪﻣﺎﺕ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﻭﺍﻟﻌﻤﻼء‪ ،‬ﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ‬
‫ﺍﻷﺳﺎﻟﻴﺐ‪261-260،‬‬ ‫‪276–275‬‬ ‫‪666-665‬‬
‫ﻋﻤﻮﺩﻱ‪258،‬‬ ‫ﻣﻜﻮﻧﺎﺕﺍﻟﻮﺍﺟﻬﺔ ﺍﻟﺨﻠﻔﻴﺔ‪357 ،‬‬ ‫ﻃﺮﻕﻭﺍﺟﻬﺔ ﺑﺮﻣﺠﺔ ﺗﻄﺒﻴﻘﺎﺕ ‪ASP.NET، 721‬‬
‫ﻧﻘﺎﻁﺍﻟﻀﻌﻒ‪276 ،266-258 ،‬‬ ‫ﻣﻌﻄﻠﺔ‪274 ،7،‬‬ ‫ﻃﺮﻕﻭﺍﺟﻬﺔ ﺑﺮﻣﺠﺔ ﺗﻄﺒﻴﻘﺎﺕ ‪Java، 714–715‬‬
‫ﻋﻴﻮﺏﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ‪411 ،‬‬ ‫ﻳﻌﺘﻤﺪﻋﻠﻰ ﺍﻟﺴﻴﺎﻕ‪258 ،‬‬ ‫ﻃﺮﻕﻭﺍﺟﻬﺔ ﺑﺮﻣﺠﺔ ﺗﻄﺒﻴﻘﺎﺕ ﻟﻐﺔ ‪،Perl‬‬
‫ﺍﻟﺘﺤﻜﻢﻓﻲ ﺍﻟﻮﺻﻮﻝ‪-‬ﺍﻟﺴﻤﺎﺡ‪-‬‬ ‫ﺇﻋﻼﻧﻲ‪283-282،‬‬ ‫‪738–737‬‬
‫ﺃﺻﻞﺍﻟﻌﻨﺎﻭﻳﻦ‪ 529–528 ،‬ﻋﻨﺎﻭﻳﻦ‬ ‫ﻣﻌﻴﺐ‪257،‬‬ ‫ﻃﺮﻕ‪ API PHP، 729–730‬ﻣﻌﺎﻟﺠﺔ‬
‫‪ URL‬ﻟﺘﻨﺸﻴﻂ ﺍﻟﺤﺴﺎﺏ‪ 184 ،‬ﺗﻌﻠﻴﻖ‬ ‫ﺗﻘﺪﻳﺮﻱ‪282،‬‬ ‫ﺁﻟﻴﺎﺕﺍﻟﺪﻓﺎﻉ‪،‬‬
‫ﺍﻟﺤﺴﺎﺏ‪ 198–197،‬ﺍﺧﺘﺒﺎﺭ ﺍﻟﺤﺴﺎﺏ‪،‬‬ ‫ﺍﻟﻌﻴﻮﺏ‪284،‬‬ ‫‪21–18‬‬
‫ﻋﻨﺎﺻﺮﺍﻟﺘﺤﻜﻢ ﻓﻲ ﺍﻟﻮﺻﻮﻝ‪،‬‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‬ ‫ﺍﻟﻤﺼﺎﺩﻗﺔ‪19-18،‬‬
‫‪270–267‬‬ ‫ﺍﻟﻮﺻﻮﻝﻏﻴﺮ ﺍﻵﻣﻦ‪823 ،‬‬ ‫ﺍﻟﺘﺤﻜﻢ‪21-20،‬‬
‫ﻃﺮﻕﻭﺍﺟﻬﺔ ﺑﺮﻣﺠﺔ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ‪277-276 ،‬‬ ‫ﻭﺻﻮﻝﻣﺤﺪﻭﺩ‪823-822 ،‬‬ ‫ﺇﺩﺍﺭﺓﺍﻟﺠﻠﺴﺔ‪ 20-19 ،‬ﻃﺮﻳﻘﺔ ‪API‬‬
‫ﻃﺮﻕ‪HTTP، 278‬‬ ‫ﺣﺴﺎﺑﺎﺕﻣﺘﻌﺪﺩﺓ‪822 ،‬‬ ‫ﻓﻲ‪Java‬‬
‫ﻭﺻﻮﻝﻣﺤﺪﻭﺩ‪ 276-273 ،‬ﻭﻇﻴﻔﺔ‬ ‫ﺍﻟﻤﺘﻄﻠﺒﺎﺕ‪821،‬‬ ‫ﻗﺎﻋﺪﺓﺍﻟﺒﻴﺎﻧﺎﺕ‪715-714 ،‬‬
‫ﻣﺘﻌﺪﺩﺓﺍﻟﻤﺮﺍﺣﻞ‪ 273-271 ،‬ﻣﻮﺍﺭﺩ‬ ‫ﺃﻓﻘﻲ‪258،‬‬ ‫ﻣﻠﻒ‪713‬‬
‫ﺛﺎﺑﺘﺔ‪277،‬‬ ‫ﺍﻟﻮﻇﺎﺉﻒﺍﻟﻘﺎﺉﻤﺔ ﻋﻠﻰ ﺍﻟﻤﻌﺮﻑ‪،‬‬ ‫ﻃﺮﻕ‪ API‬ﺍﻟﺨﺎﺻﺔ ﺑﻠﻐﺔ ‪Perl‬‬
‫ﻭﻛﻴﻞﺃﺧﻴﻞ‪751 ،‬‬ ‫‪262–261‬‬ ‫ﻗﺎﻋﺪﺓﺍﻟﺒﻴﺎﻧﺎﺕ‪738–737 ،‬‬
‫ﺗﻨﺴﻴﻖﺭﺳﺎﻟﺔ ﺍﻹﺟﺮﺍء )‪،(AMF‬‬ ‫ﻃﺮﻕﻏﻴﺮ ﺁﻣﻨﺔ‪ 266-265 ،‬ﺗﻌﺘﻤﺪ‬ ‫ﻣﻠﻒ‪737‬‬
‫‪135‬‬ ‫ﻋﻠﻰﺍﻟﻤﻮﻗﻊ‪266 ،‬‬ ‫ﻃﺮﻕ‪API PHP‬‬
‫ﺟﻨﺎﺡﺍﻟﺘﺠﺸﺆ‪137 ،‬‬ ‫ﻭﻇﺎﺉﻒﻣﺘﻌﺪﺩﺓ ﺍﻟﻤﺮﺍﺣﻞ‪263-262 ،‬‬ ‫ﻗﺎﻋﺪﺓﺍﻟﺒﻴﺎﻧﺎﺕ‪730-729 ،‬‬
‫ﺍﻟﻤﺴﺢﺍﻟﻨﺸﻂ‪765–764 ،‬‬ ‫ﺍﻻﺧﺘﺒﺎﺭ‪273-271،‬‬ ‫ﻣﻠﻒ‪729–727،‬‬
‫ﻋﻨﺎﺻﺮﺗﺤﻜﻢ ‪ActiveX، 447‬‬ ‫ﺍﺳﺘﻨﺎﺩﺍًﺇﻟﻰ ﺍﻟﻤﻌﻠﻤﺎﺕ‪266-265 ،‬‬ ‫ﺍﺳﺘﻀﺎﻓﺔﻣﺸﺘﺮﻛﺔ‬
‫ﻛﻮﻡﺭﺍﻳﺪﺭ‪558 ،‬‬ ‫ﻓﺼﻞﻟﻜﻞ ﻣﺴﺘﺨﺪﻡ‪274 ،‬‬ ‫ﺍﻟﻤﻬﺎﺟﻤﻮﻥ‪660-658،‬‬

‫‪853‬‬
‫ﻣﺆﺷﺮ‪-854‬ﺃ–ﺃ‬

‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‬ ‫ﺟﺎﻓﺎ‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪ ،‬ﺍﻟﻤﺘﺼﻔﺢ‬


‫ﺳﻄﺢﺍﻟﻬﺠﻮﻡ‪842 ،‬‬ ‫ﺍﻟﻮﺻﻮﻝﺇﻟﻰ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ‪ 715–714 ،‬ﺗﻨﻔﻴﺬ‬ ‫ﻣﻠﺤﻘﺎﺕ‪804،‬‬
‫ﻣﺪﺧﻼﺕﻏﻴﺮ ﻣﻜﺘﻤﻠﺔ‪843 ،‬‬ ‫ﺍﻟﺘﻌﻠﻴﻤﺎﺕﺍﻟﺒﺮﻣﺠﻴﺔ ﺍﻟﺪﻳﻨﺎﻣﻴﻜﻴﺔ‪ 715 ،‬ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ‬ ‫ﺗﻌﺪﻳﻞ‪HTML، 557‬‬
‫ﻭﻇﺎﺉﻒﻣﺘﻌﺪﺩﺓ ﺍﻟﻤﺮﺍﺣﻞ‪،‬‬ ‫ﺍﻟﻤﻠﻔﺎﺕ‪713،‬‬ ‫"ﺁﻣﻨﺔ ﻟﻠﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ"‬
‫‪843–842‬‬ ‫ﺗﻨﻔﻴﺬﺃﻭﺍﻣﺮ ﻧﻈﺎﻡ ﺍﻟﺘﺸﻐﻴﻞ‪،‬‬ ‫ﺍﻟﺘﺴﺠﻴﻞ‪557-555،‬‬
‫ﻣﻨﻄﻖﺍﻟﻤﻌﺎﻣﻼﺕ‪844 ،‬‬ ‫‪716–715‬‬ ‫ﻧﻘﺎﻁﺍﻟﻀﻌﻒ‪556-555 ،‬‬
‫ﻋﻼﻗﺎﺕﺍﻟﺜﻘﺔ‪ ،‬ﻣﻨﻬﺠﻴﺔ ﺍﻟﻬﺎﻛﺮ‬ ‫ﻳﺤﺘﻤﻞﺃﻥ ﺗﻜﻮﻥ ﺧﻄﻴﺮﺓ‪،‬‬ ‫ﺍﻟﻨﺘﺎﺉﺞ‪558-556،‬‬
‫‪،844‬‬ ‫‪716–713‬‬ ‫ﺍﻟﻮﻗﺎﻳﺔ‪559-558،‬‬
‫ﺍﻟﻤﺼﺎﺩﻗﺔ‪ 813–811،‬ﺇﺑﻄﺎﻝ‬ ‫ﻣﻘﺎﺑﺲ‪716،‬‬ ‫ﺍﻟﻮﻇﺎﺉﻒﺍﻹﺩﺍﺭﻳﺔ‪ ،‬ﺍﻟﻮﻳﺐ‬
‫ﺻﺤﺔﺍﻹﺩﺧﺎﻝ‪،‬‬ ‫ﺇﻋﺎﺩﺓﺗﻮﺟﻴﻪ ﻋﻨﻮﺍﻥ ‪URL، 716‬‬ ‫ﺍﻟﺘﻄﺒﻴﻘﺎﺕ‪36-35،‬‬
‫‪422–420‬‬ ‫ﺇﺩﺧﺎﻝﻣﺴﺘﺨﺪﻡ ‪، 712 JavaScript‬‬ ‫ﺍﻹﺩﺍﺭﻳﻴﻦ‬
‫ﺍﻟﺪﺭﻭﺱ‪429-428،‬‬ ‫‪ Java‬ﺍﻟﻤﺴﺘﻨﺪ ﺇﻟﻰ ‪ DOM، 740‬ﻟﻐﺔ‬ ‫‪DBA، 325-326‬‬
‫ﻭﻇﻴﻔﺔﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ‪427-426 ،‬‬ ‫‪Perl‬‬ ‫ﺍﻟﺘﻌﺎﻣﻞﻣﻊ ﺁﻟﻴﺎﺕ ﺍﻟﺪﻓﺎﻉ‬
‫ﻇﺮﻭﻑﺍﻟﺴﺒﺎﻕ‪427 ،‬‬ ‫ﺍﻟﻮﺻﻮﻝﺇﻟﻰ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ‪ 738–737 ،‬ﺗﻨﻔﻴﺬ‬ ‫ﺍﻟﻤﻬﺎﺟﻤﻮﻥ‪،‬ﺍﻟﺘﻨﺒﻴﻪ‪34-33 ،‬‬
‫ﻃﺒﻴﻌﺔ‪406،‬‬ ‫ﺍﻟﺘﻌﻠﻴﻤﺎﺕﺍﻟﺒﺮﻣﺠﻴﺔ ﺍﻟﺪﻳﻨﺎﻣﻴﻜﻴﺔ‪ 738 ،‬ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ‬ ‫ﺃﻳﺎﻛﺲ‬
‫ﻭﻇﻴﻔﺔﺗﻐﻴﻴﺮ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‪،‬‬ ‫ﺍﻟﻤﻠﻔﺎﺕ‪737،‬‬ ‫‪HTML5،487‬‬
‫‪410–409‬‬ ‫ﺗﻨﻔﻴﺬﺃﻭﺍﻣﺮ ﻧﻈﺎﻡ ﺍﻟﺘﺸﻐﻴﻞ‪ 738 ،‬ﻗﺪ‬ ‫ﺍﻟﻤﺨﺰﻧﺔﻓﻲ ﺍﻟﻤﻠﻔﺎﺕ ﺍﻟﺘﻲ ﺗﻢ ﺗﺤﻤﻴﻠﻬﺎ ‪XSS‬‬
‫ﺍﻟﻤﻀﻲﻗﺪﻣﺎ ﻓﻲ ﺍﻟﺨﺮﻭﺝ‪،‬‬ ‫ﻳﻜﻮﻥﺧﻄﻴﺮﺍً‪،‬‬ ‫ﻋﺒﺮ‪487-486،‬‬
‫‪411–410‬‬ ‫‪739–736‬‬ ‫ﻭﻇﺎﺉﻒﺍﻟﻮﻳﺐ‪384 ،63-62 ،‬‬
‫ﺍﻟﻌﺎﻟﻢﺍﻟﺤﻘﻴﻘﻲ‪407-406 ،‬‬ ‫ﺍﻟﻤﻘﺎﺑﺲ‪739،‬‬ ‫ﺃﻟﻜﻮﻥ‪،‬ﻭﻳﺪ‪565 ،‬‬
‫ﺇﻧﺸﺎءﺍﻟﺘﺄﻣﻴﻦ ﺍﻟﺨﺎﺹ ﺑﻚ‪،‬‬ ‫ﺇﻋﺎﺩﺓﺗﻮﺟﻴﻪ ﻋﻨﻮﺍﻥ ‪URL، 738‬‬ ‫ﺍﻟﺘﻨﺒﻴﻬﺎﺕ‪34-33،‬‬
‫‪413–412‬‬ ‫ﺑﻲﺍﺗﺶ ﺑﻲ‬ ‫ﺃﻟﻴﺮﺟﻮﻧﻴﻮﺭ‪691-690 ،‬‬
‫ﻭﻇﻴﻔﺔﺍﻟﺒﺤﺚ‪429 ،‬‬ ‫ﺍﻟﻮﺻﻮﻝﺇﻟﻰ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ‪730–729 ،‬‬ ‫ﺍﻟﺴﻤﺎﺡﺑﺘﻀﻤﻴﻦ ﻋﻨﻮﺍﻥ ‪729،URL‬‬
‫ﺍﻹﺳﺎءﺓ‪424-422،‬‬ ‫ﺗﻨﻔﻴﺬﺍﻟﺘﻌﻠﻴﻤﺎﺕ ﺍﻟﺒﺮﻣﺠﻴﺔ ﺍﻟﺪﻳﻨﺎﻣﻴﻜﻴﺔ‪،‬‬ ‫ﺃﻳﻪﺇﻡ ﺇﻑ‪.‬ﻳﺮﻯﺭﺳﺎﻟﺔ ﺍﻟﻌﻤﻞ‬
‫ﺍﻷﻣﻦ‪428،‬‬ ‫‪731–730‬‬ ‫ﺷﻜﻞ‬
‫ﺇﺩﺍﺭﺓﺍﻟﺠﻠﺴﺔ‪ 429 ،‬ﺣﺮﻓﺎً ﺃﻭﻟﻴﺎً‪،‬‬ ‫ﺍﻟﻮﺻﻮﻝﺇﻟﻰ ﺍﻟﻤﻠﻔﺎﺕ‪729-727 ،‬‬ ‫ﺣﺮﻑ"ﻭ" ﺩﻓﻌﺔ‬
‫‪419‬ﻛﻮﺩ ﺍﻟﻤﺼﺪﺭ‪428 ،‬‬ ‫ﺗﻨﻔﻴﺬﺃﻭﺍﻣﺮ ﻧﻈﺎﻡ ﺍﻟﺘﺸﻐﻴﻞ‪731 ،‬‬ ‫ﺍﻟﻮﻇﻴﻔﺔ‪363 ،361-360،‬‬
‫ﺧﻄﻴﺮﻣﺤﺘﻤﻞ‪،‬‬ ‫ﺃﻧﻠﻲ‪،‬ﻛﺮﻳﺲ‪634 ،322 ،218 ،‬‬
‫ﺣﻘﻦ‪SQL، 420-422‬‬ ‫‪732–727‬‬ ‫ﺗﻨﺒﻴﻬﺎﺕﺍﻷﺣﺪﺍﺙ ﺍﻟﺸﺎﺫﺓ‪ 33 ،‬ﺭﻣﺰﺍً‬
‫ﺳﺠﻼﺕﺍﻟﺘﻄﺒﻴﻖ‪262 ،‬‬ ‫ﻣﻘﺎﺑﺲ‪732،‬‬ ‫ﻣﻀﺎﺩﺍًﻟـ ‪،CSRF، 508-509‬‬
‫ﺗﻌﻴﻴﻦﺍﻟﺘﻄﺒﻴﻖ‪73 ،‬‬ ‫ﺇﻋﺎﺩﺓﺗﻮﺟﻴﻪ ﻋﻨﻮﺍﻥ ‪URL، 731–732‬‬ ‫‪517–516‬‬
‫ﺿﻮﺍﺑﻂﺍﻟﻮﺻﻮﻝ‪269-268 ،‬‬ ‫ﺇﻋﺎﺩﺓﺍﻟﺘﻮﺟﻴﻪ ﻣﻦ ﺟﺎﻧﺐ ﺍﻟﺨﺎﺩﻡ‪392 ،‬‬ ‫ﻫﺰﻳﻤﺔ‪XSS، 509–510‬‬
‫ﺍﻟﺘﺤﻠﻴﻞ‪113-97،‬‬ ‫ﺣﻘﻦ‪SQL، 291‬‬ ‫ﻣﺮﺷﺤﺎﺕﻣﻀﺎﺩﺓ ﻟـ ‪XSS، 452‬‬
‫ﺍﻟﻤﺠﺎﻻﺕﺍﻟﺮﺉﻴﺴﻴﺔ‪98-97 ،‬‬ ‫ﺍﻟﺘﻨﻮﻉ‪358،‬‬ ‫‪IE، 748‬‬
‫ﺳﻄﺢﺍﻟﻬﺠﻮﻡ‪111 ،‬‬ ‫ﺧﺎﺩﻡ‪ ،Apple iDisk‬ﺍﻟﻤﺴﺎﺭ‬ ‫ﺑﻮﺍﺑﺔ‪AOL AIM Enterprise‬‬
‫ﻣﺜﺎﻝ‪113-112،‬‬ ‫ﺛﻐﺮﺍﺕﺍﻟﻌﺒﻮﺭ‪ 690 ،‬ﺗﻄﺒﻴﻖ‪.‬ﻳﺮﻯ‬ ‫ﺗﻄﺒﻴﻖ‪409،‬‬
‫ﺟﻨﺎﺡﺍﻟﺘﺠﺸﺆ‪268 ،‬‬ ‫ﻫﻨﺪﺳﺔﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‪.‬ﻳﺮﻯ‬ ‫ﺃﺑﺎﺗﺸﻲ‬
‫ﺍﻟﻤﻘﺎﺭﻧﺎﺕ‪269-268،‬‬ ‫ﺗﺠﺎﻭﺯﺗﺮﻣﻴﺰ ﻣﺠﺰﺃ‪،‬‬
‫ﺗﻌﺪﺍﺩﺍﻟﻤﺤﺘﻮﻯ ﻭ‬ ‫ﺍﻟﻬﻨﺪﺳﺔﺍﻟﻤﻌﻤﺎﺭﻳﺔ ﺍﻟﻤﺘﺪﺭﺟﺔ‬ ‫‪688‬‬
‫ﺍﻟﻮﻇﻴﻔﺔ‪97–74،‬‬ ‫ﻋﻴﻮﺏﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ‬ ‫ﺭﺳﺎﺉﻞﺍﻟﺨﻄﺄ‪628 ،‬‬
‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪798-795 ،‬‬ ‫ﺛﻐﺮﺍﺕﺍﻟﺘﺤﻜﻢ ﻓﻲ ﺍﻟﻮﺻﻮﻝ‪،‬‬ ‫‪688mod_isapi،‬‬
‫ﻣﻌﻠﻤﺎﺕﺍﻟﺘﺼﺤﻴﺢ‪798 ،‬‬ ‫‪411‬‬ ‫‪688mod_proxy،‬‬
‫ﺍﻟﻤﺤﺘﻮﻯﺍﻻﻓﺘﺮﺍﺿﻲ‪797 ،‬‬ ‫ﺳﻄﺢﺍﻟﻬﺠﻮﻡ‪405 ،‬‬ ‫ﻣﻨﻌﻜﺲ‪XSS، 442‬‬
‫ﺗﻌﺪﺍﺩﺍﻟﻤﻌﺮﻓﺎﺕ‪،‬‬ ‫ﻣﺴﺎﺭﺍﻟﺘﺪﻗﻴﻖ‪429 ،‬‬ ‫ﺗﻮﻡﻛﺎﺕ‪673 ،‬‬
‫‪798–797‬‬ ‫ﺍﻟﻤﺼﺎﺩﻗﺔ‪ 416-415،‬ﺗﺠﻨﺐ‪،‬‬ ‫ﺍﻻﺳﺘﻀﺎﻓﺔﺍﻻﻓﺘﺮﺍﺿﻴﺔ‪683 ،‬‬
‫ﺍﻟﻤﺤﺘﻮﻯﺍﻟﻤﺨﻔﻲ‪ 797–796 ،‬ﻣﺼﺎﺩﺭ‬ ‫‪429-428‬‬ ‫ﻃﺮﻕﻭﺍﺟﻬﺔ ﺑﺮﻣﺠﺔ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ‬

‫ﺍﻟﻤﻌﻠﻮﻣﺎﺕﺍﻟﻌﺎﻣﺔ‪،‬‬ ‫ﺗﺠﺎﻭﺯﺣﺪ ﺍﻷﻋﻤﺎﻝ‪،417-416 ،‬‬ ‫ﺿﻮﺍﺑﻂﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ‪261-260 ،‬‬


‫‪796‬‬ ‫‪429‬‬ ‫ﺍﺧﺘﺒﺎﺭﺍﻟﺤﺴﺎﺏ‪277-276 ،‬‬
‫ﺍﻟﺮﻣﻮﺯﻟﻠﺠﻠﺴﺎﺕ‪ 818 ،‬ﻣﺤﺘﻮﻯ‬ ‫ﻛﺴﺮﺍﻟﺒﻨﻚ‪416-414 ،‬‬ ‫‪ASP.NET‬‬
‫ﻣﺮﺉﻲ‪ 796–795،‬ﻣﺤﺘﻮﻯ‬ ‫ﻏﺶﻓﻲ ﺍﻟﺨﺼﻮﻣﺎﺕ ﺍﻟﻜﺒﻴﺮﺓ‪429 ،418 ،‬‬ ‫ﻗﺎﻋﺪﺓﺍﻟﺒﻴﺎﻧﺎﺕ‪721 ،‬‬
‫ﻣﺨﻔﻲ‬ ‫ﺭﺳﺎﻟﺔﻣﺼﺤﺢ ﺃﺧﻄﺎء‪426-424 ،‬‬ ‫ﺗﻨﻔﻴﺬﺍﻟﻜﻮﺩ ﺍﻟﺪﻳﻨﺎﻣﻴﻜﻲ‪ 722 ،‬ﺍﻟﻮﺻﻮﻝ‬
‫ﺗﻘﻨﻴﺎﺕﺍﻟﻘﻮﺓ ﺍﻟﻐﺎﺷﻤﺔ‬ ‫ﻣﻄﻮﺭﻭﻥ‪430-429،‬‬ ‫ﺇﻟﻰﺍﻟﻤﻠﻒ‪720 ،‬‬
‫ﺍﻛﺘﺸﺎﻑ‪85-81،‬‬ ‫ﺃﻭﺭﺍﻛﻞﺍﻟﺘﺸﻔﻴﺮ‪408-407 ،‬‬ ‫ﺗﻨﻔﻴﺬﺃﻭﺍﻣﺮ ﻧﻈﺎﻡ ﺍﻟﺘﺸﻐﻴﻞ‪،‬‬
‫ﺍﻛﺘﺸﺎﻑ‪93-80،‬‬ ‫ﻭﻇﻴﻔﺔ"ﺗﺬﻛﺮﻧﻲ"‪ 407 ،‬ﺍﻟﻬﺮﻭﺏ‪،‬‬ ‫‪723–722‬‬
‫ﺍﻻﺳﺘﺪﻻﻝﻣﻦ ﺍﻟﻤﻨﺸﻮﺭ‬ ‫‪420-419‬‬ ‫ﻣﻘﺎﺑﺲ‪723،‬‬
‫ﺍﻛﺘﺸﺎﻑﺍﻟﻤﺤﺘﻮﻯ‪،‬‬ ‫ﺍﻟﺨﺪﻣﺎﺕﺍﻟﻤﺎﻟﻴﺔ‪416-412 ،‬‬ ‫ﺇﻋﺎﺩﺓﺗﻮﺟﻴﻪ ﻋﻨﻮﺍﻥ ‪URL، 723‬‬
‫‪89–85‬‬ ‫ﺍﻟﺘﺼﻔﺢﺍﻟﻘﺴﺮﻱ‪411 ،‬‬ ‫ﺇﺩﺧﺎﻝﺍﻟﻤﺴﺘﺨﺪﻡ‪719-718 ،‬‬
‫ﻓﻬِﺮﺱِ‪-‬ﺃ–ﺃ ‪855‬‬

‫ﻣﻠﺤﻘﺎﺕﻣﺘﺼﻔﺢ ﺍﻟﻜﺎﺯﻳﻨﻮ‬ ‫ﺗﻨﻔﻴﺬﺍﻟﻜﻮﺩ ﺍﻟﺪﻳﻨﺎﻣﻴﻜﻲ‪ 722 ،‬ﺍﻟﻮﺻﻮﻝ‬ ‫ﺍﻟﻤﻌﻠﻮﻣﺎﺕﺍﻟﻌﺎﻣﺔ‬


‫ﺍﻟﻤﻜﻮﻥ‪134‬‬ ‫ﺇﻟﻰﺍﻟﻤﻠﻒ‪720 ،‬‬ ‫ﺍﻛﺘﺸﺎﻑ‪91-89،‬‬
‫ﻛﺎﺑﺘﺸﺎ‪199-198،‬‬ ‫ﺗﻨﻔﻴﺬﺃﻭﺍﻣﺮ ﻧﻈﺎﻡ ﺍﻟﺘﺸﻐﻴﻞ‪،‬‬ ‫ﺧﺎﺩﻡﺍﻟﻮﻳﺐ ﺍﻟﻤﺴﺘﻐﻞ ﻟـ‬
‫ﺍﻷﺗﻤﺘﺔﺍﻟﻤﺨﺼﺼﺔ‪،‬‬ ‫‪723–722‬‬ ‫ﺍﻛﺘﺸﺎﻑ‪93-91،‬‬
‫‪611–610‬‬ ‫ﻣﻘﺎﺑﺲ‪723،‬‬ ‫ﺍﻟﻤﻌﻠﻤﺎﺕﺍﻟﻤﺨﻔﻴﺔ‪97–96 ،‬‬
‫ﻫﺠﻤﺎﺕﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ‪ 13 ،‬ﺍﻟﺤﻮﺳﺒﺔ‬ ‫ﺇﻋﺎﺩﺓﺗﻮﺟﻴﻪ ﻋﻨﻮﺍﻥ ‪URL، 723‬‬ ‫ﻧﻘﻄﺔﺇﺩﺧﺎﻝ‬
‫ﺍﻟﺴﺤﺎﺑﻴﺔ‪665-663 ،14،‬‬ ‫ﺇﺩﺧﺎﻝﺍﻟﻤﺴﺘﺨﺪﻡ‪719-718 ،‬‬ ‫ﺭﺅﻭﺱ‪HTTP، 100–101‬‬
‫ﺍﻷﻧﻈﻤﺔﺍﻟﻤﺴﺘﻨﺴﺨﺔ‪664 ،‬‬ ‫ﺭﺳﺎﺉﻞﺍﻟﺨﻄﺄ‪628 ،‬‬ ‫ﻗﻨﻮﺍﺕﺧﺎﺭﺝ ﺍﻟﻨﻄﺎﻕ‪ 101 ،‬ﻣﻌﻠﻤﺔ‬
‫ﺍﻟﺮﻣﻮﺯ‪665،‬‬ ‫ﺣﻘﻦﺃﻭﺍﻣﺮ ﻧﻈﺎﻡ ﺍﻟﺘﺸﻐﻴﻞ ﻋﺒﺮ‪،‬‬ ‫ﻃﻠﺐ‪99،‬‬
‫ﻃﺮﻕﺣﻘﻦ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ‪،‬‬ ‫‪361–360‬‬ ‫ﻣﺴﺎﺭﺍﺕﻣﻠﻔﺎﺕ ‪،URL‬‬
‫‪537–536‬‬ ‫ﺇﻋﺎﺩﺓﺍﻟﺘﻮﺟﻴﻪ‪392 ،‬‬ ‫ﻣﻨﻬﺠﻴﺔ‪114 ،99-98‬‬
‫ﺍﻟﻤﺆﻫﻼﺕ‪171،‬‬ ‫ﺗﻜﻮﻳﻦﺍﻷﻣﺎﻥ‪ ،‬ﺗﻔﺎﻋﻞ ﺍﻟﺠﻠﺴﺔ ‪،724-723‬‬ ‫ﻣﺨﻄﻄﺎﺕﺍﻟﺘﺴﻤﻴﺔ‪86-85 ،‬‬
‫ﺍﻟﺘﻌﺎﻣﻞﻣﻊ ﺁﻟﻴﺎﺕ ﺍﻟﺪﻓﺎﻉ‪،‬‬ ‫ﺗﺘﺒﻌﺎﺕﺍﻟﻤﻜﺪﺱ ‪617 ،720-719‬‬ ‫ﺗﻤﺮﻳﻦﺍﻟﻘﻮﺓ ﺍﻟﻐﺎﺷﻤﺔ‪88 ،‬‬
‫‪35–30‬‬ ‫ﺗﺤﺪﻳﺪ‪87،‬‬
‫ﺗﻨﺒﻴﻪﺍﻟﻤﺴﺆﻭﻝ‪ 34-33 ،‬ﺻﻴﺎﻧﺔ ﺳﺠﻞ‬ ‫ﺣﺎﻟﺔﺍﻟﻌﺮﺽ‬ ‫ﺛﻐﺮﺍﺕﻋﺒﻮﺭ ﺍﻟﻤﺴﺎﺭ‪،‬‬
‫ﺍﻟﺘﺪﻗﻴﻖ‪ 32-31،‬ﺍﻷﺧﻄﺎء‪31-30 ،‬‬ ‫ﺍﻟﻤﻬﺎﺟﻤﻮﻥ‪127،‬‬ ‫‪371‬‬
‫ﺗﺮﻣﻴﺰ‪–126 Burp Suite، 126‬‬ ‫ﻣﻦﺟﺎﻧﺐ ﺍﻟﺨﺎﺩﻡ‬
‫ﺍﻟﺘﻔﺎﻋﻞﻣﻊ‪35-34 ،‬‬ ‫‪Base64،125‬‬ ‫ﺗﺤﺪﻳﺪﺍﻟﻮﻇﻴﻔﺔ‪،‬‬
‫ﺍﻟﻌﻨﺎﺻﺮﺍﻟﻤﻌﻄﻠﺔ‪ ،‬ﺍﻟﺘﺮﻣﻴﺰ‬ ‫ﻧﻘﻞﺍﻟﺒﻴﺎﻧﺎﺕ ﻣﻦ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ‪،‬‬ ‫‪110–106‬‬
‫‪،133-132‬ﻭ‪67-66‬‬ ‫‪127–124‬‬ ‫ﺗﺤﺪﻳﺪﺍﻟﺘﻜﻨﻮﻟﻮﺟﻴﺎ‪،‬‬
‫ﻧﺴﻴﺖﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‪14 ،‬‬ ‫ﺍﻟﻐﺮﺽ‪125،‬‬ ‫‪106–101‬‬
‫ﺛﻐﺮﺍﺕﺗﻨﺴﻴﻖ ﺍﻟﺴﻠﺴﻠﺔ‪،‬‬ ‫ﺍﻷﻣﻦ‪155،‬‬ ‫ﺻﻔﺤﺎﺕﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐﻋﻜﺲ‬
‫‪644‬‬ ‫ﻣﻘﺪﻣﻲﺍﻟﺨﺪﻣﺎﺕ‪.‬ﻳﺮﻯﺧﺪﻣﺔ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ‬ ‫ﺍﻟﻤﺴﺎﺭﺍﺕﺍﻟﻮﻇﻴﻔﻴﺔ‪96–93 ،‬‬
‫ﺣﻘﻦﺭﺃﺱ ‪،HTTP‬‬ ‫ﻣﻘﺪﻣﻲﺍﻟﺨﺪﻣﺎﺕ‬ ‫ﺧﺎﺩﻡﺗﻄﺒﻴﻖ‪.‬ﻳﺮﻯﺷﺒﻜﺔ ﺍﻹﻧﺘﺮﻧﺖ‬
‫‪535–534‬‬ ‫‪. aspx fi‬ﺍﻻﻣﺘﺪﺍﺩ‪ 107 ،‬ﺃﺳﺘﻠﻲ‪،‬‬ ‫ﺍﻟﺨﻮﺍﺩﻡ‬
‫ﺍﻟﻨﻮﺍﻳﺎ‪13،‬‬ ‫ﺭﻳﻚ‪541،‬‬ ‫ﻣﻘﺪﻣﻲﺧﺪﻣﺎﺕ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ‬
‫ﻭﻇﻴﻔﺔﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ‪ 165–164 ،‬ﻗﻮﺍﻋﺪ‬ ‫ﺣﻤﻮﻻﺕﺍﻟﻬﺠﻮﻡ‪XSS، 443-447 ،‬‬ ‫‪)ASPs(، 656-657.‬ﺍﻧﻈﺮ ﺃﻳﻀﺎ؛‬
‫ﺑﻴﺎﻧﺎﺕ‪ MS-SQL، 326–327‬ﻧﻤﻮﺫﺝ‬ ‫ﺍﻹﻛﻤﺎﻝﺍﻟﺘﻠﻘﺎﺉﻲ‪446 ،‬‬ ‫ﺍﻟﺤﻮﺳﺒﺔﺍﻟﺴﺤﺎﺑﻴﺔ‪ASP.NET‬‬
‫ﺍﻻﻣﺘﻴﺎﺯﻣﺘﻌﺪﺩ ﺍﻟﻄﺒﻘﺎﺕ‪،‬‬ ‫ﺗﺼﻌﻴﺪﻣﻦ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ‪،‬‬ ‫ﺍﻟﻤﻬﺎﺟﻤﻮﻥ‪665-658،‬‬
‫‪283‬‬ ‫ﺗﺼﻌﻴﺪ‪ 447‬ﺇﻟﻰ ﺻﻔﺤﺎﺕ ﺃﺧﺮﻯ‪،‬‬ ‫ﺍﻟﻮﺻﻮﻝ‪660-658،‬‬
‫ﻭﻇﻴﻔﺔﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ ﻣﺘﻌﺪﺩﺓ ﺍﻟﻤﺮﺍﺣﻞ‪،‬‬ ‫‪474–473‬‬ ‫ﻧﺼﻮﺹﺍﻟﺒﺎﺏ ﺍﻟﺨﻠﻔﻲ ﺍﻟﻤﺘﻌﻤﺪﺓ‪،‬‬
‫‪MySQL، 328188‬‬ ‫ﺍﻹﺟﺮﺍءﺍﺕﺍﻟﻤﺤﻔﺰﺓ‪ 446-445 ،‬ﺣﻘﻦ‬ ‫‪661–660‬‬
‫ﻣﻀﻴﻔﻮﺍﻟﺸﺒﻜﺔ‪562-561 ،‬‬ ‫ﻃﺮﻭﺍﺩﺓ‪ 445-444،‬ﺍﺳﺘﻐﻼﻝ ﻋﻼﻗﺔ ﺍﻟﺜﻘﺔ‪،‬‬ ‫ﺑﻴﻦﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‪،‬‬
‫ﺧﺪﻣﺎﺕﻏﻴﺮ ‪HTTP، 562–563‬‬ ‫‪663–660‬‬
‫ﺑﺎﻳﺖﻓﺎﺭﻍ‪24–23 ،‬‬ ‫‪447–446‬‬ ‫ﺍﻟﺨﺪﻣﺎﺕﺍﻟﻤﺎﻟﻴﺔ‪658 ،‬‬
‫ﺑﻴﺎﻧﺎﺕﻏﻴﺮ ﺷﻔﺎﻓﺔ‪124 ،‬‬ ‫ﺍﻟﺘﺸﻮﻳﻪﺍﻻﻓﺘﺮﺍﺿﻲ‪ ،‬ﺳﻄﺢ ﺍﻟﻬﺠﻮﻡ‬ ‫ﻣﻨﻈﻤﺔ‪658،‬‬
‫ﻗﻮﺍﻋﺪﺑﻴﺎﻧﺎﺕ ﺃﻭﺭﺍﻛﻞ‪327 ،‬‬ ‫‪444-443‬‬ ‫ﺗﺄﻣﻴﻦ‪667-665،‬‬
‫ﻣﺴﺘﺨﺪﻣﻮﻥﺁﺧﺮﻭﻥ‪432–431 ،‬‬ ‫ﻋﻴﻮﺏﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﻭﺗﻌﻴﻴﻦ‬ ‫ﻓﺼﻞﺍﻟﻤﻜﻮﻧﺎﺕ‪ 667 ،‬ﻭﺻﻮﻝ‬
‫ﺛﻐﺮﺍﺕﻋﺒﻮﺭ ﺍﻟﻤﺴﺎﺭ‬ ‫ﺍﻟﺘﻄﺒﻴﻖ‪ ،405‬ﻭ‪111‬‬ ‫ﺍﻟﻌﻤﻴﻞ‪ 666–665،‬ﻭﻇﻴﻔﺔ ﺍﻟﻌﻤﻴﻞ‬
‫ﺗﺠﺎﻭﺯﺍﻟﻌﻘﺒﺎﺕ‪،‬‬ ‫ﻣﺜﺎﻝ‪113-112،‬‬
‫‪377–374‬‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪،‬‬ ‫ﺍﻟﻔﺼﻞﺍﻟﻌﻨﺼﺮﻱ‪666 ،‬‬
‫ﻧﺎﺟﺢ‪374،‬‬ ‫ﻋﻴﻮﺏﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ‪842 ،‬‬ ‫ﻣﺸﺘﺮﻙ‪658–657،‬‬
‫ﺍﻟﻤﻮﺍﻗﻊﺍﻟﻤﺴﺘﻬﺪﻓﺔ‪371-370 ،‬‬ ‫ﺍﻟﺘﻬﺪﻳﺪﺍﺕ‪657،‬‬
‫ﺑﻌﻴﺪﺓ‪427،‬‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‬ ‫‪VPN، 659‬‬
‫ﺇﺩﺍﺭﺓﺍﻟﺠﻠﺴﺔ‪20 ،‬‬ ‫ﺭﺳﻢﺍﻟﺨﺮﺍﺉﻂ‪800 ،‬‬ ‫ﺇﺩﺧﺎﻝﺗﻌﺴﻔﻲ‪.‬ﻳﺮﻯﻫﻨﺪﺳﺔ ﺇﺩﺧﺎﻝ‬
‫ﻧﺼﻮﺹﺭﻣﺰ ﺍﻟﺠﻠﺴﺔ‪217 ،‬‬ ‫ﺍﻟﻤﻬﺎﺟﻤﻴﻦ‪.‬ﺍﻧﻈﺮ ﺃﻳﻀﺎً ﺍﻟﻬﺠﻤﺎﺕ ﺍﻟﻤﺤﺪﺩﺓ‬ ‫ﺍﻟﻤﺴﺘﺨﺪﻡ‪.‬ﻳﺮﻯﻣﺘﺪﺭﺝ‬
‫ﺍﺳﺘﻀﺎﻓﺔﻣﺸﺘﺮﻛﺔ‪665-658 ،‬‬ ‫ﺿﻮﺍﺑﻂﺍﻟﻮﺻﻮﻝ‪278-266 ،‬‬ ‫ﺍﻟﻬﻨﺪﺳﺔﺍﻟﻤﻌﻤﺎﺭﻳﺔ‬
‫ﺍﻟﻮﺻﻮﻝ‪660-658،‬‬ ‫ﺍﻷﻧﻮﺍﻉ‪260-258،‬‬ ‫ﺃﺭﻣﺴﺘﺮﻭﻧﺞ‪،‬ﺩﻳﻒ‪505 ،‬‬
‫ﻧﺼﻮﺹﺍﻟﺒﺎﺏ ﺍﻟﺨﻠﻔﻲ ﺍﻟﻤﺘﻌﻤﺪﺓ‪،‬‬ ‫ﺃﺳﻤﺎءﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﻭﻛﻠﻤﺎﺕ ﺍﻟﻤﺮﻭﺭ‪،‬‬ ‫ﻓﻦﺃﻣﻦ ﺍﻟﺒﺮﻣﺠﻴﺎﺕ‬
‫‪661–660‬‬ ‫‪276–275‬‬ ‫ﺗﻘﺪﻳﺮ)‪ ASCII، 67‬ﺭﻣﺰ ‪، 634‬‬
‫ﺑﻴﻦﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‪،‬‬ ‫‪ASP.NET‬ﺣﺎﻟﺔ ﺍﻟﻌﺮﺽ‪127،‬‬ ‫(‪& McDonald & Schuh‬‬
‫‪663–660‬‬ ‫‪ASPs، 658-665‬‬ ‫‪Dowd‬‬
‫ﺧﻄﻮﺍﺕ‪ XSS‬ﺍﻟﻤﺨﺰﻧﺔ‪439–438 ،‬‬ ‫ﺍﻟﻮﺻﻮﻝ‪660-658،‬‬ ‫‪US-ASCII، 464‬‬
‫ﻣﻌﻤﺎﺭﻳﺎﺕﻣﺘﺪﺭﺟﺔ‪654–648 ،‬‬ ‫ﻧﺼﻮﺹﺍﻟﺒﺎﺏ ﺍﻟﺨﻠﻔﻲ ﺍﻟﻤﺘﻌﻤﺪﺓ‪،‬‬ ‫ﺃﻟﻐﺎﺯﻋﺼﻴﺮﺓ‪ ،‬ﻣﻴﻜﺮﻭﺳﻮﻓﺖ‪103 612 ،‬‬
‫ﺍﻟﻔﺉﺎﺕ‪649-648،‬‬ ‫‪661–660‬‬ ‫‪ASP.NET، 54،‬‬
‫ﺍﻟﺮﻣﻮﺯ‬ ‫ﺑﻴﻦﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‪،‬‬ ‫ﻃﺮﻕﻭﺍﺟﻬﺔ ﺑﺮﻣﺠﺔ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ‬

‫ﺍﻟﺘﺸﻔﻴﺮ‪233-232،‬‬ ‫‪663–660‬‬ ‫ﻗﺎﻋﺪﺓﺍﻟﺒﻴﺎﻧﺎﺕ‪721 ،‬‬


‫ﻣﺆﺷﺮ‪-856‬ﺏ–ﺏ‬

‫ﻏﻴﺮﻓﺮﻳﺪ‪182-181 ،‬‬ ‫ﺗﺨﺰﻳﻦﻭﻳﺐ ﻏﻴﺮ ﺁﻣﻦ‪ ،‬ﺗﺨﻤﻴﻦ‬ ‫ﺫﺍﺕﻣﻌﻨﻰ‪212 ،‬‬


‫ﻳﻤﻜﻦﺍﻟﺘﻨﺒﺆ ﺑﻬﺎ‪،183-182 ،‬‬ ‫ﻛﻠﻤﺔﺍﻟﻤﺮﻭﺭ ‪807 ،811‬‬ ‫ﺗﺮﺟﻤﺔﻋﻨﻮﺍﻥ ‪URL، 396–397‬‬
‫‪197‬ﺍﻟﺘﻔﺮﺩ‪809 ،‬‬ ‫ﺟﻮﺩﺓﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‪806 ،‬‬ ‫ﺍﺳﻢﺍﻟﻤﺴﺘﺨﺪﻡ‪168 ،‬‬
‫‪XSS، 473-474‬‬ ‫ﺍﺳﺘﻌﺎﺩﺓﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‪ ،‬ﻭﻭﻇﺎﺉﻒ "‬ ‫ﺃﻣﺎﻥﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‪6 ،‬‬
‫ﺍﻹﻛﻤﺎﻝﺍﻟﺘﻠﻘﺎﺉﻲ‬ ‫ﺗﺬﻛﺮﻧﻲ" ‪،808–807‬‬ ‫ﻣﺘﺼﻔﺤﺎﺕﻭﻳﺐ‪568-559 ،‬‬
‫ﻫﺠﻤﺎﺕﺍﻟﺨﺼﻮﺻﻴﺔ ﺍﻟﻤﺤﻠﻴﺔ‪،‬‬ ‫‪808‬‬ ‫ﺍﻟﻤﻮﺍﻗﻊﺍﻟﺘﻲ ﺗﻢ ﺇﻧﺸﺎﺅﻫﺎ ﺑﻮﺍﺳﻄﺔ‪–448 ،‬‬
‫‪552‬ﺣﻤﻮﻟﺔ ﻫﺠﻮﻡ ‪XSS، 446‬‬ ‫ﺍﻟﻔﻬﻢ‪805،‬‬ ‫‪ 449‬ﻃﻠﺐ ‪529،XMLHttp‬‬
‫ﺃﺗﻤﺘﺔ‪.‬ﻳﺮﻯﻣﺨﺼﺺ‬ ‫ﺗﻌﺪﺍﺩﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ‪،‬‬ ‫‪XSS، 251‬‬
‫ﺍﻷﺗﻤﺘﺔ‬ ‫‪807–806‬‬ ‫ﻓﻮﺍﺻﻞﺍﻟﺴﻤﺎﺕ‪HTML ،‬‬
‫ﺗﻔﺮﺩﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ‪ ،‬ﺍﺳﺘﻐﻼﻝ ﺍﻟﺜﻐﺮﺓ‬ ‫ﺗﺠﺎﻭﺯﺍﻟﻤﺮﺷﺤﺎﺕ‪ ،‬ﺃﺳﻤﺎء‬
‫ﺍﻷﻣﻨﻴﺔ‪809‬‬ ‫ﺍﻟﺴﻤﺎﺕ‪HTML ،462–461‬‬
‫ﺏ‬ ‫ﺍﻟﻮﺻﻮﻝﻏﻴﺮ ﺍﻟﻤﺼﺮﺡ ﺑﻪ‪،‬‬ ‫ﺗﺠﺎﻭﺯﺍﻟﻤﺮﺷﺤﺎﺕ‪461 ،‬‬
‫ﻛﻠﻤﺔﻣﺮﻭﺭ ﺍﻟﺒﺎﺏ ﺍﻟﺨﻠﻔﻲ‪179-178 ،‬‬ ‫‪813‬‬ ‫ﻗﻴﻢﺍﻟﺴﻤﺎﺕ‪HTML ،‬‬
‫ﺍﻟﻜﻮﺩﺍﻟﻤﺼﺪﺭﻱ ‪708‬‬ ‫ﻧﻤﺎﺫﺝ‪HTML، 160–161‬‬ ‫ﺗﺠﺎﻭﺯﺍﻟﻤﺮﺷﺤﺎﺕ‪462 ،‬‬
‫ﻧﺼﻮﺹﺍﻟﺒﺎﺏ ﺍﻟﺨﻠﻔﻲ‪ ،‬ﻣﺘﻌﻤﺪﺓ‪،‬‬ ‫‪HTTP، 50-51‬‬ ‫ﺳﺠﻼﺕﺍﻟﺘﺪﻗﻴﻖ‬
‫‪661–660‬‬ ‫ﺍﻟﺠﻠﺴﺎﺕﺍﻟﺘﻲ ﺗﻢ ﺗﺠﻨﺒﻬﺎ ﻣﻊ‪،‬‬ ‫ﺍﻟﺘﻌﺎﻣﻞﻣﻊ ﺁﻟﻴﺎﺕ ﺍﻟﺪﻓﺎﻉ‬
‫ﺍﻟﻤﻜﻮﻧﺎﺕﺍﻟﺨﻠﻔﻴﺔ‪.‬ﺍﻧﻈﺮ ﺃﻳﻀﺎ‬ ‫‪209–208‬‬ ‫ﺍﻟﻤﻬﺎﺟﻤﻮﻥ‪،‬ﺍﻟﺤﻔﺎﻅ‪32-31 ،‬‬
‫ﺗﻀﻤﻴﻦﺍﻟﻤﻠﻒ؛ ﺃﻭﺍﻣﺮ ﻧﻈﺎﻡ‬ ‫ﺍﻧﺘﺤﺎﻝﺍﻟﺸﺨﺼﻴﺔ‪180-178 ،‬‬
‫ﺍﻟﺘﺸﻐﻴﻞ؛ﺍﻟﻤﺴﺎﺭ‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪،‬‬ ‫ﺍﻷﺣﺪﺍﺙﺍﻟﺮﺉﻴﺴﻴﺔ‪32 ،‬‬
‫ﺛﻐﺮﺍﺕﺍﻟﻌﺒﻮﺭ‪ ،‬ﺿﻮﺍﺑﻂ‬ ‫‪809–808‬‬ ‫ﺳﻴﺉﺔﺍﻟﺤﻤﺎﻳﺔ‪32 ،‬‬
‫ﺍﻟﻮﺻﻮﻝ‪357،‬‬ ‫ﻋﻴﻮﺏﺍﻟﺘﻨﻔﻴﺬ ﻓﻲ‪،‬‬ ‫ﺍﻟﻘﻴﻤﺔ‪31،‬‬
‫ﻧﻘﻞﺍﻟﺒﻴﺎﻧﺎﺕ‪357 ،‬‬ ‫‪191–185‬‬ ‫ﻣﺴﺎﺭﺍﻟﺘﺪﻗﻴﻖ‪429 ،‬‬
‫ﺣﻘﻦﺭﺃﺱ ﺍﻟﺒﺮﻳﺪ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ‪،‬‬ ‫ﺗﺴﺮﺏﺍﻟﻤﻌﻠﻮﻣﺎﺕ‬ ‫ﺍﻟﻤﺼﺎﺩﻗﺔ‪.‬ﺍﻧﻈﺮ ﺃﻳﻀﺎ‬
‫‪399–398‬‬ ‫ﺍﻟﻮﻗﺎﻳﺔ‪196-195،‬‬ ‫ﺿﻮﺍﺑﻂﺍﻟﻮﺻﻮﻝ؛ ﺇﺩﺍﺭﺓ ﺍﻟﺠﻠﺴﺔ‬
‫ﻣﺆﺷﺮﺃﺳﻌﺎﺭ ﺍﻟﻤﺴﺘﻬﻠﻚ‪390 ،‬‬
‫ﻗﻄﻊﺍﻷﺷﺠﺎﺭ‪201 ،‬‬
‫ﺍﻷﺳﺒﺎﺏ‪394-393،‬‬ ‫ﻭﻇﻴﻔﺔﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ‬ ‫ﺍﻟﺸﺬﻭﺫ‪201،‬‬
‫‪HPP، 394-395‬‬ ‫ﺗﻌﻠﻴﻖﺍﻟﺤﺴﺎﺏ‪ 198-197 ،‬ﻓﺸﻞ‬ ‫ﻋﻴﻮﺏﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ‪416-415 ،‬‬
‫ﺇﻋﺎﺩﺓﺗﻮﺟﻴﻪ ‪ HTTP‬ﻣﻦ ﺟﺎﻧﺐ ﺍﻟﺨﺎﺩﻡ‪،‬‬ ‫ﻓﻲﺍﻟﻔﺘﺢ‪194 ،186-185 ،‬‬ ‫ﻣﻜﺴﻮﺭﺓ‪7،‬‬
‫‪392–390‬‬ ‫ﺭﺳﺎﺉﻞﻓﺸﻞ ﻣﻄﻮﻟﺔ ﻣﺘﻌﺪﺩﺓ‬ ‫ﻭﻇﻴﻔﺔﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ ﺑﺎﻟﻘﻮﺓ ﺍﻟﻐﺎﺷﻤﺔ‪،‬‬
‫ﺍﻻﺳﺘﻐﻼﻝ‪392-391،‬‬ ‫ﺍﻟﻤﺮﺍﺣﻞ‪،195-194 ،190-186،‬‬ ‫‪165–162‬‬
‫ﺣﻘﻦ‪SMTP، 397-402‬‬ ‫‪169–166‬‬ ‫ﻛﺎﺑﺘﺸﺎ‪199-198،‬‬
‫ﺍﻟﻌﻴﻮﺏ‪401-400،‬‬ ‫ﺍﻟﻤﺮﺍﻗﺒﺔ‪201،‬‬ ‫ﺃﻭﺭﺍﻕﺍﻋﺘﻤﺎﺩ‬
‫ﺍﻟﻮﻗﺎﻳﺔ‪402،‬‬ ‫ﺇﺧﻄﺎﺭ‪201،‬‬ ‫ﺍﻟﺘﺤﻘﻖﻏﻴﺮ ﺍﻟﻜﺎﻣﻞ‪،‬‬
‫ﺣﻘﻦﺍﻟﺼﺎﺑﻮﻥ‪388-386 ،‬‬ ‫ﻛﻠﻤﺎﺕﺍﻟﻤﺮﻭﺭ‬ ‫‪181–180‬‬
‫ﺗﻄﺒﻴﻖﻣﺼﺮﻓﻲ‪ ،‬ﺭﺳﺎﺉﻞ ﺍﻟﺨﻄﺄ‬ ‫ﺗﻐﻴﻴﺮﺍﻟﻮﻇﻴﻔﺔ‪–171 ،‬‬ ‫ﺗﻮﺯﻳﻊﻏﻴﺮ ﺁﻣﻦ‪ 184 ،‬ﺗﺨﺰﻳﻦ ﻏﻴﺮ‬
‫‪388،388-387‬‬ ‫‪193،172‬‬ ‫ﺁﻣﻦ‪ 191-190،‬ﺍﻟﺘﻌﺎﻣﻞ ﺍﻟﺴﺮﻱ‪،‬‬
‫ﺍﻟﻌﺜﻮﺭﻭﺍﻻﺳﺘﻐﻼﻝ‪ 389 ،‬ﺍﻟﻮﻗﺎﻳﺔ‪،‬‬ ‫ﺗﻐﻴﻴﺮﻭﻇﻴﻔﺔ ﺳﻮء ﺍﻻﺳﺘﺨﺪﺍﻡ‪،‬‬ ‫‪193-192‬ﺍﻟﻘﻮﺓ‪192 ،‬‬
‫‪390،27‬‬ ‫‪199‬‬
‫ﻫﺠﻤﺎﺕﺗﺮﺟﻤﺔ ﻋﻨﺎﻭﻳﻦ ‪،URL‬‬ ‫ﻭﻇﻴﻔﺔﻣﻨﺴﻴﺔ‪،‬‬ ‫ﺿﻌﻒﺍﻹﺭﺳﺎﻝ‪،‬‬
‫‪397–396‬‬ ‫‪175–173‬‬ ‫‪171–169‬‬
‫ﺣﻘﻦﻃﻠﺐ ﺍﻟﻮﺍﺟﻬﺔ ﺍﻟﺨﻠﻔﻴﺔ‪ ،‬ﺣﺮﻑ‬ ‫ﻣﺒﺪﺉﻲﻣﺘﻮﻗﻊ‪183 ،‬‬ ‫ﺍﻟﺘﺤﻘﻖﻣﻦ ﺍﻟﺼﺤﺔ‪195-193 ،‬‬
‫ﺍﻟﺸﺮﻃﺔﺍﻟﻤﺎﺉﻠﺔ ﻟﻠﺨﻠﻒ ‪ ،841‬ﺍﻹﻓﻼﺕ‬ ‫ﺿﻌﻴﻒ‪162-161،‬‬ ‫‪CSRF، 507-508‬‬
‫ﻣﻊ‪419‬‬ ‫ﻣﺸﺎﻛﻞﻣﻊ‪19 ،‬‬ ‫ﻛﺪﻓﺎﻉ‪159،‬‬
‫ﺣﺮﻑﻋﻼﻣﺔ ﺍﻗﺘﺒﺎﺱ ﻋﻜﺴﻴﺔ‪ ،‬ﺗﻐﻠﻴﻒ‬ ‫ﻭﻇﺎﺉﻒ"ﺗﺬﻛﺮﻧﻲ"‬ ‫ﺍﻟﺘﻌﺎﻣﻞﻣﻊ ﺁﻟﻴﺎﺕ ﺍﻟﺪﻓﺎﻉ‬
‫ﻭﻇﻴﻔﺔ‪363،‬‬ ‫‪193 ،176–175‬‬ ‫ﺍﻟﻮﺻﻮﻝﻣﻊ‪19-18 ،‬‬
‫ﺗﻄﺒﻴﻖﻣﺼﺮﻓﻲ‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪ ،‬ﺃﻣﻦ ‪،808‬‬ ‫ﻋﻴﻮﺏﺍﻟﺘﺼﻤﻴﻢ‪184-161 ،‬‬
‫ﻭﻇﻴﻔﺔﻣﺘﻌﺪﺩﺓ ﺍﻟﻤﺮﺍﺣﻞ‪263 ،‬‬ ‫‪201-191‬‬ ‫ﺍﻟﻘﻮﺍﺉﻢﺍﻟﻤﻨﺴﺪﻟﺔ‪193 ،‬‬
‫ﺭﻣﺰﺍًﻟﻜﻞ ﺻﻔﺤﺔ‪253-252 ،‬‬ ‫ﻣﻨﻊﻫﺠﻮﻡ ﺍﻟﻘﻮﺓ ﺍﻟﻐﺎﺷﻤﺔ‪،‬‬ ‫ﺍﻟﻤﺘﻨﺼﺘﻮﻥ‪169،‬‬
‫ﺣﻘﻦ‪ SOAP، 387-388‬ﺍﻟﺘﻘﺎﻁ‬ ‫‪199–196‬‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‬
‫ﺍﻟﻼﻓﺘﺎﺕ‪101،‬‬ ‫ﺍﻟﺘﻔﺎﺻﻴﻞﺍﻟﺪﻗﻴﻘﺔ‪195 ،‬‬ ‫ﻋﻴﻮﺏﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ‪،‬‬
‫ﺗﺮﻣﻴﺰ‪Base64، 69‬‬ ‫ﺍﻟﺒﻄﺎﻗﺎﺕﺍﻟﺬﻛﻴﺔ‪206 ،‬‬ ‫‪813–811‬‬
‫‪ASP.NET‬ﺣﺎﻟﺔ ﺍﻟﻌﺮﺽ‪126–125،‬‬ ‫ﺛﻐﺮﺓﺃﻣﻨﻴﺔ ﻣﺴﺘﻘﻠﺔ‬ ‫ﺑﻴﺎﻧﺎﺕﺍﻻﻋﺘﻤﺎﺩ‪ ،‬ﺗﻢ ﺇﻧﺸﺎﺅﻫﺎ ﺗﻠﻘﺎﺉﻴﺎً‪،‬‬
‫ﻣﺼﺎﺩﻗﺔﺃﺳﺎﺳﻴﺔ‪ 51–50 ،‬ﺍﺳﺘﻌﻼﻣﺎﺕ‬ ‫ﺍﻟﻤﺎﺳﺤﺎﺕﺍﻟﻀﻮﺉﻴﺔ‪779-778 ،‬‬ ‫‪810–809‬‬
‫ﺩﻓﻌﻴﺔ‪MS-SQL،‬‬ ‫ﺍﻟﺘﻘﻨﻴﺎﺕ‪161-160،‬‬ ‫ﺑﻴﺎﻧﺎﺕﺍﻻﻋﺘﻤﺎﺩ ﻏﻴﺮ ﺁﻣﻨﺔ‬
‫ﻗﻮﺍﻋﺪﺍﻟﺒﻴﺎﻧﺎﺕ‪317 ،‬‬ ‫ﺍﻟﺮﻣﻮﺯ‪160،‬‬ ‫ﺍﻟﺘﻮﺯﻳﻊ‪811-810،‬‬
‫ﺍﻟﺘﻐﻠﺐﻋﻠﻰ ﺣﺪﻭﺩ ﺍﻟﻌﻤﻞ‪،‬‬ ‫ﺃﺳﻤﺎءﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ‬ ‫ﺑﻴﺎﻧﺎﺕﺍﻻﻋﺘﻤﺎﺩ ﻏﻴﺮ ﺁﻣﻨﺔ‬
‫ﻋﻴﻮﺏﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ‪،‬‬ ‫ﺍﻟﺘﻌﺪﺍﺩ‪،169-166،‬‬ ‫ﻧﺎﻗﻞﺍﻟﺤﺮﻛﺔ‪810 ،‬‬
‫‪429،417-416‬‬ ‫‪807–806‬‬ ‫ﺍﻧﺘﺤﺎﻝﺍﻟﺸﺨﺼﻴﺔ‪809-808 ،‬‬
‫ﻓﻬِﺮﺱِ‪-‬ﺝ–ﺝ ‪857‬‬

‫ﻗﻮﺍﻋﺪﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ ﺍﻟﺠﻠﺴﺔ‪،‬‬ ‫ﺍﻟﻤﺤﺘﻮﻯﺍﻟﻤﺨﻔﻲ‪85-81 ،‬‬ ‫ﻟﺤﻢﺍﻟﺒﻘﺮ‪566-565 ،‬‬


‫‪609–606‬‬ ‫ﻭﻇﻴﻔﺔﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ‪–162 ،‬‬ ‫ﺯﻋﻨﻔﺔﺑﺖ‪ ،‬ﺩﺧﻴﻞ ﺍﻟﺘﺠﺸﺆ‪593 ،‬‬
‫ﻣﺘﺘﺒﻊﻣﻌﺎﻟﺠﺔ ﺍﻟﺠﻠﺴﺔ‪ ،‬ﺣﺪ ﺍﻷﻋﻤﺎﻝ‬ ‫‪165‬ﻛﻠﻤﺔ ﻣﺮﻭﺭ ﻓﻲ ﻭﻳﻜﻲ‪ ،‬ﺗﺠﺎﻭﺯ‬ ‫ﺭﻣﻮﺯﺍﻟﺘﺸﻔﻴﺮ‪ 231-228 ،‬ﻣﺮﺍﺟﻌﺔ ﻛﻮﺩ‬
‫‪،609‬ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ‬ ‫ﺳﻌﺔﺍﻟﻤﺨﺰﻥ ﺍﻟﻤﺆﻗﺖ ‪424‬‬ ‫ﺍﻟﺼﻨﺪﻭﻕﺍﻷﺳﻮﺩ‪ 703-702 ،‬ﻣﺮﺷﺤﺎﺕ‬
‫ﺍﻟﻌﻴﻮﺏ‪429 ،417-416،‬‬ ‫ﺍﻟﻜﺸﻒ‪640-639،‬‬ ‫ﻗﺎﺉﻤﺔﻋﻠﻰ ﺍﻟﻘﺎﺉﻤﺔ ﺍﻟﺴﻮﺩﺍء‪24-23 ،‬‬
‫ﺍﺳﺘﻐﻼﻝﻣﻨﻄﻖ ﺍﻷﻋﻤﺎﻝ‪ 259 ،‬ﺑﺎﻳﺖ ﻛﻮﺩ‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪ ،838-837 ،‬ﻓﻴﻀﺎﻧﺎﺕ‬ ‫‪XSS، 451-452‬‬
‫ﺍﻟﻜﻮﻣﺔ‪636-635،‬‬ ‫ﺣﻘﻦ‪ SQL‬ﺃﻋﻤﻰ‪ 626 ،‬ﺣﺮﻓﺎً‬
‫ﻓﻚﺗﺠﻤﻴﻊ ﺍﻟﻤﺘﺼﻔﺢ‬ ‫ﻧﻘﺎﻁﺿﻌﻒ ﻣﺨﺘﻠﻔﺔ ﺑﻮﺍﺣﺪ‪،‬‬ ‫ﻣﺤﻈﻮﺭﺍً‪،‬ﻣﺮﺷﺤﺎﺕ‪،‬‬
‫ﺍﻻﻣﺘﺪﺍﺩﺍﺕ‪141-139،‬‬ ‫‪638–636‬‬ ‫‪312–311‬‬
‫ﺍﻟﺘﻼﻋﺐﺑﺠﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ‪144 ،‬‬ ‫ﺍﻟﺒﺮﻣﺠﻴﺎﺕ‪687،‬‬ ‫ﺗﻄﺒﻴﻘﺎﺕﺍﻟﻤﺪﻭﻧﺔ‪ ،‬ﺍﻹﺩﺧﺎﻝ‪22 ،‬‬
‫ﺍﻟﺘﻌﺘﻴﻢ‪146-144،‬‬ ‫ﺍﻟﻜﻮﺩﺍﻟﻤﺼﺪﺭﻱ ‪709‬‬ ‫ﺷﺮﻃﺎًﻣﻨﻄﻘﻴﺎً‪،‬ﺍﻻﺗﺤﺎﺩ‬
‫ﺟﺎﺭﻱﺍﻟﺘﺤﻤﻴﻞ‪140 ،‬‬ ‫ﺗﺠﺎﻭﺯﺍﺕﺍﻟﻤﻜﺪﺱ‪635-634 ،‬‬ ‫ﺍﻟﻤﺸﻐﻞ‪329،‬‬
‫ﻓﻼﺵ‪141،‬‬ ‫ﻏﻴﺮﻣﺘﺤﻜﻢ ﻓﻴﻬﺎ‪639 ،‬‬ ‫ﺍﻟﻌﻠﻢﺍﻟﺒﻮﻟﻴﺎﻧﻲ‪107 ،‬‬
‫ﺟﺎﻓﺎ‪141،‬‬ ‫ﻃﻮﻝﻋﻨﻮﺍﻥ ‪URL، 639‬‬ ‫ﺍﻟﺘﺤﻘﻖﻣﻦ ﺻﺤﺔ ﺍﻟﺤﺪﻭﺩ‪ ،‬ﺍﻹﺩﺧﺎﻝ‪،‬‬
‫ﺳﻴﻠﻔﺮﻻﻳﺖ‪141،‬‬ ‫ﺍﻟﻐﺶﻓﻲ ﺍﻟﺨﺼﻮﻣﺎﺕ ﺍﻟﻜﺒﻴﺮﺓ‪،‬‬ ‫‪313،25-28‬‬
‫ﺇﻋﺎﺩﺓﺗﺠﻤﻴﻊ ﺍﻟﻜﻮﺩ ﺍﻟﻤﺼﺪﺭ‬ ‫ﻋﻴﻮﺏﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ‪429 ،418 ،‬‬ ‫ﻛﺴﺮﺍﻟﺒﻨﻚ‪ ،‬ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ‬
‫ﺩﺍﺧﻞﺍﻟﻤﺘﺼﻔﺢ‪143-142 ،‬‬ ‫ﺍﻟﻌﻴﻮﺏ‪416-414،‬‬

‫ﺧﺎﺭﺝﺍﻟﻤﺘﺼﻔﺢ‪143 ،‬‬ ‫ﺩﺧﻴﻞﺍﻟﺘﺠﺸﺆ‪86 ،84-82 ،‬‬ ‫ﻣﻠﺤﻘﺎﺕﺍﻟﻤﺘﺼﻔﺢ‪.‬ﺍﻧﻈﺮ ﺃﻳﻀﺎ‬


‫ﻋﻨﻮﺍﻥ‪URL، 140‬‬
‫ﺯﻋﻨﻔﺔﺑﺖ‪593 ،‬‬ ‫ﻓﻼﺵ؛ﺟﺎﻓﺎ؛ ﻣﻜﻮﻥ ﻛﺎﺯﻳﻨﻮ‬
‫ﺭﻣﻮﺯﺍﻟﺘﺸﻔﻴﺮ‪" 231-228 ،‬ﺃﺩﺍﺓ ﻓﻚ‬ ‫‪Silverlight، 133-134‬‬
‫ﺭﻣﻮﺯﺍﻷﺣﺮﻑ"‪ 593 ،‬ﺃﺗﻤﺘﺔ ﻣﺨﺼﺼﺔ‪،‬‬ ‫ﺍﻟﻤﻬﺎﺟﻤﻮﻥ‪134،‬‬
‫ﺝ‬ ‫ﻛﺮﻭﻡ‪750،‬‬
‫ﺷﻬﺎﺩﺓ‪،CA، Burp Suite‬‬ ‫‪602–590‬‬ ‫ﺍﻟﺘﺤﻜﻢﻓﻲ ﺇﺩﺧﺎﻝ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻣﻦ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ‬
‫‪759–758‬‬ ‫ﺣﺼﺎﺩﺍﻟﺒﻴﺎﻧﺎﺕ‪600-598 ،‬‬ ‫ﻣﻊ‪153–133،‬‬
‫ﻋﻤﻠﻴﺎﺕﺍﻻﺳﺘﺮﺟﺎﻉ‪ ،‬ﺍﻟﻮﻇﻴﻔﺔ‪،‬‬ ‫ﻣﻌﺮﻓﺎً‪،‬‬ ‫ﺍﻋﺘﺮﺍﺽﻧﻘﻞ ﺍﻟﺒﻴﺎﻧﺎﺕ‪،‬‬
‫‪520‬ﺍﻟﺘﻄﺒﻴﻊ‬ ‫‪597–594‬‬ ‫‪139–135‬‬
‫ﺍﻟﻤﺪﺧﻼﺕ‪29-28،‬‬ ‫ﺍﻟﺘﻀﺒﻴﺐ‪602-600،‬‬ ‫ﺍﻟﻌﻘﺒﺎﺕ‪139-138،‬‬
‫ﺑﺮﻧﺎﻣﺞﺧﺎﺩﻡ ﺍﻟﻮﻳﺐ‪694–689 ،‬‬ ‫ﺍﻟﺤﻤﻮﻻﺕ‬ ‫ﺍﻟﺒﻴﺎﻧﺎﺕﺍﻟﻤﺘﺴﻠﺴﻠﺔ‪138-136 ،‬‬
‫‪CAPTCHA‬‬ ‫ﺍﻻﺧﺘﻴﺎﺭ‪594-592،‬‬ ‫ﻣﺼﺤﺢﺍﻷﺧﻄﺎء ﺍﻟﻤﺮﻓﻖ‪152-151 ،‬‬
‫ﺍﻟﻤﻬﺎﺟﻤﻮﻥ‪199-198،‬‬ ‫ﺍﻟﺘﻤﻮﺿﻊ‪592-591،‬‬ ‫ﻓﻚﺍﻟﺘﺠﻤﻴﻊ‪150-139 ،‬‬
‫ﺍﻷﺗﻤﺘﺔﺍﻟﻤﺨﺼﺼﺔ‪،‬‬ ‫ﺍﻟﺮﻣﻮﺯﺍﻟﻤﺘﻮﻗﻌﺔ‪ ،‬ﺗﺤﻠﻴﻞ ﺍﻻﺳﺘﺠﺎﺑﺔ‬ ‫ﺍﻟﺒﺎﻳﺖﻛﻮﺩ‪141-139 ،‬‬
‫‪611–610‬‬ ‫‪594،214-213‬‬ ‫ﺗﺸﻮﻳﺶﺍﻟﺒﺎﻳﺖ ﻛﻮﺩ‪،‬‬
‫ﺍﻟﻤﺼﺎﺩﻗﺔ‪ 199-198،‬ﺧﻄﺄ‪،‬‬ ‫ﻫﺠﻮﻡﻗﻨﺎﺹ‪592 ،‬‬ ‫‪146–144‬‬
‫‪611-610‬‬ ‫ﺗﺮﻣﻴﺰﻳﻮﻧﻴﻜﻮﺩ‪375 ،‬‬ ‫ﻣﺜﺎﻝﻋﻠﻰ ﺗﻄﺒﻴﻘﺎﺕ ‪Java، 146–150‬‬
‫ﺍﻷﺗﻤﺘﺔﺍﻟﻤﺨﺼﺼﺔ‪،‬‬ ‫ﺳﻼﺳﻞﻭﻛﻴﻞ ﺍﻟﻤﺴﺘﺨﺪﻡ‪100 ،‬‬ ‫ﻣﻌﺎﻟﺠﺔ‪JavaScript‬‬
‫‪612–610‬‬ ‫ﻭﻛﻴﻞ‪Burp، 754-755‬‬ ‫ﺍﻟﺒﺎﻳﺖﻛﻮﺩ ﺍﻷﺻﻠﻲ‪144 ،‬‬
‫ﺍﻟﻤﻬﺎﺟﻤﻮﻥ‪611-610،‬‬ ‫ﻣﻜﺮﺭﺍﻟﺘﺠﺸﺆ‪766 ،681 ،473 ،‬‬ ‫ﺍﻟﻜﻮﺩﺍﻟﻤﺼﺪﺭ‪144-142 ،‬‬
‫ﺣﻞﺗﻠﻘﺎﺉﻲ‪،‬‬ ‫ﻣﺎﺳﺢﺍﻟﺘﺠﺸﺆ‪765-764 ،‬‬ ‫ﻓﺎﻳﺮﻓﻮﻛﺲ‪750،‬‬
‫‪612–611‬‬ ‫ﺟﻬﺎﺯﺗﺴﻠﺴﻞ ﺍﻟﺘﺠﺸﺆ‪767 ،‬‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪804-802 ،‬‬
‫ﺍﻟﺒﺸﺮﻳﺤﻠﻮﻥ ‪612‬‬ ‫ﺇﻋﺪﺍﺩﺍﻟﺘﺤﻠﻴﻞ ﺍﻟﺘﻠﻘﺎﺉﻲ‪ ،‬ﺍﺧﺘﺒﺎﺭ‬ ‫ﻋﻨﺎﺻﺮﺗﺤﻜﻢ ‪ActiveX، 804‬‬
‫ﻃﺎﺉﺮﺍﺕﺑﺪﻭﻥ ﻃﻴﺎﺭ‪612 ،‬‬
‫ﻋﺸﻮﺍﺉﻴﺔ‪ 223‬ﺭﻣﺰﺍً‪،‬‬ ‫ﻣﺼﺤﺢﺍﻷﺧﻄﺎء‪804–803 ،‬‬
‫ﺃﻭﺭﺍﻕﺍﻷﻧﻤﺎﻁ ﺍﻟﻤﺘﺘﺎﻟﻴﺔ )‪(CSS‬‬ ‫‪221–219‬‬ ‫ﻓﻚﺍﻟﺘﺠﻤﻴﻊ‪803-802 ،‬‬
‫ﺍﻷﻧﻤﺎﻁﺍﻟﺘﻲ ﺗﻢ ﺗﻘﻴﻴﻤﻬﺎ ﺩﻳﻨﺎﻣﻴﻜﻴﺎً‪،‬‬ ‫ﻋﻨﻜﺒﻮﺕﺍﻟﺘﺠﺸﺆ‪80 ،76-74 ،‬‬ ‫ﻣﻜﻮﻧﺎﺕﺍﻟﻌﻤﻴﻞ ﺍﻷﺻﻠﻴﺔ‪153 ،‬‬
‫‪459‬‬ ‫ﻣﺠﻤﻮﻋﺔﺍﻟﺘﺠﺸﺆ‬ ‫ﺳﻴﺎﺳﺔﺍﻷﺻﻞ ﻧﻔﺴﻪ‪527-525 ،‬‬
‫ﻋﺎﺉﻠﺔﺍﻟﺨﻄﻮﻁﻣﻠﻜﻴﺔ‪،‬‬ ‫‪AMF، 137‬‬ ‫ﻓﻼﺵ‪526-525،‬‬
‫‪519–518‬‬ ‫ﺗﻌﻴﻴﻦﺍﻟﺘﻄﺒﻴﻘﺎﺕ‪268 ،‬‬ ‫ﺟﺎﻭﺓ‪527،‬‬
‫ﺣﻘﻦﺍﻟﺒﻴﺎﻧﺎﺕ ﻋﺒﺮ ﺍﻟﻨﻄﺎﻗﺎﺕ‬ ‫‪ASP.NET‬ﺣﺎﻟﺔ ﺍﻟﻌﺮﺽ‪126،‬‬ ‫ﺳﻴﻠﻔﺮﻻﻳﺖ‪527-526،‬‬
‫ﺃﺳﺮ‪519-517،‬‬ ‫ﺷﻬﺎﺩﺓ‪" CA، 758–759‬ﻃﺮﻳﻘﺔ‬ ‫ﺍﺳﺘﻬﺪﺍﻑﺍﻟﻨﻬﺞ‪ 135 ،‬ﺗﻜﻨﻮﻟﻮﺟﻴﺎ‪،‬‬
‫ﻭﻇﻴﻔﺔﺍﻟﻮﻳﺐ‪ ،‬ﻣﻜﻮﻥ ﺍﻟﻜﺎﺯﻳﻨﻮ‬ ‫ﻃﻠﺐﺍﻟﺘﻐﻴﻴﺮ"‬ ‫‪65‬‬
‫‪،61-60‬ﺍﻟﻤﺘﺼﻔﺢ‬ ‫ﺍﻷﻣﺮ‪475-474،‬‬ ‫ﺍﻟﻤﺘﺼﻔﺤﺎﺕ‪.‬ﻳﺮﻯﺳﺠﻞ ﺗﺼﻔﺢ‬
‫ﺍﻻﻣﺘﺪﺍﺩﺍﺕ‪134-133،‬‬ ‫ﺍﻟﻤﻘﺎﺭﻥ‪167،‬‬ ‫ﻣﺘﺼﻔﺤﺎﺕﺍﻟﻮﻳﺐ‬
‫ﺍﻟﻤﻬﺎﺟﻤﻮﻥ‪134،‬‬ ‫ﺍﻛﺘﺸﺎﻑﺍﻟﻤﺤﺘﻮﻯ‪89-88 ،‬‬ ‫ﺳﺮﻗﺔ‪ JavaScript، 560‬ﻫﺠﻮﻣﺎً‬
‫ﺳﻲﺑﻲ ﺳﻲ‪.‬ﻳﺮﻯﺍﺳﺘﻌﻼﻡ ‪ CGI‬ﻟﺘﺴﻠﺴﻞ‬ ‫‪DSer، 136-137‬‬ ‫ﻣﺤﻠﻴﺎًﻋﻠﻰ ﺍﻟﺨﺼﻮﺻﻴﺔ‪552 ،‬‬
‫ﻛﺘﻠﺔﺍﻟﺘﺸﻔﻴﺮ‪736-735 ،‬‬ ‫"ﻃﻠﺐ ﻓﻲ ﺍﻟﻤﺘﺼﻔﺢ"‪ 273-272 ،‬ﺁﻟﻴﺎﺕ‬ ‫ﺗﻘﻨﻴﺔﻗﻮﺓ ﻏﺎﺷﻤﺔ‬
‫ﺗﺴﻠﺴﻞ‬ ‫ﺍﻟﺘﻌﺎﻣﻞﻣﻊ ﺍﻟﺠﻠﺴﺔ‪،‬‬ ‫ﺗﺴﻤﻴﺔﺗﻌﻴﻴﻦ ﺍﻟﺘﻄﺒﻴﻖ‬
‫ﺳﻲﺑﻲ ﺳﻲ‬ ‫‪609–603‬‬ ‫ﺗﻤﺎﺭﻳﻦﺍﻟﻤﺨﻄﻄﺎﺕ‪88 ،‬‬
‫ﺭﻣﻮﺯﺍﻟﺘﺸﻔﻴﺮ‪PKC # 5 233-227 ،‬‬ ‫ﺟﺮﺓﺍﻟﺒﺴﻜﻮﻳﺖ‪604-603 ،‬‬ ‫ﺃﻣﺎﻥﺍﻟﻤﺼﺎﺩﻗﺔ‬
‫ﺍﻟﺤﺸﻮ‪233-227،‬‬ ‫ﻃﻠﺐﻭﺣﺪﺍﺕ ﺍﻟﻤﺎﻛﺮﻭ‪606–604 ،‬‬ ‫ﺍﻟﻮﻗﺎﻳﺔ‪199-196،‬‬
‫ﻣﺆﺷﺮ‪-858‬ﻧﺴﺨﺔ‬

‫ﺍﻛﺘﺸﺎﻑ‪93-80،‬‬ ‫ﺃﺳﺎﻃﻴﺮﺍﻟﺘﺤﻘﻖ‪156-155 ،‬‬ ‫‪XSS، 450-451‬‬


‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪،‬‬ ‫ﻭﻇﺎﺉﻒﺍﻟﻮﻳﺐ‪65-57 ،‬‬ ‫"ﻃﺮﻳﻘﺔ ﻃﻠﺐ ﺍﻟﺘﻐﻴﻴﺮ"‬
‫ﺗﻌﻴﻴﻦﺍﻟﺘﻄﺒﻴﻖ‪،‬‬ ‫ﺃﻳﺎﻛﺲ‪384 ،63-62،‬‬ ‫ﺍﻷﻣﺮ‪475-474،‬‬
‫‪797–796‬‬ ‫ﻣﻠﺤﻖﺍﻟﻤﺘﺼﻔﺢ‬ ‫"ﻣﺜُﻴﺮ ﺍﻟﺸﺨﺼﻴﺎﺕ"‪ ،‬ﺑﺮﺏ‬
‫ﺍﻻﺳﺘﺪﻻﻝﻣﻦ ﺍﻟﻤﻨﺸﻮﺭ‬ ‫ﺍﻟﺘﻘﻨﻴﺎﺕ‪65،‬‬ ‫ﺩﺧﻴﻞ‪593،‬‬
‫ﺍﻛﺘﺸﺎﻑﺍﻟﻤﺤﺘﻮﻯ‪،‬‬ ‫‪CSS، 60-61‬‬ ‫ﺍﻻﺳﺘﺜﻨﺎءﺍﺕﺍﻟﺘﻲ ﺗﻢ ﺍﻟﺘﺤﻘﻖ ﻣﻨﻬﺎ‪30 ،‬‬
‫‪89–85‬‬ ‫ﺩﻭﻡ‪62،‬‬ ‫ﺍﻟﺪﻓﻊ‪،‬ﻋﻴﻮﺏ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ‪،‬‬
‫ﻧﻴﻜﺘﻮﻳﻜﺘﺸﻒ‪93 ،‬‬ ‫ﺍﻷﺷﻜﺎﻝ‪60-58،‬‬ ‫‪411–410‬‬
‫ﺍﻟﻤﻌﻠﻮﻣﺎﺕﺍﻟﻌﺎﻣﺔ‬ ‫‪HTML، 58‬‬ ‫ﺍﻟﺘﺤﻘﻖﻣﻦ ﺍﻟﻜﻤﻴﺔﺗﻄﺒﻴﻖ ﺻﻐﻴﺮ‪،‬‬
‫ﺍﻛﺘﺸﺎﻑ‪91-89،‬‬ ‫‪HTML5، 64–65‬‬ ‫‪141‬ﻛﺮﻭﻡ‪750 ،‬‬
‫ﺍﻟﺘﺘﺒﻊﺍﻟﻤﻮﺟﻪ ﻟﻠﻤﺴﺘﺨﺪﻡ‬ ‫ﺍﻟﺮﻭﺍﺑﻂﺍﻟﺘﺸﻌﺒﻴﺔ‪58 ،‬‬ ‫ﻓﺎﻱﻣﺘﺠﺬﺭﺍﻟﻨﻈﺎﻡ‬
‫ﺍﻛﺘﺸﺎﻑ‪83-81،‬‬ ‫ﺟﺎﻓﺎﺳﻜﺮﻳﺒﺖ‪61 ،‬‬ ‫ﺛﻐﺮﺍﺕﻋﺒﻮﺭ ﺍﻟﻤﺴﺎﺭ‪،‬‬
‫ﺧﺎﺩﻡﺍﻟﻮﻳﺐ ﺍﻟﻤﺴﺘﻐﻞ ﻟـ‬ ‫ﺟﻴﺴﻮﻥ‪63،‬‬ ‫‪381–380‬‬
‫ﺍﻛﺘﺸﺎﻑ‪93-91،‬‬ ‫ﺳﻴﺎﺳﺔﺍﻟﻤﻨﺸﺄ ﻧﻔﺴﻪ‪64 ،‬‬ ‫ﻳﻮﻧﻜﺲ‪381،‬‬
‫ﺍﻛﺘﺸﺎﻑ‪ Wikto، 92–93‬ﺧﺎﺩﻡ‬ ‫‪VBScript، 61‬‬ ‫ﺗﺴﻠﺴﻞﻛﺘﻠﺔ ﺍﻟﺘﺸﻔﻴﺮ )‪(CBC‬‬
‫ﺍﻟﻮﻳﺐﻭﺍﻻﻓﺘﺮﺍﺿﻲ‪،92 ،‬‬ ‫ﺗﺼﺎﻋﺪﺣﻤﻮﻻﺕ ﻫﺠﻮﻡ ‪،XSS‬‬ ‫ﺭﻣﻮﺯﺍﻟﺘﺸﻔﻴﺮ‪PKC # 5 233-227 ،‬‬
‫‪677–671‬‬ ‫‪447‬‬ ‫ﺍﻟﺤﺸﻮ‪ 687-686،‬ﺍﻟﻨﺺ ﺍﻟﻤﺸﻔﺮ‪،‬‬
‫ﻭﻇﻴﻔﺔﺍﻟﺘﺼﺤﻴﺢ‪ 672-671 ،‬ﻣﻨﻬﺠﻴﺔ‬ ‫ﺍﻷﻧﻈﻤﺔﺍﻟﻤﺴﺘﻨﺴﺨﺔ‪664 ،‬‬ ‫‪226-224‬‬
‫ﺍﻟﻤﺘﺴﻠﻞ‪JMX، 674-676 847،‬‬ ‫ﺍﻟﺤﻮﺳﺒﺔﺍﻟﺴﺤﺎﺑﻴﺔ‬ ‫‪.‬ﺍﻟﺼﻒ ﺍﻷﻭﻝﻟﻴﺰ‪ 141 ،‬ﺍﻷﻣﻮﺍﻝ‬
‫ﺍﻟﻤﻬﺎﺟﻤﻮﻥ‪665-663 ،14،‬‬ ‫ﺍﻟﺼﺎﻓﻴﺔﻋﻨﺼﺮ‪،‬‬
‫ﻭﻇﺎﺉﻒﻗﻮﻳﺔ‪ 674–673 ،‬ﻭﻇﻴﻔﺔ‬ ‫ﺍﻷﻧﻈﻤﺔﺍﻟﻤﺴﺘﻨﺴﺨﺔ‪664 ،‬‬ ‫‪388–387‬‬
‫ﻋﻴﻨﺔ‪ 673–672،‬ﺍﻛﺘﺸﺎﻑ ﺍﻟﻤﺤﺘﻮﻯ‪،‬‬ ‫ﺍﻟﺮﻣﻮﺯ‪665،‬‬ ‫ﻧﺺﻋﺎﺩﻱ‪ ،‬ﻛﻠﻤﺎﺕ ﻣﺮﻭﺭ‪191–190 ،‬‬
‫ﻣﺠﻤﻮﻋﺔ‪،Burp‬‬ ‫ﺁﻟﻴﺔﺍﻟﺪﻓﺎﻉ‪664 ،‬‬ ‫‪.clickjacking، 511‬ﺍﻧﻈﺮ ﺃﻳﻀﺎﻣﺴﺘﺨﺪﻡ‬
‫‪89–88‬‬ ‫ﻧﻬﺞﺍﻟﻤﻴﺰﺓ ﺃﻭﻻ‪ 665-664 ً،‬ﻓﻘﺪﺍﻥ‬ ‫ﻫﺠﻤﺎﺕﺗﺼﺤﻴﺢ ﺍﻟﻮﺍﺟﻬﺔ ﻋﻠﻰ‬
‫ﻧﻈﺎﻡﺇﺩﺍﺭﺓ ﺍﻟﻤﺤﺘﻮﻯ‬ ‫ﺍﻟﺴﻴﻄﺮﺓﻓﻲ‪ 664-663 ،‬ﻫﺠﺮﺓ ﺃﺩﺍﺓ‬ ‫ﻣﻜﻮﻧﺎﺕﺍﻟﻌﻤﻴﻞ‪ ،‬ﺍﻷﺻﻠﻴﺔ‪ 153 ،‬ﻣﻦ‬
‫‪)CMS(، 77‬‬ ‫ﺍﻹﺩﺍﺭﺓ‬ ‫ﺟﺎﻧﺐﺍﻟﻌﻤﻴﻞ‬
‫ﺧﻮﺍﺩﻡﺍﻟﻮﻳﺐ‪92 ،‬‬ ‫ﺇﻟﻰ‪664‬‬ ‫ﻫﺠﻤﺎﺕ‪13،‬‬
‫ﻃﻮﻝﺍﻟﻤﺤﺘﻮﻯﺭﺃﺱ ﺍﻟﺼﻔﺤﺔ‪42 ،‬‬ ‫ﺗﻄﺒﻴﻘﺎﺕﺍﻟﻮﻳﺐ‪5 ،‬‬ ‫ﻧﻘﻞﺍﻟﺒﻴﺎﻧﺎﺕ‪127-118 ،‬‬
‫ﺑﺮﻳﺪﻃﻠﺐ‪581 ،‬‬ ‫ﺗﺨﺰﻳﻦﺍﻟﻮﻳﺐ‪665 ،‬‬ ‫‪ASP.NET‬ﺣﺎﻟﺔ ﺍﻟﻌﺮﺽ‪،‬‬
‫ﻧﻮﻉﺍﻟﻤﺤﺘﻮﻯﺍﻟﺮﺃﺱ‪،138 ،136 ،‬‬ ‫ﻧﻈﺎﻡﺇﺩﺍﺭﺓ ﺍﻟﻤﺤﺘﻮﻯ‪.‬ﻳﺮﻯﺇﺩﺍﺭﺓ ﺍﻟﻤﺤﺘﻮﻯ‬ ‫‪127–124‬‬
‫‪526–525 ،478،476‬‬ ‫ﻧﻈﺎﻡ‬ ‫ﻟﻠﻤﻄﻮﺭﻳﻦ‪118،‬‬
‫ﻳﻌﺘﻤﺪﻋﻠﻰ ﺍﻟﺴﻴﺎﻕ‪ ،‬ﺍﻟﻮﺻﻮﻝ‬ ‫ﺃﺩﻭﺍﺕﺗﺼﻔﺢ ﺍﻟﻜﻮﺩ‪ 743 ،‬ﺣﻘﻦ‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪ 801 ،‬ﻧﻤﻮﺫﺝ ‪HTML‬‬
‫ﺍﻟﻀﻮﺍﺑﻂ‪258،‬‬ ‫ﺍﻟﻜﻮﺩ‪288،‬‬ ‫ﻣﺨﻔﻲ‪ 120–118،‬ﻣﻠﻒ ﺗﻌﺮﻳﻒ‬
‫ﻛﻮﻛﻴﺰﺍﻟﺮﺃﺱ‪ 47 ،41 ،‬ﺣﻘﻦ‬ ‫ﻣﺮﺍﺟﻌﺔﺍﻟﻜﻮﺩ‪.‬ﻳﺮﻯﺍﻟﻜﻮﺩ ﺍﻟﻤﺼﺪﺭ‪،‬‬ ‫ﺍﺭﺗﺒﺎﻁ‪HTTP، 121‬‬
‫ﻣﻠﻔﺎﺕﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ‬ ‫ﻣﺮﺍﺟﻌﺔ‬ ‫ﺑﻴﺎﻧﺎﺕﻏﻴﺮ ﺷﻔﺎﻓﺔ‪124-123 ،‬‬
‫ﺃﺳﺎﻟﻴﺐﺍﻟﻤﻬﺎﺟﻢ‪ ،‬ﺗﺜﺒﻴﺖ ﺍﻟﺠﻠﺴﺔ‬ ‫ﺍﻷﻭﺍﻣﺮ‪.‬ﻳﺮﻯﻧﻈﺎﻡ ﺍﻟﺘﺸﻐﻴﻞ‬ ‫ﺍﻟﻤﺤُﻴﻞﺭﺃﺱ ﺍﻟﺼﻔﺤﺔ‪122 ،‬‬
‫‪،537-536‬ﻣﻠﻒ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ‬ ‫ﺍﻷﻭﺍﻣﺮ‬ ‫ﺍﻷﻣﻦ‪156-154،‬‬
‫‪،540-537‬ﺣﺰﻣﺔ ‪ ،Burp‬ﻣﻠﻒ ﺗﻌﺮﻳﻒ‬ ‫ﺗﻌﻠﻴﻘﺎﺕ‬ ‫ﻣﻌﻠﻤﺎﺕﻋﻨﻮﺍﻥ ‪ ،URL‬ﻣﻨﻬﺠﻴﺔ‬
‫ﺍﻻﺭﺗﺒﺎﻁ‪604-603‬‬ ‫‪MySQL، 303–304،312‬‬ ‫ﺍﻟﻬﺎﻛﺮ‪ ،122-121‬ﺍﻟﺒﻴﺎﻧﺎﺕ‬
‫ﺗﻌﺴﻔﻲ‪537،‬‬ ‫ﺍﻟﻜﻮﺩﺍﻟﻤﺼﺪﺭﻱ‪711-710 ،‬‬ ‫ﻧﺎﻗﻞﺍﻟﺤﺮﻛﺔ‪801 ،‬‬
‫ﺍﻟﺼﻔﺎﺕ‪47،‬‬ ‫‪SQL، 312‬‬ ‫‪HPP، 548-550‬‬
‫ﻗﻴﻮﺩﺍﻟﻨﻄﺎﻕ‪ 247-245 ،‬ﻣﻨﻬﺠﻴﺔ‬ ‫‪.‬ﺗﻄﺒﻴﻘﺎًﻣﺠﻤﻌﺎً ‪، Burp Suite، 167‬‬ ‫ﺗﺴﺮﻳﺒﺎﺕﺍﻟﻜﺸﻒ ﻋﻦ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ‪،‬‬
‫ﺍﻟﻤﺘﺴﻠﻞ‪HTTP، 19، 47 821-820،‬‬ ‫‪Comparer‬ﻳﺮﻯﻣﺤﻠﻲ‬ ‫‪629‬‬
‫ﻣﻜﻮﻧﺎﺕﺍﻟﻌﻤﻴﻞ‬ ‫ﺣﻘﻨﺔ‪550-531،‬‬
‫ﻧﻘﻞﺍﻟﺒﻴﺎﻧﺎﺕ ﻣﻦ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ‪،‬‬ ‫ﺗﺴﻠﺴﻼﺕﻣﺨﻔﻴﺔ‪ 215-213 ،‬ﺗﺴﺠﻴﻞ‬ ‫‪SQL، 547–548‬‬
‫‪121‬‬ ‫ﺩﺧﻮﻝﻣﺘﺰﺍﻣﻦ‪250 ،‬‬ ‫ﺟﺎﻓﺎﺳﻜﺮﻳﺒﺖ‪ ،‬ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺍﻟﺼﺤﺔ ﻣﻊ‪،‬‬
‫ﺭﻣﻮﺯﺇﺩﺍﺭﺓ ﺍﻟﺠﻠﺴﺔ‪،‬‬ ‫ﺍﻷﺧﻄﺎءﺍﻟﺸﺮﻃﻴﺔ‪ ،‬ﺣﻘﻦ ‪،SQL‬‬ ‫‪156 ،131–130‬‬
‫‪234-236،207-208‬‬ ‫‪322–320‬‬ ‫ﺍﻷﻣﻦ‪432-431،‬‬
‫ﺣﻘﻦﺭﺃﺱ ‪ ،HTTP‬ﻭﻇﻴﻔﺔ ﺗﺴﺠﻴﻞ‬ ‫ﻣﺮﺷﺤﺎﺕﺍﻻﺳﺘﻌﻼﻣﺎﺕ ﺍﻟﺘﺮﺍﺑﻄﻴﺔ‪350 ،‬‬ ‫ﺍﺧﺘﻄﺎﻑﺭﻣﺰ ﺍﻟﺠﻠﺴﺔ‪،‬‬
‫ﺍﻟﺪﺧﻮﻝ‪163 ،533‬‬ ‫ﺣﻘﻦ‪ LDAP، 352-353‬ﻳﺘﺼﻞ‬ ‫‪244–243‬‬
‫ﻗﻴﻮﺩﺍﻟﻤﺴﺎﺭ‪248-247 ،‬‬ ‫ﺍﻟﻄﺮﻳﻘﺔ‪ 755 ،682،‬ﺍﻟﻤﺤﺘﻮﻯ‬ ‫ﺣﻘﻦ‪SQL، 547–548‬‬
‫ﻣﺴﺘﻤﺮﺓ‪550،‬‬ ‫ﺷﻬﺎﺩﺓ‪SSL، 138‬‬
‫ﻣﻨﻌﻜﺲ‪XSS، 437-438‬‬ ‫ﺍﻟﺘﺮﻗﻴﻢﻭﺍﻟﻮﻇﺎﺉﻒ‪،‬‬ ‫ﺇﺩﺧﺎﻝﺍﻟﻤﺴﺘﺨﺪﻡ ﻳﺘﻢ ﺍﻟﺘﺤﻜﻢ ﻓﻴﻪ ﺑﻮﺍﺳﻄﺔ ‪117‬‬
‫ﺗﺬﻛﺮﻧﻲ‪408–407،‬‬ ‫‪97–74‬‬ ‫ﻣﻠﺤﻘﺎﺕﺍﻟﻤﺘﺼﻔﺢ‪153-133 ،‬‬
‫ﻭﻇﺎﺉﻒ"ﺗﺬﻛﺮﻧﻲ"‬ ‫ﻣﺨﺘﻔﻲ‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪،‬‬
‫‪176–175‬‬ ‫ﺗﻘﻨﻴﺎﺕﺍﻟﻘﻮﺓ ﺍﻟﻐﺎﺷﻤﺔ‬ ‫‪802–801‬‬
‫ﺍﻻﺳﻢﺍﻟﺬﻱ ﺳﻴﻈﻬﺮ‪408–407،‬‬ ‫ﺍﻛﺘﺸﺎﻑ‪85-81،‬‬ ‫ﻧﻤﺎﺫﺝ‪HTML، 127–133‬‬
‫ﻓﻬِﺮﺱِ‪-‬ﺝ–ﺝ ‪859‬‬

‫ﺍﻟﻜﻮﻛﻴﺰ‪438-437،‬‬ ‫ﺍﻟﺘﺼﻌﻴﺪﺇﻟﻰ ﺻﻔﺤﺎﺕ ﺃﺧﺮﻯ‪،‬‬ ‫ﺇﺩﺍﺭﺓﺍﻟﺠﻠﺴﺎﺕ‪ ،‬ﻟﻴﺒﺮﺍﻟﻴﺔ‬


‫ﺍﻟﻤﺮﺷﺤﺎﺕﺍﻟﺪﻓﺎﻋﻴﺔ‪،456-455 ،‬‬ ‫‪474–473‬‬ ‫ﺍﻟﻨﻄﺎﻕ‪248-244،‬‬
‫ﺍﻟﺘﻮﺻﻴﻞ‪449-448،‬‬ ‫ﺍﻹﺟﺮﺍءﺍﺕﺍﻟﻤﺤﻔﺰﺓ‪446-445 ،‬‬ ‫ﺍﺳﺘﻐﻼﻝ‪ XSS‬ﻋﺒﺮ‪ 475 ،‬ﻳﻨﺴﺦ‬
‫ﺗﻢﺗﺤﻮﻳﻞ ‪ DOM XSS‬ﻣﻦ‪،‬‬ ‫ﺣﻘﻨﺔﻃﺮﻭﺍﺩﺓ‪ 445-444 ،‬ﻋﻼﻗﺔ‬ ‫ﺍﻟﻄﺮﻳﻘﺔ‪679،‬‬
‫‪473–472‬‬ ‫ﺍﻟﺜﻘﺔ‬ ‫ﻋﺪﺩ)(ﻭﻇﻴﻔﺔ‪348 ،‬‬
‫ﺍﻻﺳﺘﻐﻼﻝ‪474 ،438-435،‬‬ ‫ﺍﻻﺳﺘﻐﻼﻝ‪447-446،‬‬ ‫ﺃﻭﺭﺍﻕﺍﻋﺘﻤﺎﺩ‬
‫ﺇﻳﺠﺎﺩﻭﺍﺳﺘﻐﻼﻝ‪،‬‬ ‫ﺍﻟﺘﺸﻮﻳﻪﺍﻻﻓﺘﺮﺍﺿﻲ‪444-443 ،‬‬ ‫ﺍﻟﻤﻬﺎﺟﻤﻮﻥ‪171،‬‬
‫‪481–452‬‬ ‫ﻣﻬﺎﺟﻤﺎً‪251،‬‬ ‫ﺛﻐﺮﺓﻓﻲ ﺍﻟﻤﺼﺎﺩﻗﺔ‪،‬‬
‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪،‬‬ ‫ﺍﻟﻤﺼﺎﺩﻗﺔ‪474-473،‬‬ ‫‪171–169‬‬
‫‪830–829‬‬ ‫ﺍﻟﺘﺴﻠﺴﻞ‪451-450،‬‬ ‫ﺑﺮﻳﺪﺇﻟﻜﺘﺮﻭﻧﻲ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ‪184‬‬
‫ﻗﻴﻮﺩ‪HTML، 495–496 IE، 435‬‬ ‫ﺍﻟﻤﻀﺎﺩ‪ CSRF‬ﻳﻬﺰﻡ ‪CSRF‬‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪،‬‬
‫ﺍﻟﺮﻣﻮﺯﻣﻊ‪511-510 ،‬‬ ‫ﺍﻟﻤﺼﺎﺩﻗﺔ‬
‫ﺇﺩﺧﺎﻝﺍﻹﺩﺧﺎﻝ‪495 ،‬‬ ‫ﺭﺳﺎﺉﻞﺧﻄﺄ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ‪620 ،‬‬ ‫ﺗﻢﺇﻧﺸﺎﺅﻩ ﺗﻠﻘﺎﺉﻴﺎً‪810-809 ،‬‬
‫ﺍﻟﺘﺤﻘﻖﻣﻦ ﺻﺤﺔ ﺍﻹﺩﺧﺎﻝ‪،‬‬ ‫ﺩﻓﺎﻉ‪28،‬‬ ‫ﺗﻮﺯﻳﻊﻏﻴﺮ ﺁﻣﻦ‪ 811-810 ،‬ﻧﻘﻞ ﻏﻴﺮ‬
‫‪493-492‬ﺣﺪﻭﺩ ﺍﻟﻄﻮﻝ‪473-471 ،‬‬ ‫ﺁﻟﻴﺎﺕﺍﻟﺘﻮﺻﻴﻞ‪451-447 ،‬‬ ‫ﺁﻣﻦ‪ 810،‬ﺗﺤﻘﻖ ﻏﻴﺮ ﻣﻜﺘﻤﻞ‪،‬‬
‫ﺍﻟﺘﺤﻘﻖﻣﻦ ﺻﺤﺔ ﺍﻟﻤﺨﺮﺟﺎﺕ‪،‬‬ ‫ﺩﺍﺧﻞﺍﻟﻨﻄﺎﻕ‪450-449 ،‬‬ ‫‪181-180‬ﺗﻮﺯﻳﻊ ﻏﻴﺮ ﺁﻣﻦ‪ 184 ،‬ﺗﺨﺰﻳﻦ‬
‫‪،495-493‬ﺍﻟﻮﻗﺎﻳﺔ‪496-492 ،‬‬ ‫ﺧﺎﺭﺝﺍﻟﻨﻄﺎﻕ‪450 ،‬‬ ‫ﻏﻴﺮﺁﻣﻦ‪ 191-190 ،‬ﺍﻟﺘﻌﺎﻣﻞ ﺍﻟﺴﺮﻱ ﻣﻊ‪،‬‬
‫ﻭﻇﻴﻔﺔ"ﺗﺬﻛﺮﻧﻲ"‪ 437 ،‬ﻣﺮﺷﺤ ًﺎ‬ ‫ﻳﻌﺘﻤﺪﻋﻠﻰ ‪DOM، 440–442‬‬ ‫‪193-192‬ﻗﻮﺓ‪192 ،‬‬
‫ﻟﻠﺘﻌﻘﻴﻢ‪ 471–468،‬ﻣﺮﺷﺤﺎً ﻗﺎﺉﻤﺎً‬ ‫ﺍﻟﺘﺴﻠﻴﻢ‪449-448،‬‬
‫ﻋﻠﻰﺍﻟﺘﻮﻗﻴﻊ‪،‬‬ ‫ﺍﻟﻌﺜﻮﺭﻋﻠﻴﻬﺎ ﻭﺍﺳﺘﻐﻼﻟﻬﺎ‪،‬‬
‫‪456–455‬‬ ‫‪491–487‬‬ ‫ﺍﻟﺘﺤﻘﻖﻣﻦ ﺍﻟﺼﺤﺔ‪195-193 ،‬‬
‫ﺍﻟﺨﻄﻮﺍﺕ‪437-436،‬‬ ‫ﺍﻟﺘﺤﻘﻖﻣﻦ ﺻﺤﺔ ﺍﻹﺩﺧﺎﻝ‪497 ،‬‬ ‫ﺧﺎﺩﻡﺍﻟﻮﻳﺐ ﻭﺍﻻﻓﺘﺮﺍﺿﻲ‪،‬‬
‫ﻣﻘﺎﺭﻧﺔﺑـ ‪ XSS‬ﺍﻟﻤﺨﺰﻧﺔ‪،‬‬ ‫ﺍﻟﺘﺤﻘﻖﻣﻦ ﺻﺤﺔ ﺍﻟﻤﺨﺮﺟﺎﺕ‪،‬‬ ‫‪671–670‬‬
‫‪440–439‬‬ ‫‪،498-497‬ﺍﻟﻮﻗﺎﻳﺔ‪498-496 ،‬‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪ 846 ،‬ﺍﻟﺘﻘﺎﻁ‬
‫ﺍﺧﺘﺒﺎﺭﺇﺩﺧﺎﻝ ﺍﻟﻤﺴﺘﺨﺪﻡ‪453 ،‬‬ ‫ﺍﻧﻌﻜﺲ‪ XSS‬ﺍﻟﻤﺤﻮﻝ ﺇﻟﻰ‪،‬‬ ‫ﺍﻟﺒﻴﺎﻧﺎﺕﻋﺒﺮ ﺍﻟﻨﻄﺎﻗﺎﺕ‪،‬‬
‫ﺍﺧﺘﺒﺎﺭﺇﺩﺧﺎﻝ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺇﻟﻰ‬ ‫‪473–472‬‬ ‫‪516–515‬‬
‫ﺗﻘﺪﻳﻢﺍﻟﻨﺺ‪،‬‬ ‫ﺧﻄﻮﺍﺕ‪441،‬‬ ‫ﺣﻘﻦ‪CSS، 517-519‬‬
‫‪455–454‬‬ ‫ﺍﻟﻬﺮﻭﺏ‪420،‬‬ ‫ﻓﺎﻳﺮﻓﻮﻛﺲ‪521،‬‬
‫ﺗﻄﻮﺭﺍﻷﻣﺎﻥ‪ ،‬ﺛﻐﺮﺍﺕ ﺭﻣﺰ ﺍﻟﺠﻠﺴﺔ ‪،433‬‬ ‫ﻣﺂﺛﺮ‬ ‫ﺣﻘﻦ‪ HTML، 516-517‬ﺍﺧﺘﻄﺎﻑ‬
‫ﻛﻮﻛﻴﺰ‪475،‬‬ ‫‪JavaScript، 519-520‬‬
‫‪244–243‬‬ ‫ﺍﻟﺘﺴﻠﻴﻢ‪481-473،‬‬ ‫‪E4X، 523–524‬‬
‫ﺍﻟﻜﻮﺩﺍﻟﻤﺼﺪﺭﻱ‪705-704 ،‬‬ ‫ﺗﻢﺗﻨﻔﻴﺬ ‪ JavaScript‬ﺩﺍﺧﻞ‬ ‫ﺍﺳﺘﺪﻋﺎءﺍﺕﺍﻟﻮﻇﺎﺉﻒ‪520 ،‬‬
‫ﻣﺨﺰﻧﺔ‪440-438،‬‬ ‫ﺍﺳﺘﺠﺎﺑﺎﺕ‪،XML‬‬ ‫‪JSON، 521‬‬
‫ﺧﻄﻮﺍﺕﺍﻟﻤﻬﺎﺟﻢ‪439-438 ،‬‬ ‫‪479–478‬‬ ‫ﺍﻟﻮﻗﺎﻳﺔ‪524،‬‬
‫ﺍﻟﺘﺴﻠﻴﻢ‪450-449،‬‬ ‫ﻃﻠﺐﻏﻴﺮ ﻗﻴﺎﺳﻲ ﻭ‬ ‫ﺗﻌﻴﻴﻦﻣﺘﻐﻴﺮ‪ 522 ،‬ﺧﺪﻣﺔ ﻭﻛﻴﻞ‪،‬‬
‫ﺍﺧﺘﺒﺎﺭﺍﻟﺒﺮﻳﺪ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ‪،‬‬ ‫ﻣﺤﺘﻮﻯﺍﻻﺳﺘﺠﺎﺑﺔ‪،‬‬ ‫‪531-529‬ﻃﻠﺒﺎً ﻋﺒﺮ ﺍﻟﻨﻄﺎﻗﺎﺕ‬
‫‪484-483‬ﺍﻟﻌﺜﻮﺭ ﻋﻠﻴﻪ ﻭﺍﺳﺘﻐﻼﻟﻪ‪،‬‬ ‫‪479–476‬‬
‫‪487–481‬‬ ‫ﺍﻟﻤﺤُﻴﻞﺍﻟﺮﺃﺱ‪ 476–475 ،‬ﻃﻠﺐ‬ ‫‪JSON، 477‬‬
‫ﻗﻴﻮﺩ‪ HTML، 495–496‬ﺇﺩﺧﺎﻝ‬ ‫‪ XML‬ﺗﻢ ﺇﺭﺳﺎﻟﻪ ﻋﺒﺮ‬ ‫ﻃﻠﺐ‪XML، 477–478،XMLHttp‬‬
‫ﺍﻹﺩﺧﺎﻝ‪495،‬‬ ‫ﺍﻟﻤﺠﺎﻝ‪478-477،‬‬ ‫ﻳﺮﺳﻞ‪، 528–529 XSS‬‬
‫ﺍﻟﺘﺤﻘﻖﻣﻦ ﺻﺤﺔ ﺍﻹﺩﺧﺎﻝ‪493-492 ،‬‬ ‫ﺍﻟﻤﺮﺷﺤﺎﺕ‬ ‫‪ 526–525/crossdomain.xml‬ﺗﺰﻭﻳﺮ‬
‫ﻣﺎﻱﺳﺒﻴﺲ‪446 ،443-442 ،‬‬ ‫ﻣﻀﺎﺩ‪748 ،452،‬‬ ‫ﻃﻠﺐﻋﺒﺮ ﺍﻟﻤﻮﻗﻊ )‪،(CSRF‬‬
‫ﺍﻟﺘﺤﻘﻖﻣﻦ ﺻﺤﺔ ﺍﻟﻤﺨﺮﺟﺎﺕ‪،‬‬ ‫ﺍﻟﻘﺎﺉﻤﺔﺍﻟﺴﻮﺩﺍء‪452-451 ،‬‬ ‫‪511–504 ،244،8‬‬
‫‪،495-493‬ﺍﻟﻮﻗﺎﻳﺔ‪496-492 ،‬‬ ‫‪IE، 479-481‬‬ ‫ﺭﻣﻮﺯﻣﻜﺎﻓﺤﺔ ‪،CSRF، 508-509‬‬
‫ﺍﻧﻌﻜﺲ‪ XSS‬ﻣﻘﺎﺭﻧﺔ ﺑـ‪،‬‬ ‫ﻣﺘﺼﻔﺤﺎﺕﺍﻟﻮﻳﺐ‪481-479 ،‬‬ ‫‪517–516‬‬
‫‪440–439‬‬ ‫ﺃﺯﻭﺍﺝﻋﻼﻣﺎﺕ ‪HTML، 422‬‬ ‫ﻫﺰﻳﻤﺔ‪XSS، 510–511‬‬
‫ﻭﻇﻴﻔﺔﺍﻟﺒﺤﺚ‪439 ،‬‬ ‫ﻣﺮﺷﺢ‪IE، 479–481‬‬ ‫ﺍﻟﻤﺼﺎﺩﻗﺔ‪،‬ﻋﻴﻮﺏ ‪508-507‬‬
‫ﺍﺧﺘﺒﺎﺭﺍﻟﻤﻠﻔﺎﺕ ﺍﻟﻤﺤﻤﻠﺔ‪،‬‬ ‫ﺟﺎﻓﺎﺳﻜﺮﻳﺒﺖ‪438-436 ،‬‬
‫‪487–484‬‬ ‫ﺧﺪﻣﺎﺕﻏﻴﺮ ‪HTTP، 562–563‬‬ ‫ﺍﻻﺳﺘﻐﻼﻝ‪507-506،‬‬
‫ﻧﻘﺎﻁﺍﻟﻀﻌﻒ‬ ‫ﺑﺎﻳﺖﻓﺎﺭﻍ‪460 ،‬‬ ‫ﺍﻟﻮﻗﺎﻳﺔ‪510-508،‬‬
‫ﺗﺤﺪﻳﺪ‪452-451،‬‬ ‫ﺑﺮﻳﺪﺗﻢ ﺗﻐﻴﻴﺮ ﺍﻟﻄﻠﺐ ﺇﻟﻰﻳﺤﺼﻞ‬ ‫ﻓﻲﺍﻟﻌﺎﻟﻢ ﺍﻟﺤﻘﻴﻘﻲ‪505 ،‬‬
‫ﻣﻨﺨﻔﺾﺍﻟﻤﺨﺎﻃﺮ‪451 ،‬‬ ‫ﺍﻟﻄﻠﺐ‪475-474،‬‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪ 820 ،‬ﺇﺩﺍﺭﺓ ﺍﻟﺠﻠﺴﺔ‪،‬‬
‫ﺍﻷﺻﻨﺎﻑ‪442-433،‬‬ ‫ﺍﻻﻧﺘﺸﺎﺭ‪432،‬‬ ‫‪251‬ﺑﺮﻣﺠﺔ ﻧﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ‬
‫‪XSS Shell، 566‬‬ ‫ﺍﻟﻮﻗﺎﻳﺔ‪498-492،‬‬ ‫)‪8 ،(XSS‬‬
‫ﺧﻮﺍﺭﺯﻣﻴﺎﺕﺍﻟﺘﺸﻔﻴﺮ‪.CSRF 687 ،‬ﻳﺮﻯ‬ ‫ﺍﻟﻌﺎﻟﻢﺍﻟﺤﻘﻴﻘﻲ‪443-442 ،‬‬ ‫ﺣﻤﻮﻻﺕﺍﻟﻬﺠﻮﻡ‪447-443 ،‬‬
‫ﻃﻠﺐﻋﺒﺮ ﺍﻟﻤﻮﻗﻊ‬ ‫ﻣﻨﻌﻜﺲ‪438-434،‬‬ ‫ﺍﻹﻛﻤﺎﻝﺍﻟﺘﻠﻘﺎﺉﻲ‪446 ،‬‬
‫ﺗﺰﻭﻳﺮ‬ ‫ﺃﺑﺎﺗﺸﻲ‪442،‬‬ ‫ﺗﺼﻌﻴﺪﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ‪447 ،‬‬
‫ﻣﺆﺷﺮ‪-860‬ﺩ–ﺩ‬

‫ﻣﺨﻄﻂﺍﻟﻤﻌﻠﻮﻣﺎﺕ‪،‬‬ ‫ﺣﺼﺎﺩﺍﻟﺒﻴﺎﻧﺎﺕ‪572 ،‬‬ ‫ﺳﻲﺍﺱ ﺍﺱ‪.‬ﻳﺮﻯﺃﻭﺭﺍﻕ ﺍﻷﻧﻤﺎﻁ ﺍﻟﻤﺘﺘﺎﻟﻴﺔ‬


‫‪310–309‬‬ ‫ﺍﻟﻨﻬﺞﺍﻷﺳﺎﺳﻲ‪586-584 ،‬‬ ‫‪Curl، 788‬‬
‫‪MS-SQL‬‬ ‫ﺩﺧﻴﻞﺍﻟﺘﺠﺸﺆ‪600-598 ،‬‬ ‫ﺍﻟﺘﻄﻮﻳﺮﺍﻟﻤﺨﺼﺺ‪ ،‬ﺍﻟﻮﻳﺐ‬
‫ﺍﻟﻤﻬﺎﺟﻤﻮﻥ‪327-326،‬‬ ‫ﺍﻷﺳﺒﺎﺏ‪584-583،‬‬ ‫ﺍﻟﺘﻄﺒﻴﻘﺎﺕ‪10،‬‬
‫ﺍﻻﺳﺘﻐﻼﻝﺍﻵﻟﻲ‪ 330 ،‬ﺍﺳﺘﻌﻼﻡ‬ ‫ﻫﺠﻮﻡ‪586-585،‬‬ ‫ﺍﻟﺘﺮﻣﻴﺰﺍﻟﻤﺨﺼﺺ‪ ،‬ﻭﻋﺒﻮﺭ ﺍﻟﻤﺴﺎﺭ‬
‫ﺩﻓﻌﺔ‪317،‬‬ ‫ﺍﻻﺳﺘﺨﺪﺍﻣﺎﺕ‪584،‬‬ ‫ﻧﻘﺎﻁﺍﻟﻀﻌﻒ‪378-377 ،‬‬
‫ﺍﻹﻏﻼﻕﺍﻻﻓﺘﺮﺍﺿﻲ‪ ،‬ﺭﺳﺎﺉﻞ ﺍﻟﺨﻄﺄ‬ ‫ﻣﺨﺎﺯﻥﺍﻟﺒﻴﺎﻧﺎﺕ‪.‬ﺍﻧﻈﺮ ﺃﻳﻀﺎﻗﺎﺑﻠﺔ ﻟﻠﺘﻤﺪﻳﺪ‬ ‫ﺍﻷﺗﻤﺘﺔﺍﻟﻤﺨﺼﺼﺔ‬
‫‪،327-326‬ﻗﻨﻮﺍﺕ ﺧﺎﺭﺝ ﺍﻟﻨﻄﺎﻕ‬ ‫ﻟﻐﺔﺍﻟﺘﺮﻣﻴﺰ؛‬ ‫ﺍﻟﺤﻮﺍﺟﺰﺃﻣﺎﻡ‪612-602 ،‬‬
‫‪،338-334‬ﺑﻨﺎء ﺍﻟﺠﻤﻠﺔ ‪،317‬‬ ‫ﺩﻟﻴﻞﺧﻔﻴﻒ ﺍﻟﻮﺯﻥ‬ ‫ﺩﺧﻴﻞﺍﻟﺘﺠﺸﺆ‪602-590 ،‬‬
‫‪334-332‬‬ ‫ﺑﺮﻭﺗﻮﻛﻮﻝﺍﻟﻮﺻﻮﻝ؛ ﻟﻐﺔ ﺍﻻﺳﺘﻌﻼﻡ‬ ‫ﻫﺠﻮﻡﺣﺼﺎﺩ ﺍﻟﺒﻴﺎﻧﺎﺕ‪،‬‬
‫ﺍﻧﺘﻈﺮﺍﻷﻣﺮ‪ 323–322 ،‬ﺃﻭﺭﺍﻛﻞ‬ ‫ﺍﻟﻤﻨﻈﻤﺔ‬ ‫‪600–598‬‬
‫ﺍﻟﻮﺻﻮﻝ‪289-288،‬‬ ‫ﺗﻌﺪﺍﺩﺍﻟﻤﻌﺮﻓﺎﺕ‬
‫ﺍﻟﻤﻬﺎﺟﻤﻮﻥ‪327‬‬ ‫‪NoSQL، 342–343‬‬ ‫ﺍﻟﻬﺠﻮﻡ‪597-594،‬‬
‫‪11‬ﺟﺮﺍﻡ‪318 ،‬‬ ‫ﻣﺴﺘﻮﻯﺍﻻﻣﺘﻴﺎﺯ‪287 ،‬‬ ‫ﻫﺠﻮﻡﺍﻟﺘﻀﻠﻴﻞ‪ 602-600 ،‬ﻟﻐﺰ‬
‫ﺭﺳﺎﺉﻞﺍﻟﺨﻄﺄ‪ 338–334 ،‬ﻗﻨﺎﺓ‬ ‫ﺗﻄﺒﻴﻘﺎﺕﺍﻟﻮﻳﺐ ﺗﻌﺘﻤﺪ ﻋﻠﻰ‪،‬‬ ‫‪CAPTCHA، 610-612‬‬
‫ﺧﺎﺭﺝﺍﻟﻨﻄﺎﻕ‪،‬‬ ‫‪287‬‬ ‫ﺍﻟﻤﻬﺎﺟﻤﻮﻥ‪611-610،‬‬
‫‪318–317‬‬ ‫ﻧﻘﻞﺍﻟﺒﻴﺎﻧﺎﺕ‪.‬ﺍﻧﻈﺮ ﺃﻳﻀﺎﻣﺴﺘﺨﺪﻡ‬ ‫ﺣﻞﺗﻠﻘﺎﺉﻲ‪،‬‬
‫ﺑﻨﺎءﺍﻟﺠﻤﻠﺔ‪334-332 ،‬‬ ‫ﻣﺪﺧﻞ‬ ‫‪612–611‬‬
‫ﺗﺄﺧﻴﺮﺍﺕﺯﻣﻨﻴﺔ‪324-323 ،‬‬ ‫ﻣﻜﻮﻧﺎﺕﺍﻟﻮﺍﺟﻬﺔ ﺍﻟﺨﻠﻔﻴﺔ‪357 ،‬‬ ‫ﺍﻟﺒﺸﺮﻳﺤﻠﻮﻥ ‪612‬‬
‫ﺍﻻﺗﺤﺎﺩﺍﻟﻤﺸﻐﻞ‪308-307 ،‬‬ ‫ﻣﻠﺤﻘﺎًﻟﻠﻤﺘﺼﻔﺢ‬ ‫ﺣﺼﺎﺩﺍﻟﺒﻴﺎﻧﺎﺕ‪572 ،‬‬
‫ﻗﺎﺑﻞﻟﻠﺒﺤﺚ ﻭﺍﻟﻔﺮﺯ‪،‬‬ ‫ﺍﻋﺘﺮﺍﺽ‪139-135،‬‬ ‫ﺍﻟﻨﻬﺞﺍﻷﺳﺎﺳﻲ‪586-584 ،‬‬
‫‪322–321‬‬ ‫ﺍﻟﻌﻘﺒﺎﺕ‪139-138،‬‬ ‫ﺩﺧﻴﻞﺍﻟﺘﺠﺸﺆ‪600-598 ،‬‬
‫ﺍﻹﺟﺮﺍءﺍﺕﺍﻟﻤﺨﺰﻧﺔ‪339 ،‬‬ ‫ﺍﻟﺒﻴﺎﻧﺎﺕﺍﻟﻤﺘﺴﻠﺴﻠﺔ‪ 138-136 ،‬ﻣﻦ‬ ‫ﺍﻷﺳﺒﺎﺏ‪584-583،‬‬
‫ﺩﺍﻑﺗﻴﺴﺖ‪680 ،‬‬ ‫ﺟﺎﻧﺐﺍﻟﻌﻤﻴﻞ‪127-118 ،‬‬ ‫ﻫﺠﻮﻡ‪586-585،‬‬
‫ﻣﺴﺆﻭﻝﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ‪.‬ﻳﺮﻯﻣﺼﺤﺤﺎﺕ ﺃﺧﻄﺎء ﻣﺴﺆﻭﻝ‬ ‫‪ASP.NET‬ﺣﺎﻟﺔ ﺍﻟﻌﺮﺽ‪،‬‬ ‫ﺍﻻﺳﺘﺨﺪﺍﻣﺎﺕ‪584،‬‬

‫ﻗﺎﻋﺪﺓﺍﻟﺒﻴﺎﻧﺎﺕ‬ ‫‪127–124‬‬ ‫ﺍﻟﻜﻔﺎءﺓ‪571،‬‬


‫ﺇﺿﺎﻓﺔﻣﻠﺤﻘﺎﺕ ﺍﻟﻤﺘﺼﻔﺢ‪،‬‬ ‫ﻟﻠﻤﻄﻮﺭﻳﻦ‪118،‬‬ ‫ﺗﻌﺪﺍﺩﺍﻟﻤﻌﺮﻓﺎﺕ‪،‬‬
‫‪152–151‬‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪ 801 ،‬ﻧﻤﻮﺫﺝ ‪HTML‬‬ ‫‪583–572‬‬
‫ﺭﺳﺎﺉﻞﺍﻟﺨﻄﺄ‪،426–425 ،‬‬ ‫ﻣﺨﻔﻲ‪ 120–118،‬ﻣﻠﻒ ﺗﻌﺮﻳﻒ‬ ‫ﺍﻟﻨﻬﺞﺍﻷﺳﺎﺳﻲ‪574 ،‬‬
‫‪619–618‬‬ ‫ﺍﺭﺗﺒﺎﻁ‪HTTP، 121‬‬ ‫ﺩﺧﻴﻞﺍﻟﺘﺠﺸﺆ‪597-594 ،‬‬
‫ﻣﺸﺘﺮﻙ‪619،‬‬ ‫ﺑﻴﺎﻧﺎﺕﻏﻴﺮ ﺷﻔﺎﻓﺔ‪124-123 ،‬‬ ‫ﺍﻛﺘﺸﺎﻑﺍﻟﻀﺮﺑﺎﺕ‪،‬‬
‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪،‬‬ ‫ﺍﻟﻤﺤُﻴﻞﺭﺃﺱ ﺍﻟﺼﻔﺤﺔ‪122 ،‬‬ ‫‪576-574‬ﺃﻣﺜﻠﺔ‪573 ،‬‬
‫ﺗﻌﻴﻴﻦﺍﻟﺘﻄﺒﻴﻘﺎﺕ‪ ،‬ﻣﻨﻬﺠﻴﺔ ﺍﻟﻬﺎﻛﺮ‬ ‫ﺍﻷﻣﻦ‪156-154،‬‬ ‫ﺭﻣﺰﺣﺎﻟﺔ ‪، 577–583‬‬
‫‪،798‬ﺍﻟﻤﺘﺼﻔﺢ‬ ‫ﻣﻌﻠﻤﺎﺕﻋﻨﻮﺍﻥ ‪URL، 121-122‬‬ ‫‪HTTP، 574 JAttack‬‬
‫ﺍﻻﻣﺘﺪﺍﺩﺍﺕ‪804-803،‬‬ ‫ﻧﻬﺞﺍﻟﺘﺤﻤﻴﻞ ﺍﻟﺒﻄﻲء‪ 626 ،‬ﻣﻌﺘﻢ‪،‬‬ ‫ﻣﻮﻗﻊﺭﺃﺱ ﺍﻟﺼﻔﺤﺔ‪575 ،‬‬
‫ﺟﺎﻭﺓ‪152-151،‬‬ ‫‪124-123‬‬ ‫ﻫﻴﺉﺔﺍﻻﺳﺘﺠﺎﺑﺔ‪575 ،‬‬
‫ﺭﺳﺎﺉﻞ‬ ‫ﺍﻟﻤﻬﺎﺟﻤﻮﻥ‪124،‬‬ ‫ﻃﻮﻝﺍﻻﺳﺘﺠﺎﺑﺔ‪ 575-574 ،‬ﻧﺼﺎً‪،‬‬
‫ﻋﻴﻮﺏﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ‪،‬‬ ‫ﻣﺴﺆﻭﻝﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ )‪،(DBA‬‬ ‫‪577-576‬‬
‫‪426–424‬‬ ‫‪326–325‬‬ ‫ﻣﺠﻤﻮﻋﺔﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁﺭﺃﺱ ﺍﻟﺼﻔﺤﺔ‪575 ،‬‬
‫ﻣﻄﻮﻝ‪425،‬‬ ‫ﺩﻟﻴﻞﻣﺨﺘﺮﻕ ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ‪،‬‬ ‫ﺗﺄﺧﻴﺮﺍﺕﺯﻣﻨﻴﺔ‪576-575 ،‬‬
‫ﺳﻴﻠﻔﺮﻻﻳﺖ‪152،‬‬ ‫‪326‬‬ ‫ﺍﻟﺘﻀﺒﻴﺐ‪573-572،‬‬
‫ﺧﺎﺩﻡﺍﻟﻮﻳﺐ‪672–671 ،‬‬ ‫ﻗﻮﺍﻋﺪﺍﻟﺒﻴﺎﻧﺎﺕ‬ ‫ﺩﺧﻴﻞﺍﻟﺘﺠﺸﺆ‪602-600 ،‬‬
‫ﺿﻮﺍﺑﻂﺍﻟﻮﺻﻮﻝ ﺍﻟﺘﺼﺮﻳﺤﻴﺔ‪،‬‬ ‫ﻭﺻﻮﻝ‬ ‫ﻫﺠﻮﻡ‪590-588،‬‬
‫‪283–282‬‬ ‫ﻃﺮﻕﻭﺍﺟﻬﺔ ﺑﺮﻣﺠﺔ ﺗﻄﺒﻴﻘﺎﺕ ‪ASP.NET، 721‬‬
‫ﺍﻟﻬﺪﻑ‪587-586،‬‬
‫ﻓﻚﺍﻟﺘﺠﻤﻴﻊ‬ ‫ﻃﺮﻕﻭﺍﺟﻬﺔ ﺑﺮﻣﺠﺔ ﺗﻄﺒﻴﻘﺎﺕ ‪Java، 714–715‬‬
‫ﺃﻭﺗﺎﺭ‪587،‬‬
‫ﻣﻠﺤﻘﺎﺕﺍﻟﻤﺘﺼﻔﺢ‪150-139 ،‬‬ ‫ﻃﺮﻕﻭﺍﺟﻬﺔ ﺑﺮﻣﺠﺔ ﺗﻄﺒﻴﻘﺎﺕ ﻟﻐﺔ ‪،Perl‬‬
‫ﺁﻟﻴﺎﺕﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ ﺍﻟﺠﻠﺴﺔ‪،‬‬
‫ﺍﻟﺒﺎﻳﺖﻛﻮﺩ‪141-139 ،‬‬ ‫‪738–737‬‬
‫‪609–602‬‬
‫ﺗﺸﻮﻳﺶﺍﻟﺒﺎﻳﺖ ﻛﻮﺩ‪،‬‬ ‫ﻣﻜﻮﻧﺎﺕﺍﻟﻜﻮﺩ‬
‫ﺛﻐﺮﺓﺃﻣﻨﻴﺔ ﻣﺴﺘﻘﻠﺔ‬
‫‪146–144‬‬ ‫ﺧﻄﻴﺮ‪742،‬‬
‫ﺍﻟﻤﺎﺳﺤﺎﺕﺍﻟﻀﻮﺉﻴﺔ‪781-780 ،‬‬
‫ﻣﺜﺎﻝﻋﻠﻰ ﺗﻄﺒﻴﻘﺎﺕ ‪Java، 146–150‬‬ ‫ﺣﻘﻦ‪SQL، 741–742‬‬
‫ﺍﻻﺳﺘﺨﺪﺍﻣﺎﺕ‪573-572،‬‬
‫ﻣﻌﺎﻟﺠﺔ‪JavaScript‬‬ ‫ﺭﺳﺎﺉﻞﺍﻟﺨﻄﺄ‪622–619 ،‬‬
‫ﺑﻴﺉﺔ‪Cygwin، 577‬‬
‫ﺍﻟﺒﺎﻳﺖﻛﻮﺩ ﺍﻷﺻﻠﻲ‪144 ،‬‬ ‫ﺗﺸﻔﻴﺮﺃﻭﺭﺍﻛﻞ‪ 622-620 ،‬ﺍﻟﻜﺸﻒ‬
‫ﺍﻟﻜﻮﺩﺍﻟﻤﺼﺪﺭ‪144-142 ،‬‬ ‫ﻋﻦﺍﻟﻤﻌﻠﻮﻣﺎﺕ‪،‬‬
‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪ ،‬ﺍﻟﻤﺘﺼﻔﺢ‬ ‫‪620–619‬‬ ‫ﺩ‬
‫ﺍﻻﻣﺘﺪﺍﺩﺍﺕ‪803-802،‬‬ ‫ﻓﻲ‪XSS 620‬‬ ‫ﻣﺤﻮﻝﺭﻗﻤﻲ ﺇﻟﻰ ﺗﻨﺎﻇﺮﻱ‪.‬ﻳﺮﻯﺍﻟﻮﺻﻮﻝ ﺍﻟﺘﻘﺪﻳﺮﻱ‬
‫ﺟﺎﺩ‪،‬ﺟﺎﻭﺓ‪150-148 ،‬‬ ‫ﻫﺠﻤﺎﺕﺍﻟﺘﺼﻌﻴﺪ‬ ‫ﻳﺘﺤﻜﻢ‬
‫ﺧﻮﺍﺭﺯﻣﻴﺎﺕﻓﻚ ﺍﻟﺘﺸﻔﻴﺮ‪650 ،‬‬ ‫‪328–325،319‬‬ ‫ﺍﻟﺘﻘﺎﻁﺍﻟﺒﻴﺎﻧﺎﺕ‪.‬ﻳﺮﻯﻋﺒﺮ ﺍﻟﻤﺠﺎﻻﺕ‬
‫ﻣﺤﺘﻮﻯﺍﻓﺘﺮﺍﺿﻲ‬ ‫ﺑﺼﻤﺎﺕﺍﻷﺻﺎﺑﻊ‪304-303 ،‬‬ ‫ﺍﻟﺘﻘﺎﻁﺍﻟﺒﻴﺎﻧﺎﺕ‬
‫ﻓﻬِﺮﺱِ‪-‬ﻫـ–ﻫـ ‪861‬‬

‫‪ XML )E4X(، 463‬ﻟـ ‪ECMAScript‬‬ ‫ﻧﻤﻮﺫﺝﻛﺎﺉﻦ ﺍﻟﻤﺴﺘﻨﺪ )‪،(DOM‬‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪،‬‬


‫ﺍﺧﺘﻄﺎﻑﺟﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ‪524-523 ،‬‬ ‫‪61‬‬ ‫ﺗﻌﻴﻴﻦﺍﻟﺘﻄﺒﻴﻘﺎﺕ‪ ،‬ﺧﺎﺩﻡ ﺍﻟﻮﻳﺐ‬
‫ﻳﺤﺮﺭﺍﻟﻤﻌﻠﻤﺔ‪107 ،‬‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪ 850-849 ،‬ﺟﺎﻓﺎ‬ ‫‪677–671،797‬‬
‫ﺇﺩﻭﺍﺭﺩﺯ‪،‬ﺩﻳﻦ‪471 ،‬‬ ‫ﺳﻜﺮﻳﺒﺖ‪440،‬‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻘﺮﺍﺻﻨﺔ‪ 847 ،‬ﺑﻴﺎﻧﺎﺕ‬
‫ﺇﻱﺟﻲ ﺑﻲ‪.‬ﻳﺮﻯﺗﺸﻔﻴﺮﺍﺕ ﻛﺘﺐ ﺍﻟﻄﺒﺦ‬ ‫ﻃﺮﻕ‪ API JavaScript، 740‬ﻭﻇﻴﻔﺔ‬ ‫ﺍﻋﺘﻤﺎﺩﺍﻓﺘﺮﺍﺿﻴﺔ‪ ،‬ﺧﺎﺩﻡ ﺍﻟﻮﻳﺐ‪،‬‬
‫ﺍﻹﻟﻜﺘﺮﻭﻧﻴﺔ‪Enterprise Java Bean‬‬ ‫ﻭﻳﺐ‪62،‬‬ ‫‪671–670‬‬
‫)ﺷﻔﺮﺍﺕ ﺍﻟﺒﻨﻚ ﺍﻟﻤﺮﻛﺰﻱ ﺍﻷﻭﺭﻭﺑﻲ(‪226-224 ،‬‬ ‫‪XSS، 440-442‬‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪ ،‬ﺍﻹﻏﻼﻕ ﺍﻻﻓﺘﺮﺍﺿﻲ‬
‫ﺑﺮﻳﺪﺇﻟﻜﺘﺮﻭﻧﻲ‬ ‫ﺍﻟﺘﺴﻠﻴﻢ‪449-448،‬‬ ‫‪MS-SQL،846‬‬
‫ﻋﻨﺎﻭﻳﻦ‪ URL‬ﻟﺘﻨﺸﻴﻂ ﺍﻟﺤﺴﺎﺏ‪ ،‬ﺗﻢ‬ ‫ﺍﻟﻌﺜﻮﺭﻋﻠﻴﻬﺎ ﻭﺍﺳﺘﻐﻼﻟﻬﺎ‪،‬‬ ‫ﻗﻮﺍﻋﺪﺍﻟﺒﻴﺎﻧﺎﺕ‪327-326 ،‬‬
‫ﺇﺭﺳﺎﻝ‪ 184‬ﺑﻴﺎﻧﺎﺕ ﺍﻋﺘﻤﺎﺩ‪184 ،‬‬ ‫‪491–487‬‬ ‫ﺍﻟﺪﻓﺎﻉﻓﻲ ﺍﻟﻌﻤﻖ‬
‫ﻣﺰﻭﺭﺓ‪448،‬‬ ‫ﺍﻟﺘﺤﻘﻖﻣﻦ ﺻﺤﺔ ﺍﻹﺩﺧﺎﻝ‪497 ،‬‬ ‫ﺣﻘﻦ‪SQL، 342‬‬
‫ﺣﻘﻦﺍﻟﺮﺃﺱ‪ 399–398 ،‬ﺍﺧﺘﺒﺎﺭ ‪XSS‬‬ ‫ﺍﻟﺘﺤﻘﻖﻣﻦ ﺻﺤﺔ ﺍﻟﻤﺨﺮﺟﺎﺕ‪،‬‬ ‫ﺍﻟﻬﻨﺪﺳﺔﺍﻟﻤﻌﻤﺎﺭﻳﺔ ﺍﻟﻤﺘﺪﺭﺟﺔ‪656 ،‬‬
‫ﺍﻟﻤﺨﺰﻥ‪ 484–483،‬ﻛﺎﺳﻢ‬ ‫‪،498-497‬ﺍﻟﻮﻗﺎﻳﺔ‪498-496 ،‬‬ ‫ﺑﺮﻧﺎﻣﺞﺧﺎﺩﻡ ﺍﻟﻮﻳﺐ‪ 697–696 ،‬ﺁﻟﻴﺎﺕ‬
‫ﻣﺴﺘﺨﺪﻡ‪196 ،167،‬‬ ‫ﺍﻧﻌﻜﺴﺖ‪ XSS‬ﺍﻟﻤﺤﻮﻟﺔ ﺇﻟﻰ‪،‬‬ ‫ﺍﻟﺪﻓﺎﻉ‪.‬ﺍﻧﻈﺮ ﺃﻳﻀﺎ‬
‫ﺍﻟﺘﺮﻣﻴﺰ‬ ‫‪473–472‬‬ ‫ﺣﻤﺎﻳﺔ‬
‫ﺗﺠﺎﻭﺯﻓﻴﺾ ‪ Apache‬ﺍﻟﻤﺠﺰﺃ‪688 ،‬‬ ‫ﺧﻄﻮﺍﺕ‪441،‬‬ ‫ﻭﺻﻮﻝ‬
‫ﻣﻬﺎﺟﻤﺎًﻭ‪67-66‬‬ ‫ﺟﺬﺭﺍﻟﻤﺴﺘﻨﺪﺍﻟﺘﻮﺟﻴﻪ‪.DOM 683 ،‬ﻳﺮﻯ‬ ‫ﺍﻟﻤﺼﺎﺩﻗﺔ‪19-18،‬‬
‫ﻗﺎﻋﺪﺓ‪69 ،64‬‬ ‫ﻛﺎﺉﻦﺍﻟﻤﺴﺘﻨﺪ‬ ‫ﺍﻟﺘﺤﻜﻢ‪21-20،‬‬
‫‪ASP.NET‬ﺣﺎﻟﺔ ﺍﻟﻌﺮﺽ‪،‬‬ ‫ﻧﻤﻮﺫﺝ‬ ‫ﺇﺩﺍﺭﺓﺍﻟﺠﻠﺴﺔ‪ 20-19 ،‬ﻣﻬﺎﺟﻤﺎً‪،‬‬
‫‪126–125‬‬ ‫ﻣﻠﻔﺎﺕﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﺍﻟﺨﺎﺻﺔ ﺑﺘﻘﻴﻴﺪ ﺍﻟﻨﻄﺎﻕ‪،‬‬ ‫‪35-30‬‬
‫ﻣﺨﺼﺺ‪،‬ﻋﺒﻮﺭ ﺍﻟﻤﺴﺎﺭ‬ ‫‪247–245‬‬ ‫ﺗﻨﺒﻴﻪﺍﻟﻤﺴﺆﻭﻝ‪ 34-33 ،‬ﺻﻴﺎﻧﺔ ﺳﺠﻞ‬
‫ﻧﻘﺎﻁﺍﻟﻀﻌﻒ‪378-377 ،‬‬ ‫‪DOMTracer، 488‬‬ ‫ﺍﻟﺘﺪﻗﻴﻖ‪ 32-31،‬ﺍﻷﺧﻄﺎء‪31-30 ،‬‬
‫ﺳﺪﺍﺳﻲ‪70-69،‬‬ ‫ﺣﺮﻑﺍﻟﻨﻘﻄﺔ‪ ،‬ﺭﻣﺰ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ‬
‫‪HTML، 68-69‬‬ ‫ﺗﺠﺎﻭﺯﺍﻟﻤﺮﺷﺤﺎﺕ ﺍﻟﺒﺪﺍﺉﻞ ﻟـ‪466 ،‬‬ ‫ﺍﻟﺘﻔﺎﻋﻞﻣﻊ‪35-34 ،‬‬
‫ﺃﺧﻄﺎءﺍﻟﻤﻄﻮﺭ‪ 495–494 ،‬ﻛﻮﺩ‬ ‫ﺍﻟﻌﻨﺎﺻﺮ‪18-17،‬‬
‫ﺍﻟﺒﺮﻧﺎﻣﺞﺍﻟﻨﺼﻲ ﻳﺘﺠﺎﻭﺯ ﺍﻟﻤﺮﺷﺤﺎﺕ‪،‬‬ ‫ﺗﺴﻠﺴﻞ"ﻧﻘﻄﺔ‪-‬ﻧﻘﻄﺔ‪-‬ﺷﺮﻃﺔ ﻣﺎﺉﻠﺔ"‪،‬‬ ‫ﺍﻟﻤﺪﺧﻼﺕ‪29-21،‬‬
‫‪468‬‬ ‫‪.369‬ﺍﻧﻈﺮ ﺃﻳﻀﺎﺛﻐﺮﺍﺕ ﻋﺒﻮﺭ‬ ‫ﺍﻟﻨﻬﺞﺇﻟﻰ‪25-23 ،‬‬
‫ﻳﻮﻧﻴﻜﻮﺩ‪68-67،‬‬ ‫ﺍﻟﻤﺴﺎﺭ‬ ‫ﻭﺻﻮﻝﺍﻟﻤﺴﺘﺨﺪﻡ‪21-18 ،‬‬
‫ﺩﺧﻴﻞﺍﻟﺘﺠﺸﺆ‪375 ،‬‬ ‫ﺩﺍﻭﺩ‪،‬ﻣﺎﺭﻙ‪634 ،‬‬ ‫ﻣﺮﺷﺤﺎﺕﺩﻓﺎﻋﻴﺔ‪ XSS ،‬ﺍﻟﻤﻨﻌﻜﺴﺔ‪،‬‬
‫ﻋﻨﻮﺍﻥ‪URL، 67‬‬ ‫ﺟﺎﺭﻱﺍﻟﺘﺤﻤﻴﻞ‬ ‫‪456–455‬‬
‫ﺣﻘﻦ‪SQL، 300-301‬‬ ‫ﺑﺎﻳﺖﻛﻮﺩ‪140 ،‬‬ ‫ﻳﻤﺴﺢﺍﻟﻄﺮﻳﻘﺔ‪679 ،‬‬
‫ﻗﻄﻊ‪378،‬‬ ‫ﺭﻣﻮﺯﺍﻟﺘﺸﻔﻴﺮ‪ 232–231 ،‬ﻗﺎﺉﻤﺔ‬ ‫ﻳﻤﺴﺢﺍﻟﺒﻴﺎﻧﺎﺕ‪ 298-297 ،‬ﻧﺼﻮﺹ‬
‫ﺑﺮﻧﺎﻣﺞﺧﺎﺩﻡ ﺍﻟﻮﻳﺐ‪694–689 ،‬‬ ‫ﻣﻨﺴﺪﻟﺔ‪،‬‬ ‫ﺧﻠﻔﻴﺔﻣﺘﻌﻤﺪﺓ‪،‬‬
‫ﺍﻟﺘﺸﻔﻴﺮ‬ ‫ﺍﻟﻤﺼﺎﺩﻗﺔ‪193،‬‬ ‫‪661–660‬‬
‫‪.‬ﻧﺖ‪686 ،‬‬ ‫ﺗﻨﻔﻴﺬﺍﻟﻜﻮﺩ ﺍﻟﺪﻳﻨﺎﻣﻴﻜﻲ ‪، 672‬‬ ‫ﺍﻟﻤﻄﻮﺭﻳﻦ‬
‫ﻭﻇﻴﻔﺔ"ﺗﺬﻛﺮﻧﻲ"‪ 177 ،‬ﺭﻣﺰﺍً‪233-223 ،‬‬ ‫‪–137 Dump Servlet، Jetty‬‬ ‫ﻋﻴﻮﺏﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ‪ 430-429 ،‬ﻧﻘﻞ‬
‫‪DSer، Burp Suite، 136‬‬ ‫ﺍﻟﺒﻴﺎﻧﺎﺕﻣﻦ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ‪،‬‬
‫ﺍﻟﻤﻬﺎﺟﻤﻮﻥ‪233-232،‬‬ ‫ﻃﺮﻕ‪ API‬ﻟـ ‪ ASP.NET، 722‬ﻃﺮﻕ‬ ‫‪118‬‬
‫ﺗﺠﺸﺆﺍﻟﺪﺧﻴﻞ ﺑﺖ ﺯﻋﻨﻔﺔ‪،‬‬ ‫‪ API‬ﻟـ ‪Java، 715‬‬ ‫ﺃﺧﻄﺎءﺗﺮﻣﻴﺰ ‪،HTML‬‬
‫‪231–228‬‬ ‫ﺣﻘﻦﺃﻭﺍﻣﺮ ﻧﻈﺎﻡ ﺍﻟﺘﺸﻐﻴﻞ‪362 ،‬‬ ‫‪495–494‬‬
‫ﺳﻲﺑﻲ ﺳﻲ‪233-227 ،‬‬
‫ﺍﻟﺜﻐﺮﺍﺕﺍﻷﻣﻨﻴﺔ‪ 367–366 ،‬ﻃﺮﻕ‬ ‫ﺃﻣﺎﻥﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ‪ ،‬ﻣﺼﺎﺩﻗﺔ ‪3‬‬
‫ﺍﻟﺘﻨﺰﻳﻞ‪232-231،‬‬ ‫ﻭﺍﺟﻬﺔﺑﺮﻣﺠﺔ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺑﻠﻐﺔ ﺑﻴﺮﻝ‪،‬‬ ‫ﻣﻠﺨﺼﺎﺕ‪،‬ﻗﻮﺍﺉﻢ ﺍﻟﺪﻟﻴﻞ ‪،51-50‬‬
‫ﺷﻔﺮﺍﺕﺍﻟﺒﻨﻚ ﺍﻟﻤﺮﻛﺰﻱ ﺍﻷﻭﺭﻭﺑﻲ‪226-224 ،‬‬
‫‪738‬‬ ‫ﺧﻮﺍﺩﻡﺍﻟﻮﻳﺐ‪،‬‬
‫ﻛﺸﻒﺗﺸﻔﻴﺮ ﺃﻭﺭﺍﻛﻞ‪،‬‬ ‫ﻃﺮﻕ‪ API PHP، 730–731‬ﺳﻼﺳﻞ‬ ‫‪679–677‬‬
‫‪232‬‬ ‫ﻣﺒﻨﻴﺔﺩﻳﻨﺎﻣﻴﻜﻴﺎً‪،‬‬ ‫ﺃﻟﻴﺮﺟﻮﻧﻴﻮﺭ‪691-690 ،‬‬
‫ﺃﻭﺭﺍﻛﻞﺍﻟﺘﺸﻔﻴﺮ‬ ‫‪466‬‬ ‫ﺃﺳﻤﺎءﺍﻟﺪﻟﻴﻞ‪105 ،‬‬
‫ﻋﻴﻮﺏﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ‪408-407 ،‬‬ ‫ﺍﻟﻌﻨﺎﺻﺮﺍﻟﻤﻌﻮﻗﺔ‬
‫ﻭﻇﻴﻔﺔ"ﺗﺬﻛﺮﻧﻲ"‪ ،‬ﺭﺳﺎﺉﻞ ﺧﻄﺄ ﻗﺎﻋﺪﺓ‬ ‫ﺍﻟﻤﻬﺎﺟﻤﻮﻥ‪133-132،‬‬
‫ﺍﻟﺒﻴﺎﻧﺎﺕ‪،407‬‬ ‫ﻫـ‬ ‫ﻧﻤﺎﺫﺝ‪HTML، 131–133‬‬
‫‪622–620‬‬ ‫‪E4X.‬ﻳﺮﻯﻛﺮﻳﺲ‪ XML Eagle، 634 ،‬ﻟـ‬ ‫ﺍﻟﻐﺶﻓﻲ ﺍﻟﺨﺼﻢ‪ ،‬ﺍﻟﺘﻄﺒﻴﻖ‬
‫"ﺍﻟﻜﺸﻒ ﻋﻦ ﺭﻣﻮﺯ ﺍﻟﺘﺸﻔﻴﺮ"‬ ‫‪ECMAScript‬‬ ‫ﻋﻴﻮﺏﻣﻨﻄﻘﻴﺔ‪429 ،418 ،‬‬
‫‪232‬‬ ‫ﺍﻟﻤﺘﻨﺼﺘﻮﻥ‬ ‫ﺍﻟﺘﺤﻜﻢﻓﻲ ﺍﻟﻮﺻﻮﻝ ﺍﻟﺘﻘﺪﻳﺮﻱ‬
‫ﺗﺨﻄﻴﻂﻣﻮﺍﺭﺩ ﺍﻟﻤﺆﺳﺴﺔ ‪، 53‬‬ ‫ﺍﻟﻤﺼﺎﺩﻗﺔ‪169،‬‬ ‫‪)DAC(، 282‬‬
‫(‪Enterprise Java Bean )EJB‬‬ ‫ﺭﻣﻮﺯﺍﻟﺠﻠﺴﺔ‪234 ،‬‬ ‫ﻣﺮﺷﺤﺎﺕﺍﻻﺳﺘﻌﻼﻣﺎﺕ ﺍﻟﻤﻨﻔﺼﻠﺔ‪350 ،‬‬
‫ﺍﻟﺒﺮﻣﺠﻴﺎﺕ)‪4 ،(ERP‬‬ ‫ﺇﻳﺒﺎﻱ‪505،‬‬ ‫ﺣﻘﻦ‪LDAP، 351‬‬
‫ﺗﻌﺪﺍﺩﺍﻟﻤﻌﺮﻓﺎﺕ‪583-572 ،‬‬ ‫ﺷﻔﺮﺍﺕﺍﻟﺒﻨﻚ ﺍﻟﻤﺮﻛﺰﻱ ﺍﻷﻭﺭﻭﺑﻲ‪.‬ﻳﺮﻯﺇﻟﻜﺘﺮﻭﻧﻲ‬ ‫‪.dll fi‬ﻟﻴﻪ‪ 141 ،‬ﺇﻋﺎﺩﺓ ﺭﺑﻂ‬
‫ﺍﻟﻨﻬﺞﺍﻷﺳﺎﺳﻲ‪574 ،‬‬ ‫ﺷﻔﺮﺍﺕﻛﺘﺐ ﺍﻟﻄﺒﺦ‬ ‫‪DNS، 563-564‬‬
‫ﺩﺧﻴﻞﺍﻟﺘﺠﺸﺆ‪597-594 ،‬‬ ‫ﺇﻳﻜﻮﻣﻴﺮﺍﺝ‪139 ،‬‬ ‫ﻧﻮﻉﺍﻟﻤﺴﺘﻨﺪﺍﻟﻌﻨﺼﺮ‪385-384 ،‬‬
‫‪862‬ﺍﻟﻔﻬﺮﺱ‪-‬ﻑ‪-‬ﻑ‬

‫ﺃﺳﻤﺎءﺍﻟﺴﻤﺎﺕ‪461 ،‬‬ ‫ﻏﻴﺮﻣﻌﺎﻟﺞ‪31-30 ،‬‬ ‫ﺍﻛﺘﺸﺎﻑﺍﻟﻀﺮﺑﺎﺕ‪،‬‬


‫ﻗﻴﻢﺍﻟﺴﻤﺎﺕ‪462 ،‬‬ ‫ﺍﻟﻬﺮﻭﺏ‬ ‫‪576-574‬ﺃﻣﺜﻠﺔ‪573 ،‬‬
‫ﻣﺠﻤﻮﻋﺎﺕﺍﻷﺣﺮﻑ‪465–464 ،‬‬ ‫ﻋﻴﻮﺏﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ‪ 420-419 ،‬ﻣﻊ ﺣﺮﻑ‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪،‬‬
‫ﺃﻗﻮﺍﺱﺍﻟﻌﻼﻣﺎﺕ‪464–462 ،‬‬ ‫ﺍﻟﺸﺮﻃﺔﺍﻟﻤﺎﺉﻠﺔ ﻟﻠﺨﻠﻒ‪ 419 ،‬ﺟﺎﻓﺎ‬ ‫ﺗﻌﻴﻴﻦﺍﻟﺘﻄﺒﻴﻖ‪،‬‬
‫ﺍﺳﻢﺍﻟﻌﻼﻣﺔ‪461-460 ،‬‬ ‫ﺳﻜﺮﻳﺒﺖ‪،‬ﻛﻮﺩ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ‬ ‫‪798–797‬‬
‫ﺍﻹﺩﺧﺎﻝ‪،‬ﻋﺒﻮﺭ ﺍﻟﻤﺴﺎﺭ‬ ‫ﺗﺠﺎﻭﺯﺍﻟﻤﺮﺷﺤﺎﺕ‪466–465 ،‬‬ ‫ﺭﻣﺰﺣﺎﻟﺔ ‪، 577–583‬‬
‫ﻧﻘﺎﻁﺍﻟﻀﻌﻒ‪377-374 ،‬‬ ‫‪XSS، 420‬‬ ‫‪HTTP، 574 JAttack‬‬
‫‪LDAP، 350‬‬ ‫ﺇﻳﺘﺎﺝﺳﻠﺴﻠﺔ‪129-128 ،‬‬ ‫ﻣﻮﻗﻊﺭﺃﺱ ﺍﻟﺼﻔﺤﺔ‪575 ،‬‬
‫ﻗﺎﺉﻤﺔﺍﺳﺘﺒﻌﺎﺩ ‪Oracle PL/SQL‬‬ ‫ﺗﻘﻴﻴﻢﺩﺍﻟﺔ‪722 ،362 ،‬‬ ‫ﻫﻴﺉﺔﺍﻻﺳﺘﺠﺎﺑﺔ‪575 ،‬‬
‫ﺍﻟﺘﺠﺎﻭﺯ‪694–692،‬‬ ‫ﻛﻮﺩﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﻳﺘﺠﺎﻭﺯ ﺍﻟﻤﺮﺷﺤﺎﺕ‬ ‫ﻃﻮﻝﺍﻻﺳﺘﺠﺎﺑﺔ‪ 575-574 ،‬ﻧﺼﺎً‪،‬‬
‫ﺍﻧﻌﻜﺎﺱ‪XSS‬‬ ‫ﺑﺪﺍﺉﻞﻟـ ‪466‬‬ ‫‪577-576‬‬
‫ﺩﻓﺎﻋﻲ‪456-455،‬‬ ‫ﻣﻌﺎﻟﺠﺎﺕﺍﻷﺣﺪﺍﺙ‬ ‫ﻣﺠﻤﻮﻋﺔﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁﺭﺃﺱ ﺍﻟﺼﻔﺤﺔ‪575 ،‬‬

‫ﺍﻟﺘﻌﻘﻴﻢ‪471-468،‬‬ ‫‪HTML5،458‬‬ ‫ﺗﺄﺧﻴﺮﺍﺕﺯﻣﻨﻴﺔ‪576-575 ،‬‬


‫ﻳﻌﺘﻤﺪﻋﻠﻰ ﺍﻟﺘﻮﻗﻴﻊ‪457–456 ،‬‬ ‫ﻛﻮﺩﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﻓﻲ ‪ HTML‬ﻣﻊ‪،‬‬ ‫ﺗﺨﻄﻴﻂﻣﻮﺍﺭﺩ ﺍﻟﻤﺆﺳﺴﺎﺕ‪.‬ﻳﺮﻯﻣﻮﺍﺭﺩ ﺍﻟﻤﺆﺳﺴﺔ‬
‫ﺗﻄﻬﻴﺮ‪ XSS،‬ﺍﻟﻤﻨﻌﻜﺲ‪،‬‬ ‫‪458–457‬‬ ‫ﺑﺮﻧﺎﻣﺞﺍﻟﺘﺨﻄﻴﻂ‬
‫‪471–468‬‬ ‫ﺗﻨﺘﻬﻲﺻﻼﺣﻴﺘﻬﺎﺭﺃﺱ ﺍﻟﺼﻔﺤﺔ‪42 ،‬‬ ‫ﺭﺳﺎﺉﻞﺍﻟﺨﻄﺄ‬
‫ﺗﺠﺎﻭﺯﻛﻮﺩ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ‪468–465 ،‬‬ ‫ﻟﻐﺔﺗﺮﻣﻴﺰ ﻗﺎﺑﻠﺔ ﻟﻠﺘﻮﺳﻴﻊ‬ ‫ﺃﺑﺎﺗﺸﻲ‪628،‬‬
‫ﺑﺪﺍﺉﻞﺣﺮﻑ ﺍﻟﻨﻘﻄﺔ‪،‬‬ ‫‪)XML(، 56.‬ﺍﻧﻈﺮ ﺃﻳﻀﺎﺑﺮﻭﺗﻮﻛﻮﻝ‬ ‫‪ASP.NET، 628‬‬
‫‪466‬‬ ‫ﺍﻟﻮﺻﻮﻝﺇﻟﻰ ﺍﻟﻜﺎﺉﻨﺎﺕ ﺍﻟﺒﺴﻴﻄﺔ؛ ﻟﻐﺔ‬ ‫ﻗﺎﻋﺪﺓﺍﻟﺒﻴﺎﻧﺎﺕ‪622-619 ،‬‬
‫ﺗﻢﺑﻨﺎﺅﻫﺎ ﺩﻳﻨﺎﻣﻴﻜﻴﺎً‬ ‫ﻣﺴﺎﺭ‪XML‬‬ ‫ﺗﺸﻔﻴﺮﺃﻭﺭﺍﻛﻞ‪ 622-620 ،‬ﺍﻟﻜﺸﻒ‬
‫ﺃﻭﺗﺎﺭ‪466،‬‬ ‫‪E4X، 463‬‬ ‫ﻋﻦﺍﻟﻤﻌﻠﻮﻣﺎﺕ‪،‬‬
‫ﺍﻟﺘﺮﻣﻴﺰ‪468،‬‬ ‫ﺍﻟﺤﻘﻦ‪390-383،‬‬ ‫‪620–619‬‬
‫ﺗﻘﻴﻴﻢﺑﺪﺍﺉﻞ ﺍﻟﻮﻇﻴﻔﺔ‪،‬‬ ‫‪XXE، 384–386،841‬‬ ‫ﻗﻮﺍﻋﺪﺍﻟﺒﻴﺎﻧﺎﺕ‪ XSS ،‬ﻓﻲ‪ 620 ،‬ﻣﺼﺤﺢ‬
‫‪466‬‬ ‫ﺍﻟﺘﺮﺟﻤﺔ‪387،‬‬ ‫ﺍﻷﺧﻄﺎء‪619-618 ،426-425،‬‬
‫ﺍﻟﻬﺮﻭﺏﻣﻦ ‪ ،JavaScript‬ﺗﻘﻨﻴﺔ‬ ‫ﺛﻐﺮﺍﺕ‪XSS‬‬ ‫ﻣﺸﺘﺮﻙ‪619،‬‬
‫ﻣﺘﻌﺪﺩﺓ‪466–465‬‬ ‫ﺟﺎﻓﺎﺳﻜﺮﻳﺒﺖ ﻓﻲ‪479-478 ،‬‬ ‫ﺗﻢﺇﻧﺸﺎﺅﻫﺎ ﺩﻳﻨﺎﻣﻴﻜﻴﺎً‪434 ،‬‬
‫ﻣﺠﻤﻮﻋﺔ‪467-466،‬‬ ‫ﺇﺭﺳﺎﻝﻋﺒﺮ ﺍﻟﻨﻄﺎﻗﺎﺕ‪،‬‬ ‫ﻣﻌﻠﻮﻣﺎﺕﻫﻨﺪﺳﻴﺔ‪،‬‬
‫‪VBScript، 467‬‬ ‫‪478–477‬‬ ‫‪625–624‬‬
‫‪JavaScript،‬ﻭ ‪VBScript‬‬ ‫ﺍﺳﺘﺨﺮﺍﺝﺩﺍﻟﺔ ‪Grep، 598‬‬ ‫ﺍﻻﺳﺘﻐﻼﻝ‪625-615،‬‬
‫‪468–467‬‬ ‫ﻋﺎﻡ‪628،‬‬
‫ﺷﺮﻭﻁﺍﻟﻤﻄﺎﺑﻘﺔ ﺍﻟﺒﺴﻴﻄﺔ‪ ،‬ﻭﺗﺠﺎﻭﺯ‬ ‫‪IE، 622‬‬
‫ﺣﻘﻦ‪،SQL 350‬‬ ‫ﻑ‬ ‫ﺍﻹﻓﺼﺎﺡﻋﻦ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ‪،‬‬
‫ﻭﻇﻴﻔﺔﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ ﻋﻨﺪ ﺍﻟﻔﺸﻞ ﻓﻲ ﺍﻟﻔﺘﺢ‪،186–185 ،‬‬
‫‪313–311‬‬ ‫‪625–615‬‬
‫‪XSS‬‬ ‫‪194‬‬ ‫ﻋﺎﻡ‪628،‬‬
‫ﻣﻀﺎﺩ‪748 ،452،‬‬ ‫ﺭﺳﺎﺉﻞﺍﻟﻔﺸﻞ‪ ،‬ﻣﻄﻮﻟﺔ‪،‬‬ ‫ﺟﺎﻭﺓ‪628،‬‬
‫ﺍﻟﻘﺎﺉﻤﺔﺍﻟﺴﻮﺩﺍء‪452-451 ،‬‬ ‫‪169–166‬‬ ‫ﺍﻟﻜﻠﻤﺎﺕﺍﻟﺮﺉﻴﺴﻴﺔ‪622 ،‬‬
‫‪IE، 479-481‬‬ ‫ﻣﻠﺤﻘﺎﺕﺍﻟﻤﻠﻔﺎﺕ‪ ،‬ﺗﻀﻤﻴﻦ‬ ‫ﻣﺎﻳﻜﺮﻭﺳﻮﻓﺖ‪IIS، 628‬‬
‫ﻣﺘﺼﻔﺤﺎﺕﺍﻟﻮﻳﺐ‪481-479 ،‬‬ ‫ﺍﻟﻤﻠﻔﺎﺕ‪105–102‬‬ ‫ﻗﻮﺍﻋﺪﺑﻴﺎﻧﺎﺕ ‪MySQL، 334-338‬‬
‫ﺍﻟﺨﺪﻣﺎﺕﺍﻟﻤﺎﻟﻴﺔ‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪ 836-835 ،‬ﻣﺤﻠﻲ‪382 ،‬‬ ‫‪MS-SQL، 334-338‬‬
‫ﻋﻴﻮﺏﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ‪، 658 416-412 ،‬‬ ‫‪ODBC، 624‬‬
‫‪ASPs‬‬ ‫ﺑﻌﻴﺪ‪382-381،‬‬ ‫ﻗﻮﺍﻋﺪﺑﻴﺎﻧﺎﺕ ﺃﻭﺭﺍﻛﻞ‪338-334 ،‬‬
‫ﻗﻮﺍﻋﺪﺑﻴﺎﻧﺎﺕ ﺑﺼﻤﺎﺕ ﺍﻷﺻﺎﺑﻊ‪SQL ،‬‬ ‫ﺍﺧﺘﺒﺎﺭﺍﻟﻌﻴﻮﺏ‪383 ،‬‬ ‫ﻣﻌﻠﻮﻣﺎﺕﻋﺎﻣﺔ‪ 623 ،‬ﻣﺤﺘﻮﻯ‬
‫ﺍﻟﺤﻘﻦ‪304-303،‬‬ ‫ﺍﻟﻤﻮﺍﺭﺩﺍﻟﺜﺎﺑﺘﺔ‪382 ،‬‬ ‫ﻣﻨﺸﻮﺭ‪625،‬‬
‫ﻓﺎﻳﺮﺑﺞ‪785،‬‬ ‫ﻧﻘﺎﻁﺍﻟﻀﻌﻒ‪383-381 ،‬‬ ‫ﻣﺨﻄﻮﻃﺔ‪617-616،‬‬
‫ﻓﺎﻳﺮﻓﻮﻛﺲ‪459،‬‬ ‫ﺍﻟﻨﺘﺎﺉﺞ‪383-382،‬‬ ‫ﻣﺤﺮﻛﺎﺕﺍﻟﺒﺤﺚ‪623 ،‬‬
‫ﻣﻠﺤﻘﺎﺕﺍﻟﻤﺘﺼﻔﺢ‪ 750 ،‬ﺍﻟﺘﻘﺎﻁ‬ ‫‪PHP، 381-382‬‬ ‫ﺍﻟﺨﺎﺩﻡ‪622–619،‬‬
‫ﺍﻟﺒﻴﺎﻧﺎﺕﻋﺒﺮ ﺍﻟﻨﻄﺎﻗﺎﺕ‪ 521 ،‬ﺃﺩﺍﺓ ‪، 234‬‬ ‫ﺍﻟﺘﻼﻋﺐﺑﻤﺴﺎﺭ ﺍﻟﻤﻠﻒ‪.383–368 ،‬‬ ‫ﺣﻘﻦﺍﻟﺼﺎﺑﻮﻥ‪388 ،‬‬
‫‪Firesheep‬‬ ‫ﺍﻧﻈﺮﺃﻳﻀﺎﺛﻐﺮﺍﺕ ﻋﺒﻮﺭ‬ ‫ﺍﻟﻜﻮﺩﺍﻟﻤﺼﺪﺭﻱ ‪623‬‬
‫ﻣﺠﻤﻮﻋﺔﺃﺩﻭﺍﺕ ﺍﻟﻬﺎﻛﺮ‪750-749 ،‬‬ ‫ﺍﻟﻤﺴﺎﺭ‬ ‫ﺣﻘﻦ‪SQL، 334–338‬‬
‫ﺍﻟﻤﺤُﻴﻞﺭﺃﺱ ﺍﻟﺼﻔﺤﺔ‪239 ،‬‬ ‫ﺍﻟﻤﺮﺷﺤﺎﺕ‬ ‫ﺗﺘﺒﻌﺎﺕﺍﻟﻤﻜﺪﺱ‪618-617 ،‬‬
‫ﺃﺩﺍﺓ‪Firesheep، Firefox، 234‬‬ ‫ﺍﻷﺣﺮﻑﺍﻟﻤﺤﻈﻮﺭﺓ‪312-311 ،‬‬ ‫ﺍﻻﺗﺤﺎﺩﺍﻟﻤﺸﻐﻞ‪306 ،‬‬
‫ﺟﺪﺭﺍﻥﺣﻤﺎﻳﺔ‪12 ،‬‬ ‫ﺍﺳﺘﻌﻼﻣﺎﺕﺍﻟﻮﺻﻞ‪350 ،‬‬ ‫‪VBScript، 616‬‬
‫ﺗﻨﺒﻴﻬﺎﺕ‪33،‬‬ ‫ﺣﻘﻦ‪LDAP، 352-353‬‬ ‫ﻣﻄﻮﻝ‪624 ،31-30،‬‬
‫‪.‬ﻣﻦﺍﻟﺪﺭﺟﺔ ﺍﻷﻭﻟﻰ ‪NULL، 460 XSS‬‬ ‫ﺍﺳﺘﻌﻼﻣﺎﺕﻣﻨﻔﺼﻠﺔ‪350 ،‬‬ ‫ﺃﺧﻄﺎء‬
‫ﺑﺎﻳﺘﺎﺕ ‪WAFs،‬ﻳﺮﻯﺍﻧﻌﻜﺎﺱ ‪500 XSS‬‬ ‫ﺣﻘﻦ‪LDAP، 351‬‬ ‫ﺍﻟﺸﺮﻃﻴﺔ‪،‬ﺣﻘﻦ ‪،SQL‬‬
‫ﺧﺎﺩﻡﺩﺍﺧﻠﻲ‬ ‫ﺍﺳﺘﻐﻼﻝﺍﻟﻌﻴﻮﺏ‪ 313 ،‬ﺗﺠﺎﻭﺯ‬ ‫‪322–320‬‬
‫ﺧﻄﺄ‪49،‬‬ ‫‪HTML، 459-465‬‬ ‫ﺍﻟﺘﻌﺎﻣﻞﻣﻊ ﺁﻟﻴﺎﺕ ﺍﻟﺪﻓﺎﻉ‬
‫ﺗﻘﻨﻴﺎﺕﺍﻟﻘﻮﺓ ﺍﻟﻐﺎﺷﻤﺔ‪85 ،‬‬ ‫ﻓﻮﺍﺻﻞﺍﻟﺴﻤﺎﺕ‪462-461 ،‬‬ ‫ﺍﻟﻤﻬﺎﺟﻤﻮﻥﻭ‪31-30‬‬
‫ﻓﻬِﺮﺱِ‪-‬ﺝ‪-‬ﺡ ‪863‬‬

‫ﺍﻟﻤﺼﺎﺩﻗﺔ‬ ‫ﺍﻟﺘﻀﺒﻴﺐ‪573-572،‬‬ ‫‪503‬ﺍﻟﺨﺪﻣﺔ ﻏﻴﺮ ﻣﺘﻮﻓﺮﺓ‪،‬‬


‫ﻋﻴﻮﺏﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ‪،‬‬ ‫ﺩﺧﻴﻞﺍﻟﺘﺠﺸﺆ‪602-600 ،‬‬ ‫‪49‬‬
‫‪813–811‬‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪،‬‬ ‫ﻓﻼﺵ‪135-134،‬‬
‫ﺑﻴﺎﻧﺎﺕﺍﻻﻋﺘﻤﺎﺩ‪ ،‬ﺗﻢ ﺇﻧﺸﺎﺅﻫﺎ ﺗﻠﻘﺎﺉﻴﺎً‪،‬‬ ‫ﺍﻟﻤﻌﻠﻤﺔ‪827–824،‬‬ ‫ﺍﻟﺒﺎﻳﺖﻛﻮﺩ‪141 ،‬‬
‫‪810–809‬‬ ‫ﻣﺠﻤﻮﻋﺎﺕﺍﻻﺧﺘﺒﺎﺭ ﺍﻟﻤﺘﻜﺎﻣﻠﺔ‪،‬‬ ‫‪LSOs، 553/crossdomain.xml،‬‬
‫ﺑﻴﺎﻧﺎﺕﺍﻻﻋﺘﻤﺎﺩ ﻏﻴﺮ ﺁﻣﻨﺔ‬ ‫‪763–762‬‬ ‫‪525–526‬‬
‫ﺍﻟﺘﻮﺯﻳﻊ‪811-810،‬‬ ‫ﻫﺠﻮﻡ‪590-588،‬‬ ‫ﺳﻴﺎﺳﺔﺍﻟﻤﺼﺪﺭ ﻧﻔﺴﻪ‪526-525 ،‬‬
‫ﺑﻴﺎﻧﺎﺕﺍﻻﻋﺘﻤﺎﺩ ﻏﻴﺮ ﺁﻣﻨﺔ‬ ‫ﺍﻟﻬﺪﻑ‪587-586،‬‬ ‫ﺑﻴﺎﻧﺎﺕﻣﺘﺴﻠﺴﻠﺔ‪ 138-137 ،‬ﻋﺎﺉﻠﺔ‬
‫ﻧﺎﻗﻞﺍﻟﺤﺮﻛﺔ‪810 ،‬‬ ‫ﺃﻭﺗﺎﺭ‪587،‬‬ ‫ﺍﻟﺨﻄﻮﻁﺍﻟﻤﻠﻜﻴﺔ‪ 519-518 ،‬ﺍﻟﺘﺼﻔﺢ‬
‫ﺍﻧﺘﺤﺎﻝﺍﻟﺸﺨﺼﻴﺔ‪809-808 ،‬‬ ‫ﺍﻟﻘﺴﺮﻱ‪،‬ﺍﻟﺘﻄﺒﻴﻖ‬
‫ﺗﺨﺰﻳﻦﻭﻳﺐ ﻏﻴﺮ ﺁﻣﻦ‪ ،‬ﺗﺨﻤﻴﻦ‬
‫ﻛﻠﻤﺔﺍﻟﻤﺮﻭﺭ ‪807 ،811‬‬
‫ﺝ‬ ‫ﻋﻴﻮﺏﻣﻨﻄﻘﻴﺔ‪411 ،‬‬
‫ﻧﺴﻴﺖﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‪584 ،‬‬
‫ﺍﻟﻌﻨﺎﻭﻳﻦﺍﻟﻌﺎﻣﺔ‪45 ،‬‬
‫ﺟﻮﺩﺓﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‪806 ،‬‬ ‫ﺍﻟﻤﻬﺎﺟﻤﻮﻥﻳﺴﺘﺨﺪﻣﻮﻥ ‪14‬‬
‫ﺭﺳﺎﺉﻞﺍﻟﺨﻄﺄ ﺍﻟﻌﺎﻣﺔ‪ 628 ،‬ﻳﺤﺼﻞ‬
‫ﺍﺳﺘﻌﺎﺩﺓﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‪ ،‬ﻭﻭﻇﺎﺉﻒ "‬ ‫ﺛﻐﺮﺍﺕﺗﻨﺴﻴﻖ ﺍﻟﺴﻠﺴﻠﺔ‬
‫ﺍﻟﻄﺮﻳﻘﺔ‪42،‬‬
‫ﺗﺬﻛﺮﻧﻲ" ‪،808–807‬‬ ‫ﺍﻟﻤﻬﺎﺟﻤﻮﻥ‪644،‬‬
‫ﺍﻟﻐﺮﺽ‪264،‬‬
‫‪808‬‬ ‫ﺍﻷﺳﺒﺎﺏ‪643،‬‬
‫ﻳﺤﺼﻞﻃﻠﺐ‪40 ،‬‬
‫ﺍﻟﻔﻬﻢ‪805،‬‬ ‫ﺍﻟﻜﺸﻒ‪644،‬‬
‫ﺗﺤﻮﻳﻞ‪ XSS، 474–475‬ﺍﻟﺤﺼﻮﻝ‬
‫ﺗﻌﺪﺍﺩﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ‪،‬‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪ 838 ،‬ﺷﻔﺮﺓ‬
‫ﻋﻠﻰﺃﺩﻭﺍﺭ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﺤﺎﻟﻴﺔ‬
‫‪807–806‬‬ ‫ﺍﻟﻤﺼﺪﺭ‪710،‬‬
‫ﺍﻟﻄﺮﻳﻘﺔ‪261،‬‬
‫ﺗﻔﺮﺩﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ‪ ،‬ﺍﺳﺘﻐﻼﻝ ﺍﻟﺜﻐﺮﺓ‬ ‫ﺍﻻﺳﺘﻤﺎﺭﺍﺕ‬
‫ﻣﻠﻔﺎﺕ‪GIFAR، 485-486‬‬
‫ﺍﻷﻣﻨﻴﺔ‪809‬‬ ‫‪HTML، 58-59‬‬
‫ﺟﻮﺟﻞ‪89،‬‬
‫ﺍﻟﻮﺻﻮﻝﻏﻴﺮ ﺍﻟﻤﺼﺮﺡ ﺑﻪ‪،‬‬ ‫ﺍﻟﻤﺼﺎﺩﻗﺔ‪ 161–160،‬ﺍﻟﺘﺤﻜﻢ‬
‫ﺍﻟﻨﺘﺎﺉﺞﺍﻟﻤﺤﺬﻭﻓﺔ‪90 ،‬‬
‫‪813‬‬ ‫ﻣﻦﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ ﻟﻠﻤﺴﺘﺨﺪﻡ‬
‫ﺍﻻﺳﺘﻌﻼﻡ‪90،‬‬
‫ﺣﻘﻦﻃﻠﺐ ﺍﻟﻮﺍﺟﻬﺔ ﺍﻟﺨﻠﻔﻴﺔ‪ 841 ،‬ﻣﻠﺤﻘﺎً‬ ‫ﺍﻹﺩﺧﺎﻝﻣﻊ‪133–127 ،‬‬
‫ﺗﺮﺟﻤﺔﺟﻮﺟﻞ )‪ 530-531 ،(GT‬ﺍﻟﻘﺮﺻﻨﺔ‬
‫ﻟﻠﻤﺘﺼﻔﺢ‪804-802،‬‬ ‫ﻧﻘﻞﺍﻟﺒﻴﺎﻧﺎﺕ ﻣﻦ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ‬
‫ﺑﺎﻟﻘﺒﻌﺔﺍﻟﺮﻣﺎﺩﻳﺔ)ﺇﻳﺠﻞ ﻭﻫﺎﺭﻳﺲ‬
‫ﻋﻨﺎﺻﺮﺗﺤﻜﻢ ‪ActiveX، 804‬‬ ‫ﻣﻊﻣﺨﻔﻲ‪120-118 ،‬‬
‫ﻭﻫﺎﺭﺑﺮ ﻭ ﻧﻴﺲ‪.GT 634 ،‬ﻳﺮﻯ‬
‫ﻣﺼﺤﺢﺍﻷﺧﻄﺎء‪804–803 ،‬‬ ‫ﺍﻟﻌﻨﺎﺻﺮﺍﻟﻤﻌﻄﻠﺔ‪133–131 ،‬‬
‫ﺗﺮﺟﻤﺔﺟﻮﺟﻞ‬
‫ﻓﻚﺍﻟﺘﺠﻤﻴﻊ‪803-802 ،‬‬ ‫ﺍﻋﺘﺮﺍﺽﺍﻟﻮﻛﻴﻞ‬
‫ﺗﺠﺎﻭﺯﺳﻌﺔ ﺍﻟﻤﺨﺰﻥ ﺍﻟﻤﺆﻗﺖ‪ 838–837 ،‬ﻣﻦ‬ ‫ﺗﻌﺪﻳﻞﺍﻟﻤﺨﻔﻲ‪،‬‬
‫ﺟﺎﻧﺐﺍﻟﻌﻤﻴﻞ‬ ‫ﺡ‬ ‫‪120–119‬‬
‫ﻧﻘﻞﺍﻟﺒﻴﺎﻧﺎﺕ‪801 ،‬‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‬ ‫ﺣﺪﻭﺩﺍﻟﻄﻮﻝ‪129-128 ،‬‬
‫ﺇﺩﺧﺎﻝﺍﻟﻤﺴﺘﺨﺪﻡ‪802–801 ،‬‬ ‫ﺿﻮﺍﺑﻂﺍﻟﻮﺻﻮﻝ‬ ‫ﺍﻟﺘﺤﻘﻖﺍﻟﻘﺎﺉﻢ ﻋﻠﻰ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ‪،‬‬
‫ﻧﻄﺎﻕﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ‪821–820 ،‬‬ ‫ﺍﻟﻮﺻﻮﻝﻏﻴﺮ ﺍﻵﻣﻦ‪823 ،‬‬ ‫‪131–129‬‬
‫‪CSRF، 820‬‬ ‫ﻭﺻﻮﻝﻣﺤﺪﻭﺩ‪823-822 ،‬‬ ‫ﻭﻇﺎﺉﻒﺍﻟﻮﻳﺐ‪400 60-58 ،‬‬
‫‪DOM، 849–850‬‬ ‫ﺣﺴﺎﺑﺎﺕﻣﺘﻌﺪﺩﺓ‪822 ،‬‬ ‫ﻃﻠﺐﺳﻲء‪48،‬‬
‫ﺗﻀﻤﻴﻦﺍﻟﻤﻠﻔﺎﺕ‪ ،‬ﻭﺛﻐﺮﺍﺕ ﺳﻠﺴﻠﺔ‬ ‫ﺍﻟﻤﺘﻄﻠﺒﺎﺕ‪821،‬‬ ‫ﺗﻘﻨﻴﺎﺕﺍﻟﻘﻮﺓ ﺍﻟﻐﺎﺷﻤﺔ‪401 84 ،‬‬
‫ﺍﻟﺘﻨﺴﻴﻖ‪،836–835‬‬ ‫ﺗﺤﻠﻴﻞ‬ ‫ﻏﻴﺮﻣﺼﺮﺡ ﺑﻪ‪48،‬‬
‫‪838‬‬ ‫ﺭﺳﻢﺧﺮﺍﺉﻂ ﺳﻄﺢ ﺍﻟﻬﺠﻮﻡ‪800 ،‬‬ ‫ﺗﻘﻨﻴﺎﺕﺍﻟﻘﻮﺓ ﺍﻟﻐﺎﺷﻤﺔ‪403 85-84 ،‬‬
‫ﻣﻌﻠﻤﺎﺕﺍﻟﺘﻤﻮﻳﻪ‪ ،‬ﺇﺭﺷﺎﺩﺍﺕ‬ ‫ﻧﻘﻄﺔﺇﺩﺧﺎﻝ ﺑﻴﺎﻧﺎﺕ‪799 ،‬‬ ‫ﻣﻤﻨﻮﻉ‪49‬‬
‫‪794-793،827-824‬‬ ‫ﺍﻟﻮﻇﻴﻔﺔ‪799-798،‬‬ ‫ﺗﻘﻨﻴﺎﺕﺍﻟﻘﻮﺓ ﺍﻟﻐﺎﺷﻤﺔ‪404 85-84 ،‬‬
‫ﺣﻘﻦﺭﺃﺱ ‪ HTTP، 830‬ﺗﺴﺮﻳﺐ‬ ‫ﺍﻟﺘﻘﻨﻴﺎﺕ‪800-799،‬‬ ‫ﻏﻴﺮﻣﻮﺟﻮﺩ‪49,‬‬
‫ﻣﻌﻠﻮﻣﺎﺕ‪ 852،‬ﺛﻐﺮﺍﺕ ﺃﻣﻨﻴﺔ ﺗﻌﺘﻤﺪ‬ ‫ﻋﻴﻮﺏﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ‬ ‫ﻃﺮﻳﻘﺔ‪ 405‬ﻏﻴﺮ ﻣﺴﻤﻮﺡ ﺑﻬﺎ‪413 49،‬‬
‫ﻋﻠﻰﺍﻹﺩﺧﺎﻝ‪،‬‬ ‫ﺳﻄﺢﺍﻟﻬﺠﻮﻡ‪842 ،‬‬ ‫ﻃﻠﺐﺍﻟﻜﻴﺎﻥ ﺃﻳﻀﺎً‬
‫‪836–824‬‬ ‫ﻣﺪﺧﻼﺕﻏﻴﺮ ﻣﻜﺘﻤﻠﺔ‪843 ،‬‬ ‫ﻛﺒﻴﺮ‪49،‬‬
‫ﻭﻇﺎﺉﻒﻣﺤﺪﺩﺓ‪ 841-836 ،‬ﺛﻐﺮﺍﺕ‬ ‫ﻭﻇﺎﺉﻒﻣﺘﻌﺪﺩﺓ ﺍﻟﻤﺮﺍﺣﻞ‪،‬‬ ‫‪414‬ﻃﻠﺐ ‪ URI‬ﻃﻮﻳﻞ ﺟﺪﺍً‪،‬‬
‫ﺃﻣﻨﻴﺔﻓﻲ ﺍﻷﻋﺪﺍﺩ ﺍﻟﺼﺤﻴﺤﺔ‪ 838 ،‬ﺣﻘﻦ‬ ‫‪843–842‬‬ ‫‪49‬‬
‫‪ LDAP، 839-840‬ﻫﺠﻤﺎﺕ ﺧﺼﻮﺻﻴﺔ‬ ‫ﻣﻨﻄﻖﺍﻟﻤﻌﺎﻣﻼﺕ‪844 ،‬‬ ‫ﻛﺴﺮﺍﻹﻃﺎﺭﺍﺕ‪ ،‬ﺗﺼﺤﻴﺢ ﻭﺍﺟﻬﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ‬
‫ﻣﺤﻠﻴﺔ‪ 851-850،‬ﻓﺤﻮﺻﺎﺕ ﻣﺘﻨﻮﻋﺔ‪،‬‬ ‫ﻋﻼﻗﺎﺕﺍﻟﺜﻘﺔ‪ 844 ،‬ﺭﺳﻢ ﺍﻟﺨﺮﺍﺉﻂ‬ ‫ﺍﻟﻬﺠﻤﺎﺕ‪515-514،‬‬
‫‪852-849‬ﺃﺧﻄﺎء ﺑﺮﻣﺠﻴﺔ ﺃﺻﻠﻴﺔ‪،‬‬ ‫ﺍﻟﺘﻄﺒﻴﻘﻴﺔ‪798-795،‬‬ ‫ﺍﺳﺘﺪﻋﺎءﺍﺕﺍﻟﻮﻇﺎﺉﻒ‪ ،‬ﺟﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ‬
‫‪838-837‬ﺇﻋﺎﺩﺓ ﺗﻮﺟﻴﻪ ﻣﻔﺘﻮﺣﺔ‬ ‫ﻣﻌﻠﻤﺎﺕﺍﻟﺘﺼﺤﻴﺢ‪798 ،‬‬ ‫ﺍﺧﺘﻄﺎﻑ‪520،‬‬
‫ﺍﻟﻤﺤﺘﻮﻯﺍﻻﻓﺘﺮﺍﺿﻲ‪797 ،‬‬ ‫ﺍﻟﻤﺴﺎﺭﺍﺕﺍﻟﻮﻇﻴﻔﻴﺔ‪ ،‬ﺍﻟﻮﻳﺐ‬
‫ﺍﻟﺜﻐﺮﺍﺕﺍﻷﻣﻨﻴﺔ‪ ،‬ﺣﻘﻦ ﺃﻭﺍﻣﺮ‬ ‫ﺗﻌﺪﺍﺩﺍﻟﻤﻌﺮﻓﺎﺕ‪،‬‬ ‫ﺻﻔﺤﺎﺕﺍﻟﺘﻄﺒﻴﻖﻋﻜﺲ‪–93 ،‬‬
‫ﻧﻈﺎﻡﺍﻟﺘﺸﻐﻴﻞ ‪،831-830‬‬ ‫‪798–797‬‬ ‫‪96‬‬
‫‪833–832‬‬ ‫ﺍﻟﻤﺤﺘﻮﻯﺍﻟﻤﺨﻔﻲ‪ 797–796 ،‬ﻣﺼﺎﺩﺭ‬ ‫ﺍﻟﻮﻇﻴﻔﺔ‪.‬ﻳﺮﻯﺷﺒﻜﺔ ﺍﻹﻧﺘﺮﻧﺖ‬
‫ﺛﻐﺮﺍﺕﻋﺒﻮﺭ ﺍﻟﻤﺴﺎﺭ‪،‬‬ ‫ﺍﻟﻤﻌﻠﻮﻣﺎﺕﺍﻟﻌﺎﻣﺔ‪،‬‬ ‫ﺍﻟﻮﻇﻴﻔﺔ‬
‫‪835–833‬‬ ‫‪796‬‬ ‫ﻣﺪﺧﻼﺕﺧﺎﺻﺔ ﺑﺎﻟﻮﻇﻴﻔﺔ‬
‫ﻣﻨﻌﻜﺲ‪XSS، 829–830‬‬ ‫ﻣﻦﺍﻟﺮﻣﻮﺯ ﺇﻟﻰ ﺍﻟﺠﻠﺴﺎﺕ‪818 ،‬‬ ‫ﻧﻘﺎﻁﺍﻟﻀﻌﻒ‪ ،‬ﻣﻨﻬﺠﻴﺔ‬
‫ﺳﻴﺎﺳﺔﺍﻟﻤﻨﺸﺄ ﻧﻔﺴﻪ‪852-851 ،‬‬ ‫ﻣﺤﺘﻮﻯﻣﺮﺉﻲ‪796-795 ،‬‬ ‫ﺍﻟﻘﺮﺍﺻﻨﺔ‪841-836،‬‬
‫ﻓﻬﺮﺱ‪-864‬ﺡ–ﺡ‬

‫ﺗﻘﺴﻴﻢﺍﺳﺘﺠﺎﺑﺔ ‪،HTTP‬‬ ‫ﺍﻟﻤﺤﺘﻮﻯﺍﻟﻤﺨﻔﻲ‬ ‫ﺣﻘﻦﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ‪835 ،‬‬


‫‪535–534‬‬ ‫ﺍﻛﺘﺸﺎﻑ‪93-80،‬‬ ‫ﺇﺩﺍﺭﺓﺍﻟﺠﻠﺴﺔ‬
‫ﺍﻟﺘﺤﻘﻖﻣﻦ ﺻﺤﺔ ﺍﻹﺩﺧﺎﻝ‪536 ،‬‬ ‫ﺗﻘﻨﻴﺎﺕﺍﻟﻘﻮﺓ ﺍﻟﻐﺎﺷﻤﺔ‪85-81 ،‬‬ ‫ﻧﻘﻞﻏﻴﺮ ﺁﻣﻦ ﻟﻠﺮﻣﻮﺯ‪،‬‬
‫ﺍﻟﻮﻗﺎﻳﺔ‪536،‬‬ ‫ﺍﺳﺘﻨﺘﺎﺝﻣﻦ ﺍﻟﻤﻨﺸﻮﺭ‬ ‫‪817‬‬
‫ﺣﻘﻦﻣﻌﻠﻤﺎﺕ (‪،HTTP )HPI‬‬ ‫ﺍﻟﻤﺤﺘﻮﻯ‪89-85،‬‬ ‫ﺍﻟﻜﺸﻒﻋﻦ ﺳﺠﻞ ﻧﻈﺎﻡ ﺍﻟﺮﻣﺰ ﺍﻟﻤﻤﻴﺰ‪،‬‬
‫‪390‬‬ ‫ﻧﻴﻜﺘﻮ‪93،‬‬ ‫‪818–817‬‬
‫ﺍﻷﺳﺒﺎﺏ‪394-393،‬‬ ‫ﺍﻟﻤﻌﻠﻮﻣﺎﺕﺍﻟﻌﺎﻣﺔ‪،91-89 ،‬‬ ‫ﺍﻟﺮﻣﻮﺯﺍﻟﺘﻲ ﺗﻢ ﺍﺧﺘﺒﺎﺭﻫﺎ ﻟﻤﻌﺮﻓﺔ ﻣﻌﻨﺎﻫﺎ‪،‬‬
‫‪HPP، 394-395‬‬ ‫ﻋﻨﻜﺒﻮﺕﻣﻮﺟﻪ ﻟﻠﻤﺴﺘﺨﺪﻡ‪،‬‬ ‫‪816–815‬‬
‫ﺗﻠﻮﺙﻣﻌﻠﻤﺎﺕ (‪HTTP )HPP‬‬ ‫‪83–81‬‬ ‫ﺍﻟﺮﻣﻮﺯﺍﻟﺘﻲ ﺗﻢ ﺍﺧﺘﺒﺎﺭﻫﺎ‬
‫ﺟﺎﻧﺐﺍﻟﻌﻤﻴﻞ‪550-548 ،‬‬ ‫ﺧﺎﺩﻡﺍﻟﻮﻳﺐ ﺍﻟﻤﺴﺘﻐﻞ ﻟـ‪،‬‬ ‫ﺍﻟﻘﺪﺭﺓﻋﻠﻰ ﺍﻟﺘﻨﺒﺆ‪817-816 ،‬‬
‫ﻣﺆﺷﺮﺃﺳﻌﺎﺭ ﺍﻟﻤﺴﺘﻬﻠﻚ‪395-394 ،‬‬ ‫‪93–91‬‬ ‫ﺍﻟﻔﻬﻢ‪815-814،‬‬
‫‪HTTPRECON، 102‬‬ ‫ﻭﻳﻜﺘﻮ‪93-92،‬‬ ‫ﺍﻟﺠﻠﺴﺎﺕ‬
‫‪HTTPS، 49‬‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪،‬‬ ‫ﺍﻟﺘﺜﺒﻴﺖ‪819،‬‬
‫ﻣﺠﻤﻮﻋﺎﺕﺍﻻﺧﺘﺒﺎﺭ ﺍﻟﻤﺘﻜﺎﻣﻠﺔ‪،‬‬ ‫ﺗﻌﻴﻴﻦﺍﻟﺘﻄﺒﻴﻖ‪،‬‬ ‫ﺇﻧﻬﺎء‪819-818،‬‬
‫ﺍﻋﺘﺮﺍﺽﺍﻟﻮﻛﻼء‪،‬‬ ‫‪797–796‬‬ ‫ﺍﻻﺳﺘﻀﺎﻓﺔﺍﻟﻤﺸﺘﺮﻛﺔ‪،‬‬
‫‪758–755‬‬ ‫ﺣﻘﻮﻝﻧﻤﻮﺫﺝ ‪ HTML‬ﺍﻟﻤﺨﻔﻴﺔ‬ ‫‪846-845‬ﺣﻘﻦ ‪، 836-837‬‬
‫ﻭﻇﻴﻔﺔﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ‪170 ،‬‬ ‫ﻧﻘﻞﺍﻟﺒﻴﺎﻧﺎﺕ ﻣﻦ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ‬ ‫‪ SMTP‬ﺣﻘﻦ ‪SOAP، 839‬‬
‫ﻫﺠﻤﺎﺕﺍﻟﺮﺟﻞ ﻓﻲ ﺍﻟﻤﻨﺘﺼﻒ‪،‬‬ ‫ﻣﻊ‪120–118،‬‬ ‫ﺣﻘﻦ‪SQL، 827–829‬‬
‫‪568–566‬‬ ‫ﺍﻋﺘﺮﺍﺽﺗﻌﺪﻳﻞ ﺍﻟﻮﻛﻴﻞ‪،‬‬ ‫ﺍﻹﺟﺮﺍءﺍﺕﺍﻟﻤﺨﺰﻧﺔ‪832-831 ،‬‬
‫ﺧﻮﺍﺩﻡﺑﺮﻭﻛﺴﻲ‪50 ،‬‬ ‫‪120–119‬‬ ‫ﺗﺸﻔﻴﺮ‪ SSL‬ﺿﻌﻴﻒ‪ 851 ،‬ﺧﻮﺍﺩﻡ‬
‫ﺭﻣﻮﺯﺍﻟﺠﻠﺴﺔ‪ 250 ،236-234 ،‬ﺃﺩﺍﺓ‬ ‫ﺍﻟﻤﻌﻠﻤﺎﺕﺍﻟﻤﺨﻔﻴﺔ‪ ،‬ﺍﻟﺘﻄﺒﻴﻖ‬ ‫ﺍﻟﻮﻳﺐ‪849-846،‬‬
‫‪، IE، 748 Hydra، 785-786‬‬ ‫ﺭﺳﻢﺍﻟﺨﺮﺍﺉﻂ‪97-96 ،‬‬ ‫ﻃﺮﻕ‪ HTTP‬ﺍﻟﺨﻄﻴﺮﺓ‪،‬‬
‫‪HTTPWatch‬‬ ‫ﺍﺧﺘﻄﺎﻑ‬ ‫‪847‬‬
‫ﺍﻻﺭﺗﺒﺎﻃﺎﺕﺍﻟﺘﺸﻌﺒﻴﺔ‪ ،‬ﻭﻇﺎﺉﻒ ﺍﻟﻮﻳﺐ‪ ،‬ﻟﻐﺔ‬ ‫ﺟﺎﻓﺎﺳﻜﺮﻳﺒﺖ‪520-519 ،‬‬ ‫ﺍﻟﻤﺤﺘﻮﻯﺍﻻﻓﺘﺮﺍﺿﻲ‪847 ،‬‬
‫ﺗﺮﻣﻴﺰﺍﻟﻨﺺ ﺍﻟﺘﺸﻌﺒﻲ ‪58‬‬ ‫‪E4X، 523–524‬‬ ‫ﺑﻴﺎﻧﺎﺕﺍﻻﻋﺘﻤﺎﺩ ﺍﻻﻓﺘﺮﺍﺿﻴﺔ‪846 ،‬‬
‫‪)HTML(.‬ﺍﻧﻈﺮ ﺃﻳﻀﺎﺗﻌﺪﻳﻞ ﻋﻨﺎﺻﺮ‬ ‫ﺍﺳﺘﺪﻋﺎءﺍﺕﺍﻟﻮﻇﺎﺉﻒ‪520 ،‬‬ ‫ﺧﻄﺄﻓﻲ ﺍﻟﺒﺮﺍﻣﺞ ﺍﻷﺻﻠﻴﺔ‪848 ،‬‬
‫ﺗﺤﻜﻢ‪ ActiveX‬ﻓﻲ ‪،HTML5‬‬ ‫‪JSON، 521‬‬ ‫ﻭﻇﻴﻔﺔﺧﺎﺩﻡ ﺍﻟﻮﻛﻴﻞ‪،‬‬
‫‪557‬‬ ‫ﺍﻟﻮﻗﺎﻳﺔ‪524،‬‬ ‫‪847‬‬
‫ﺗﺠﺎﻭﺯﺍﻟﻤﺮﺷﺤﺎﺕ‪465-459 ،‬‬ ‫ﺗﻌﻴﻴﻦﻣﺘﻐﻴﺮ‪ 522 ،‬ﺟﻠﺴﺔ‪436 ،‬‬ ‫ﺍﻻﺳﺘﻀﺎﻓﺔﺍﻻﻓﺘﺮﺍﺿﻴﺔ‪ 848-847 ،‬ﺟﺪﺭﺍﻥ ﺣﻤﺎﻳﺔ‬

‫ﻓﻮﺍﺻﻞﺍﻟﺴﻤﺎﺕ‪ 462-461 ،‬ﺃﺳﻤﺎء‬ ‫ﺗﻄﺒﻴﻘﺎﺕﺍﻟﻮﻳﺐ‪849-848 ،‬‬

‫ﺍﻟﺴﻤﺎﺕ‪461،‬‬ ‫ﻫﻮﻟﻴﻔﻴﻠﺪ‪،‬ﺑﺮﺍﻳﺎﻥ‪138 ،‬‬ ‫ﻣﻨﺎﻃﻖﺍﻟﻌﻤﻞ‪793-791 ،‬‬


‫ﻗﻴﻢﺍﻟﺴﻤﺎﺕ‪462 ،‬‬ ‫ﺿﻮﺍﺑﻂﺍﻟﻮﺻﻮﻝ ﺍﻷﻓﻘﻴﺔ‪،‬‬ ‫ﺣﻘﻨﺔ‪ XPath، 840-841‬ﺣﻘﻨﺔ‬
‫ﻣﺠﻤﻮﻋﺎﺕﺍﻷﺣﺮﻑ‪465–464 ،‬‬ ‫‪258‬‬ ‫‪XXE، 841‬‬
‫ﺃﻗﻮﺍﺱﺍﻟﻌﻼﻣﺎﺕ‪464–462 ،‬‬ ‫ﺗﺼﻌﻴﺪﺍﻻﻣﺘﻴﺎﺯﺍﺕ ﺍﻷﻓﻘﻲ‪،‬‬ ‫ﻣﺠﻤﻮﻋﺔﺃﺩﻭﺍﺕ ﺍﻟﻬﺎﻛﺮ‪747 ،‬‬
‫ﺍﺳﻢﺍﻟﻌﻼﻣﺔ‪461-460 ،‬‬ ‫‪416،259‬‬ ‫ﻧﺼﻮﺹﻣﺨﺼﺼﺔ‪789–786 ،‬‬
‫ﺍﻟﺘﺮﻣﻴﺰ‪69-68،‬‬ ‫ﻳﺴﺘﻀﻴﻒﺭﺃﺱ ﺍﻟﺼﻔﺤﺔ‪41 ،‬‬ ‫ﻛﻴﺮﻝ‪788،‬‬
‫ﺃﺧﻄﺎءﺍﻟﻤﻄﻮﺭ‪ 495-494 ،‬ﺍﻟﻨﻤﺎﺫﺝ‪،‬‬ ‫ﺍﺳﺘﻀﺎﻓﺔ‪.‬ﻳﺮﻯﺍﺳﺘﻀﺎﻓﺔ ﻣﺸﺘﺮﻛﺔ‬ ‫ﻧﺖﻛﺎﺕ‪789-788 ،‬‬
‫‪59-58‬‬ ‫‪HP OpenView، 359‬‬ ‫ﺳﺘﻮﻧﻴﻞ‪789،‬‬
‫ﺍﻟﻤﺼﺎﺩﻗﺔ‪ 161–160،‬ﺍﻟﺘﺤﻜﻢ‬ ‫ﻣﺆﺷﺮﺃﺳﻌﺎﺭ ﺍﻟﻤﺴﺘﻬﻠﻚ‪.‬ﻳﺮﻯﻣﻌﻠﻤﺔ ‪HTTP‬‬ ‫ﻭﺟﻴﺖ‪788،‬‬
‫ﻣﻦﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ ﻟﻠﻤﺴﺘﺨﺪﻡ‬ ‫ﺣﻘﻦ‬ ‫ﻓﺎﻳﺮﺑﺞ‪785،‬‬
‫ﺍﻹﺩﺧﺎﻝﻣﻊ‪133–127 ،‬‬ ‫ﻣﺤﻄﺔﺍﻟﻄﺎﻗﺔ ﺍﻟﻜﻬﺮﻭﻣﺎﺉﻴﺔ‪.‬ﻳﺮﻯﻣﻌﻠﻤﺔ ‪HTTP‬‬ ‫ﻫﻴﺪﺭﺍ‪786-785،‬‬
‫ﻧﻘﻞﺍﻟﺒﻴﺎﻧﺎﺕ ﻣﻦ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ‬ ‫ﺗﻠﻮﺙ‬ ‫ﻣﺠﻤﻮﻋﺎﺕﺍﻻﺧﺘﺒﺎﺭ ﺍﻟﻤﺘﻜﺎﻣﻠﺔ‪،‬‬
‫ﻣﻊﻣﺨﻔﻲ‪120-118 ،‬‬ ‫‪HTML.‬ﻳﺮﻯﺗﺮﻣﻴﺰ ﺍﻟﻨﺺ ﺍﻟﺘﺸﻌﺒﻲ‬ ‫‪773–751‬‬
‫ﺍﻟﻌﻨﺎﺻﺮﺍﻟﻤﻌﻄﻠﺔ‪133–131 ،‬‬ ‫ﻟﻐﺔ‬ ‫ﺍﻟﻤﻜﻮﻧﺎﺕ‪769–752،‬‬
‫ﺍﻋﺘﺮﺍﺽﺍﻟﻮﻛﻴﻞ‬ ‫‪HTML5‬‬ ‫ﺃﻧﻮﺍﻉ‪751،‬‬
‫ﺗﻌﺪﻳﻞﺍﻟﻤﺨﻔﻲ‪،‬‬ ‫ﺃﻳﺎﻛﺲ‪487،‬‬ ‫ﻧﻴﻜﺘﻮ‪785،‬‬
‫‪120–119‬‬ ‫ﻣﻌﺎﻟﺠﺎﺕﺍﻷﺣﺪﺍﺙ‪458 ،‬‬ ‫ﻣﺘﺼﻔﺤﺎﺕﺍﻟﻮﻳﺐ‪750–748 ،‬‬
‫ﺣﺪﻭﺩﺍﻟﻄﻮﻝ‪129-128 ،‬‬ ‫ﻫﺠﻤﺎﺕﺍﻟﺨﺼﻮﺻﻴﺔ ﺍﻟﻤﺤﻠﻴﺔ‪554 ،‬‬ ‫ﻛﺮﻭﻡ‪750،‬‬
‫ﺍﻟﺘﺤﻘﻖﺍﻟﻘﺎﺉﻢ ﻋﻠﻰ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ‪،‬‬ ‫ﺳﻴﺎﺳﺔﺍﻟﻤﻨﺸﺄ ﻧﻔﺴﻪ‪529-528 ،‬‬ ‫ﻓﺎﻳﺮﻓﻮﻛﺲ‪750–749،‬‬
‫‪131–129‬‬ ‫ﺑﺮﻭﺗﻮﻛﻮﻻﺕﻧﺼﻴﺔ ﺯﺍﺉﻔﺔ‪458 ،‬‬ ‫‪IE، 748-749‬‬
‫ﺣﻘﻦﺍﻟﺒﻴﺎﻧﺎﺕ ﻋﺒﺮ ﺍﻟﻨﻄﺎﻗﺎﺕ‬ ‫ﻭﻇﻴﻔﺔﺍﻟﻮﻳﺐ‪.HTTP 65-64 ،‬ﻳﺮﻯ‬ ‫ﻭﻳﻜﺘﻮ‪785،‬‬
‫ﺃﺳﺮ‪517-516،‬‬ ‫ﻧﻘﻞﺍﻟﻨﺺ ﺍﻟﺘﺸﻌﺒﻲ‬ ‫ﺣﻤﺎﺩ‪،‬ﺷﺮﻳﻒ‪322 ،‬‬
‫ﺍﻧﻌﻜﺎﺱﺣﺪﻭﺩ ‪ ،XSS‬ﺗﻢ ﺗﻘﺪﻳﻢ ﻛﻮﺩ‬ ‫ﺑﺮﻭﺗﻮﻛﻮﻝ‬ ‫ﻫﺎﺭﺑﺮ‪،‬ﺃﻟﻴﻦ‪634 ،‬‬
‫ﺍﻟﺒﺮﻧﺎﻣﺞﺍﻟﻨﺼﻲ ‪ 496–495‬ﻓﻲ‬ ‫ﺣﻘﻦﺭﺃﺱ ‪HTTP‬‬ ‫ﻫﺎﺭﻳﺲ‪،‬ﺷﻮﻥ‪634 ،‬‬
‫ﺗﻢﺗﻘﻴﻴﻤﻪ ﺩﻳﻨﺎﻣﻴﻜﻴﺎً ‪CSS‬‬ ‫ﺍﻷﺳﺒﺎﺏ‪532-531،‬‬ ‫ﺭﺃﺱﺍﻟﻮﻇﺎﺉﻒ‪43 ،‬‬
‫ﺍﻷﻧﻤﺎﻁ‪459،‬‬ ‫ﺍﻟﻜﻮﻛﻴﺰ‪533،‬‬ ‫ﺭﺃﺱﺍﻟﻄﺮﻳﻘﺔ‪265 ،‬‬
‫ﻣﻌﺎﻟﺠﺎﺕﺍﻷﺣﺪﺍﺙ‪458–457 ،‬‬ ‫ﺍﻻﺳﺘﻐﻼﻝ‪535-532،‬‬ ‫ﻓﻴﻀﺎﻧﺎﺕﺍﻟﻜﻮﻣﺔ‪636-635 ،‬‬
‫ﺑﺮﻭﺗﻮﻛﻮﻻﺕﻧﺼﻴﺔ ﺯﺍﺉﻔﺔ‪ 458 ،‬ﻧﺺ‬ ‫ﺍﻟﻤﻬﺎﺟﻤﻮﻥ‪535-534،‬‬ ‫ﻫﻴﺴﻤﺎﻥ‪،‬ﺟﻮﻥ‪634 ،‬‬
‫ﺍﻟﻌﻼﻣﺎﺕ‪457،‬‬ ‫ﻣﻨﻬﺠﻴﺔﺍﻟﻬﺎﻛﺮ‪830 ،‬‬ ‫ﺗﺮﻣﻴﺰﺳﺪﺍﺳﻲ ﻋﺸﺮﻱ‪70–69 ،‬‬

You might also like