Quantcast
Channel: Planet Python
Viewing all articles
Browse latest Browse all 22462

بايثون العربي: مكتبة مقبس الويب urllib2

$
0
0

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

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

مكتبة مقبس الويب : urllib2

حتى يمكننا برمجة ادوات تمكننا من التفاعل مع خدمات الويب سنقوم بإستخدام مكتبة urllib2 وبدون إطالة دعونا نقوم بكتابة برنامج بسيط يقوم بطلب GET لموقع Yahoo


import urllib2
body = urllib2.urlopen("http://www.yahoo.com")
print body.read()

هذه طريقة بسيطة لكيفية إرسال طلب GET الى موقع ، وكل ما قمنا به جلب الصفحة الرئيسية لذلك الموقع ولن يتم تنفيذ أي سكريبتات جافاسكريبت أو لغات أخرى ، حيث قمنا بإعطاء عنوان الموقع لدالة urlopen وستقوم بإرجاع لنا ملف ككائن حيث يمكننا قراءته من بعد .

مايهمنا نحن في هذه الملفات هو كيفية السيطرة المطلقة على تلك الطلبيات بجلب رؤوس محددة ، التعامل مع الكوكيز و إنشاء طلبات POST وهذا ما توفره لنا مكتبة urllib2 بتوفيرها على كلاسات Request التي تسمح لنا بإمتلاك ذلك المستوى من التحكم .

في المثال الموالي سنقوم بنفس طلبية GET مع بإستخدام كلاس Request مع تحديد رأس عميل المستخدم HTTP مخصص .


import urllib2
url = "http://www.yahoo.com"
headers = {}
headers['User-Agent'] = "Googlebot"
request = urllib2.Request(url,headers=headers)
response = urllib2.urlopen(request)
print response.read()
response.close()

إن تركيبة كائن Request تختلف تماما عن المثال الأول ولأنشاء رأس (header) مخصص علينا أولا بتحديد قاموس الرأس حتى يتسنى لنا تخزين مفاتيح وقيم الرأس التي نريد إستخدامها وفي هذه الحالة سنقوم بجعل برنامج بايثون الخاص بنا يبدو كأنه Googlebot ، بعد ذلك نقوم بإنشاء كائن Request ونمرره إلى URL و وقاموس header ، بعد ذلك نقوم بتمرير كائن Request إلى دالة urlopen وبالتالي ستقوم بإرجاع لنا ملف لقراءته وإستغلال ما يمكن إستغلاله .

إلى هنا نكون قد إمتلكنا بعض الأساسيات التي تسمح لنا ببرمجة تطبيقات تسمح لنا بالهجوم على مختلف تطبيقات الويب أو لتجريب قوة و كفاءة أمانها وهذا ما سنقوم به في المرة القادمة .

 


Viewing all articles
Browse latest Browse all 22462

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>