مكتبة cookiejar في بايثون
مكتبة ( cookiejar ) كوكي جار هي مكتبة وظيفتها عمل parse للكوكيز لدينا و ليكن لدينا نظام msf admin مثل ميتاسبلويتبل نعمل عليه إختبار اختراق.
يتم التعامل مع كل من البروتوكولات بروتوكول ملف تعريف الإرتباط العادي Netscape و البروتوكول المحدد بواسطة RFC 2965, و يتم إيقاف تشغيل معالجة RFC 2965 إفتراضياً.
يتم تحليل ملفات تعريف الإرتباط RFC 2109 كملفات تعريف إرتباط Netscape و يتم التعامل معها لآحقاً إما كملفات تعريف إرتباط Netscape أو RFC 2965 وفقاً للسياسة السارية.
نلاحظ بأن الغالبية العُظمى من ملفات تعريف الإرتباط على الإنترنت هي ملفات تعريف إرتباط Netscape و يحاول http.cookiejar إتباع بروتوكول ملفات تعريف الإرتباط الفعلي Netscape الذي يختلف إختلافاً جوهرياً عن ذلك المنصوص عليه في مواصفات Netscape الأصلية بما في ذلك الإحاطة بسمات ملف تعريف الإرتباط max-age و المنفذ المقدمة مع RFC 2965.
>>> import http.cookiejar
>>> cj = http.cookiejar.CookieJar()
>>> import urllib.request
>>> op = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
>>> r = op.open("http://www.google.com")
>>> cj
<CookieJar[Cookie(version=0, name='1P_JAR', value='2020-06-12-14', port=None, port_specified=False, domain='.google.com', domain_specified=True, domain_initial_dot=True, path='/', path_specified=True, secure=True, expires=1594565680, discard=False, comment=None, comment_url=None, rest={}, rfc2109=False), Cookie(version=0, name='NID', value='204=vTm1O0nY71qx_AQW3jYopsdOUVlofny-OswXrQmq_qZQQPA9mkEzD1UfZRFt9czui2CKjW54xdN86csWD6wPvIMAAAwSaFBk7SWQ2uN9DF37CuPfzUHNC0eww1FB1DiM56euE_qM8CnuCnbslGqYzrg9011xVkUz-nHdstFIFgw', port=None, port_specified=False, domain='.google.com', domain_specified=True, domain_initial_dot=True, path='/', path_specified=True, secure=False, expires=1607784880, discard=False, comment=None, comment_url=None, rest={'HttpOnly': None}, rfc2109=False)]>
قمنا بإستدعاء import للمكتبة cookiejar و بما أننا نعمل على http سوف نلحقها به ليصبح الإستدعاء import http.cookiejar و بعده نحدد cookiejar لدينا و معظم المبرمجين يرمزو له بالرمز cj يعني cookiejar وهكذا إستدعينا هذه المكتبة. تكون وظيفة مكتبة cookiejar هي تخزين للكوكيز و بقي لدينا عمل opener, سوف نقوم بإستدعاء مكتبة urllib.request و بعده نبدأ بإستدعاء opener.
ليكون op=urllib.request.build_opener و build_opener تعني عمل opener و قلنا له أن opener يعمل على الـ http processor و سوف يأخذ مننا الـ cj ليخزن بها الكوكيز. عندما نقوم بفتح أي موقع سوف يتسجل الـ cj ويتخزن بها الكوكيز لدينا مثلاً
r = op.open("https://www.google.com")
وعندما كتبنا cj اعطانا قيمتها أي كوكيز الجوجل.
إنشاء سكربت دخول مباشر للوحه الـ DVWA في الميتاسبلويتبل
import urllib.request
import urllib.parse
import http.cookiejar
cj = http.cookiejar.CookieJar()
op = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj)
data = {"username":"admin",
"password":"password",
"Login":"Login"}
url = "http://192.168.224.131/dvwa/login.php"
encode = urllib.parse.urlencode(data).encode('ascii')
print(data)
res = op.open(url, encode)
print(res.read())
print(cj)
تشغيل سكربت الدخول للوحة DVWA
أولاً نذهب للمتصفح و نبحث في الإضافات عن إضافة اسمها Cookie Manager و نثبتها لدينا بالنقر على إضافة.
نقوم بتثبيتها و فتحها و تعبئة البيانات بها
ثم بعد ذلك نعطيه حفظ save و نغلق الصفحة و نقوم بالذهاب للمتصفح و فتح الموقع dvwa وسوف نلاحظ بأنه سوف بدخل مباشر لداخل لوحة الادمن و يتخطى بيانات الدخول لأننا حقننا الكوكيز ضمن السكربت و مبروك عليكم تخطي لوحة الأدمن.
سوف اضع لكم ملف pdf مؤلف من عدة صفحات يوضح لنا التعامل مع هذه المكتبة بكل إحترافية مع بعض الأمثلة لطرق الإستخدام لتحميل الملف اضغطوا على زر التحميل الآتي