السلام عليكم
لي تعليقات بسيطة على بعض ردود الأخوة
من ناحية كود الأخ MaaSTaaR ، فأنا رأيي من رأي الصامت 
باعتقادي هذه ليست ثغرة ولاتتعدى كونها خطأ منطقي ، فالثغرة هي خطأ غير واضح في الشفرة رغم صحتها برمجيا و التي لا تؤدي إلى مشكلة فنية في البرنامج ، فخطأك هذا الذي كتبته ، سيكتشفه المبرمج عندما يجرب أن يدخل إلى لوحة التحكم و يتم تسجيل الجلسة و لا يرى أي خاصية من خصائص لوحة التحكم و لا أتوقع أن المبرمج سينشر البرنامج بوجود هذا الخطأ 
ملاحظة بسيطة على أخي عبد الرحمن ، $_POST و $_GET ليسا دالتين و إنما مصفوفتين متغيرتين
أعجبني الموضوع و أقدم لكم مجموعة من الثغرات و التي أتمنى أن تحلوها 
هذه الثغرة خطأ شائع ولكنه في بعض الأحيان لايصبح ثغرة
كود PHP:
$query = "SELECT * FROM user WHERE username='" . $username . "' AND password='" . $password . "'";
$row = mysql_query($query);
$record = mysql_fetch_array($row)
if ($record[username])
echo "تم السماح لك بالدخول";
else
die "دخول خاطئ";
// هنا يتم وضع خصائص لوحة التحكم
الثغرة التالية لاتتعلق بالشفرة ولكن الشفرة توضح موضع الخطأ
كود PHP:
include("configs.class");
if ($_POST[username] == $Configs[username])
echo "عضو صحيح";
else
echo "عضو خاطئ";
هذه الثغرة موجود للأسف في العديد من البرامج التي لا تلجأ إلى المنطق و لا الحذر
كود PHP:
$UsersList = array();
// المستخدمون المصرح لهم بالدخول
$UsersList[] = array("","زائر") ; // إذا كان رقم المعرف 0 فهو يعتبر زائر
$UsersList[] = array("Password1","العضو الأول");
$UsersList[] = array("Password2","العضو الثاني");
//------------------------------------------
// التحقق من المستخدم
//التحقق من صحة معرف المستخدم و ذلك بعدم كونه أكبر من 2 أو أصغر من 0
if ($_GET["UserID"] < 0 || $_GET["UserID"] > 2 || !isset($_GET["UserID"])) {
die("المعرف خاطئ");
}
// تم التحقق من صحة المعرف، يتم التحقق من كلمة المرور في حالة لم يكن العضو زائر
if ($_GET["UserID"] != 0 && $_GET[Password] != $UsersList[$UserID][0]) {
die("كلمة المرور خاطئة");
}
//-------------------------------
// هنا خصائص لوحة التحكم
// تم التحقق من كلمة المرور ، يتم إخبار المستخدم أي نوع
iif ($_GET["UserID"]) {
echo "مرحبا بك يا {$UsersList[$UserID][1]}";
} else {
echo "مرحبا بالزائر";
}
ثغرة أخيرة تعتمد على معرفة بالبيرل وبالأخص الRegular Expressions
كود PHP:
$SomeText = "ذهب محمد فرأى صديقه محمد";
if ($_GET[ReplaceTo]);
$SomeText = preg_replace("/محمد/e","$_GET[ReplaceTo]",$SomeText);
echo "النص بعد الإستبدال : <BR> $SomeText";