
ahmdsat
عضو شرف
المساهمات :
42
النقاط :
82
التقيم :
1
الاوسمة :

2018-12-31, 1:26 pm
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاتة
صباح/مساء الخير على الجميع
[size=33]في هذا الدرس سنتحدث عن:-
[/size]
[size=33]ماهي ثغرة Command Injection[/size]
[/size]
[size=33]
أكتشاف واستغلال الثغرة:[/size]
من خلال الكود التالي نلاحظ بأن المبرمج قام بعمل تطبيق يطلب من المستخدم ادخال اسم ملف ليتم قراءته واستخدام دالة system لتنفيذ الامر وعرض المخرجات
[/size]
في هذه الحالة سيقوم البرنامج باخذ المدخلات من المستخدم وتنفيذها ومن ثم عرض المخرجات
مثال:
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
ولكن المبرمج لم يقوم بتصفية المدخلات ووثق بالمستخدم ثقة كبيرة وهنا سياتي استغلال المهاجم لهذا الضعف من خلال حقن امر بجانب الامر الذي وضعة المبرمج.
[/size]
مثال:
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
كما نلاحظ تم استغلال الثغرة من خلال حقن امر بجانب المدخلات المطلوبة من المستخدم الامر لا يتوقف عند عرض المسار الحالي او معرفة مكونات المجلد الحالي فقط, بل يمكن المهاجم قراءه ملفات حساسة على الخادم أو استدعاء ملفات خارجية ووضعها على الخادم وبالطبع هذا الامر يعتمد على (الصلاحيات).
[size=33]ترقيع الثغرة:[/size]
لترقيع الثغرة سنقوم بـ استخدام دالة escapeshellcmd ومهمة الدالة هي تصفيه المدخلات والتاكد من صحتها قبل تمريرها وفي حالة قام المستخدم ادخال أي من الرموز التالية
[/size]
سيتم اضافة باك سلاش قبل المدخل ليتم منعه من التنفيذ
الان سنقوم باضافه الدالة والمحاولة مرة اخرى لأستغلال الثغرة
[/size]
مثال بعد ترقيع الثغرة:
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
كما نلاحظ لم يتمكن المهاجم من تنفيذ الاوامر المحقونه.
النهاية: اتمنى الشرح كان واضح للجميع وكود أمن للجميع 3> إن أحسنت فمن الله، وإن أسأت أو أخطأت فمن نفسي والشيطان[/size]
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاتة
صباح/مساء الخير على الجميع
[size=33]في هذا الدرس سنتحدث عن:-
[/size]
[size]
- ماهي ثغرة Command Injection
- أكتشاف واستغلال الثغرة
- ترقيع الثغرة
[size=33]ماهي ثغرة Command Injection[/size]
[/size]
[size]
هو ضعف أمني يسمح للمهاجم بأن يقوم بحقن اوامر يتم تنفيذها على مستوى النظام من خلال (forms, cookies, HTTP headers etc.) ويعود ذلك الى عدم تصفية المدخلات والتاكد من صحتها وسلامتها.
[size=33]
أكتشاف واستغلال الثغرة:[/size]
من خلال الكود التالي نلاحظ بأن المبرمج قام بعمل تطبيق يطلب من المستخدم ادخال اسم ملف ليتم قراءته واستخدام دالة system لتنفيذ الامر وعرض المخرجات
[/size]
- الكود:
<html>
<head><title>0xAbdullah LAB | Command iNj</title></head>
<body>
<p><b>Enter custom file name to read it</b></p>
<p><i>Files: test.txt, myname.txt</i></p>
<form action="" method="post">
<input type="text" name="filename" value="" />
<input type="submit" name="submit" value="Submit" />
</form>
<?php
if (isset($_POST['submit'])) {
$file = $_POST['filename'];
system("cat $file");
}
?>
</body>
<html>
في هذه الحالة سيقوم البرنامج باخذ المدخلات من المستخدم وتنفيذها ومن ثم عرض المخرجات
مثال:
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
ولكن المبرمج لم يقوم بتصفية المدخلات ووثق بالمستخدم ثقة كبيرة وهنا سياتي استغلال المهاجم لهذا الضعف من خلال حقن امر بجانب الامر الذي وضعة المبرمج.
[/size]
[size]امر pwd هو لعرض مسارك الحالي في لينكس وامر ls هو لعرض محتويات المجلد
مثال:
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
كما نلاحظ تم استغلال الثغرة من خلال حقن امر بجانب المدخلات المطلوبة من المستخدم الامر لا يتوقف عند عرض المسار الحالي او معرفة مكونات المجلد الحالي فقط, بل يمكن المهاجم قراءه ملفات حساسة على الخادم أو استدعاء ملفات خارجية ووضعها على الخادم وبالطبع هذا الامر يعتمد على (الصلاحيات).
[size=33]ترقيع الثغرة:[/size]
لترقيع الثغرة سنقوم بـ استخدام دالة escapeshellcmd ومهمة الدالة هي تصفيه المدخلات والتاكد من صحتها قبل تمريرها وفي حالة قام المستخدم ادخال أي من الرموز التالية
[/size]
[size]&#;`|*?~<>^()[]{}$\, \x0A and \xFF. ' and "
سيتم اضافة باك سلاش قبل المدخل ليتم منعه من التنفيذ
الان سنقوم باضافه الدالة والمحاولة مرة اخرى لأستغلال الثغرة
[/size]
- الكود:
<html>
<head><title>0xAbdullah LAB | Command iNj</title></head>
<body>
<p><b>Enter custom file name to read it</b></p>
<p><i>Files: test.txt, myname.txt</i></p>
<form action="" method="post">
<input type="text" name="filename" value="" />
<input type="submit" name="submit" value="Submit" />
</form>
<?php
if (isset($_POST['submit'])) {
$file = $_POST['filename'];
$file = escapeshellcmd($file);
system("cat $file");
}
?>
</body>
<html>
مثال بعد ترقيع الثغرة:
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
كما نلاحظ لم يتمكن المهاجم من تنفيذ الاوامر المحقونه.
النهاية: اتمنى الشرح كان واضح للجميع وكود أمن للجميع 3> إن أحسنت فمن الله، وإن أسأت أو أخطأت فمن نفسي والشيطان[/size]