SOUKPHATHAI


SOUKPHATHAI
 
บ้านວິເຄາະຊ່ອງໂຫວ່ຂອງ pidgin ແບບເລິກ.... Fo10ค้นหาสมัครสมาชิก(Register)เข้าสู่ระบบ(Log in)
Welcome to our forums!->BE ACTIVE AND RESPECT OTHERS!

Share
 

 ວິເຄາະຊ່ອງໂຫວ່ຂອງ pidgin ແບບເລິກ....

Go down 
ผู้ตั้งข้อความ
SOUKPHATHAI
Admin
SOUKPHATHAI

Posts : 160
ເງີນ : 12323
ຄວາມດີ : 0
Join date : 22/03/2010
Age : 29

Character sheet
RAY:

ວິເຄາະຊ່ອງໂຫວ່ຂອງ pidgin ແບບເລິກ.... Empty
ตั้งหัวข้อเรื่อง: ວິເຄາະຊ່ອງໂຫວ່ຂອງ pidgin ແບບເລິກ....   ວິເຄາະຊ່ອງໂຫວ່ຂອງ pidgin ແບບເລິກ.... EmptyMon Mar 29, 2010 2:28 pm

ທຳອິດວ່າຈະເອົາເຂົ້າຫ້ອງ VIP, ແຕ່ຢາກໃຫ້ຫຼາຍໆຄົນໄດ້ເຫັນວ່າຂອງແທ້ມັນເປັນແນວໃດ... ແຮແຮ... ກະເລີຍມາປະໄວ້ນີ້
ທີ່ສຳຄັນ, ບົດຄວາມນີ້ຂຽນຂຶ້ນມາດ້ວຍຄວາມຍາກລຳບາກ.. ສະນັ້ນໃຜກໍ່ຕາມທີ່ຈະເອົາໄປອ້າງອີງຕໍ່ ກະລຸນາມີຈັນຍາບັນໃນການໃຫ້ Credit ດ້ວຍ....

ເປັນຊ່ອງໂຫວ່ຂອງ pidgin version <= 2.5.8 ທີ່ຖືກປະກາດໂດຍ Pierre Nogues http://www.milw0rm.com/exploits/9615 ເມື່ອວັນທີ 9/9/2009 ທີ່ຜ່ານມາ (ເຖິງຢ່າງໃດກໍ່ຕາມ patch ໄດ້ອອກແລ້ວ)

ຊ່ອງໂຫວ່ດັ່ງກ່າວແມ່ນເກີດຂຶ້ນທີ່ function msn_slplink_process_msg() ຂອງ library Libpurple <= 2.5.8
ພວກ IM ອື່ນໆທີ່ໃຊ້ library ໂຕນີ້ຄາດວ່າຈະບໍ່ລອດໄປຕາມໆກັນ...
ເຊັ່ນວ່າ:
* Apollo IM - IM application for the iPhone and iPod Touch.
* EQO - an IM program for mobile phones.
* Finch - a text-based IM program that works well in Linux and other Unixes.
* Instantbird - a graphical IM program based on Mozilla's XUL framework.
* Meebo - a web-based IM program.
* Telepathy-Haze - a connection manager for the Telepathy IM framework.

ໂດຍການຍິງ packet ຈຳນວນໜຶ່ງເຂົ້າໄປ, ພວກເຮົາກໍ່ຈະສາມາດຂຽນຄຳສັ່ງລົງໄປໃນ memory ຂອງເຫຍື່ອໄດ້ (ເຮັດດີໆນິ ສາມາດຍຶດເຄື່ອງໄດ້ເລີຍ)....

ມາເບິ່ງວິທີການເຈາະວ່າມັນເຈາະເຂົ້າໄປໄດ້ແນວໃດບັດນິ....
ພວກເຮົາຈະທຳການຍິງ 2 MSNSLP messages (http://msnpiki.msnfanatic.com/index.php/MSNC:MSNSLP) ແບບຕໍ່ເນື່ອງກັນເຂົ້າໄປທີ່ເຄື່ອງເຫຍື່ອ. ໂຕທຳອິດແມ່ນຖືກໃຊ້ເພື່ອເກັບ slpmsg ໄປກັບ session id ຂອງເຮົາ, ແລະ ໂຕທີ 2 ກໍ່ຈະທຳການໂຈມຕີຊ່ອງໂຫວ່...

ເປົ້າໝາຍຂອງພວກເຮົາແມ່ນເພື່ອໄປໃຫ້ເຖິງຄຳສັ່ງ memcpy() ໃນ Function msn_slplink_process_msg(). ດັ່ງນັ້ນພວກເຮົາຕ້ອງສ້າງ MSNSLP message ທີ່ມີຄ່າ Offset ຕ່າງຈາກ 0 (ເນື່ອງຈາກວ່າວ່າຄ່ານີ້ຈະເຮັດໃຫ້ຄຳສັ່ງຂອງເຮົາກ້າວໄປສູ່ ຊ່ອງໂຫວ່ memcpy() ໄດ້.. ຕາມ Code ທາງລຸ່ມເລີຍ...)
if (offset == 0)
{
.. construct a new slpmsg ..
}
else
{
slpmsg = msn_slplink_message_find(slplink, msg->msnslp_header.session_id, msg->msnslp_header.id);
}

if (slpmsg == NULL)
{
/* Probably the transfer was canceled */
purple_debug_error("msn", "Couldn't find slpmsg\n");
return;
}



ດັ່ງທີ່ເຮົາຈະເຫັນ, ຕາມ code ຂ້າງເທິງ.. ຖ້າເຮົາ set Offset ຕ່າງຈາກ 0 ຈະເຮັດໃຫ້ slpmsg ບໍ່ມີການສ້າງ Object ຂຶ້ນມາ ເຮັດໃຫ້ມັນມີຄ່າເປັນ NULL, ເຊິ່ງຈະເກີດ error ຂຶ້ນໃນການກວດສອບໃນແຖວຖັດລົງມາ...

ເຊິ່ງໂຕນີ້ເອງ ເປັນເຫດຜົນໃຫ້ເຮົາຕ້ອງສົ່ງ 2 message ໃນການໂຈມຕີ. ພວກເຮົາຕ້ອງສົ່ງ MSNSLP message ທຳອິດ ໄປດ້ວຍຄ່າ offset ເປັນ 0 ເພື່ອທຳການສ້າງ Object slpmsg ຂຶ້ນມາກ່ອນ, ເຊິ່ງ Libpurple ຈະຈັດເກັບມັນໄວ້. MSNSLP message ທີ 2 ຈະສົ່ງໄປດ້ວຍ Offset ຄ່າອື່ນແຕກຕ່າງຈາກ 0, ເຊິ່ງເນື່ອງຈາກວ່າ Libpurple ມັນໄດ້ຈັດເກັບ MSNSLP message ທຳອິດຂອງເຮົາໄວ້ແລ້ວ, ເມື່ອເອີ້ນ msn_slplink_message_find() ມັນກໍ່ຈະສົ່ງຄ່າກັບມາໃຫ້ object ທີ່ເຮົາຫາກໍ່ສ້າງໃນ message ທຳອິດ, ແທນທີ່ຈະ return NULL ກັບມາ.

ດັ່ງນັ້ນ, ເຮົາກໍ່ຈະມາຮອດ
if (slpmsg->fp)
{
/* fseek(slpmsg->fp, offset, SEEK_SET); */
len = fwrite(data, 1, len, slpmsg->fp);
}
else if (slpmsg->size)
{
if (G_MAXSIZE - len < offset || (offset='' + len='') > slpmsg->size)
{
purple_debug_error("msn",
"Oversized slpmsg - msgsize=%lld offset=%" G_GSIZE_FORMAT " len=%" G_GSIZE_FORMAT "\n",
slpmsg->size, offset, len);
g_return_if_reached();
}
else
memcpy(slpmsg->buffer + offset, data, len);
}




ຕົວຢ່າງວ່າ:
ຖ້າເຮົາສ້າງ MSNSLP message ທຳອິດດ້ວຍຂະໜາດ 0x01ffffff, ແລະ ໂຕທີ 2 ມີຄ່າ offset ນ້ອຍກວ່າ 0x01ffffff - len, ທຸກສິ່ງທຸກຢ່າງກໍ່ຈະເຂົ້າທາງເຮົາ....

ສຸດທ້າຍ, ເມື່ອເຮົາມາຮອດ memcpy() ດ້ວຍຄ່າໃດກໍ່ຕາມທີ່ນ້ອຍກວ່າ 0x01ffffff - len ແລະ buffer ຊີ້ໄປທີ່ 0. ທີ່ນີ້ເອງ ທີ່ຈະເຮັດໃຫ້ເຮົາຂຽນຂໍ້ມູນທັບລົງໄປໃນຕຳແໜ່ງທີ່ນ້ອຍກວ່າ 0x01ffffff - len, ເຊິ່ງຈະເຮັດໃຫ້ເຮົາສາມາດຂຽນຄຳສັ່ງເພື່ອໂຈມຕີ ຫຼື ຍຶດເຄື່ອງຂອງເຫຍື່ອໄດ້ (Window, Linux ຕາຍລຽບ)....

Demo PoC (ເຮັດຫຼິ້ນໆ.... ທ່ານທິບ ກະໄດ້ຖືກທົດສອບມາແລ້ວ) ທຳອິດວ່າຈະເຮັດເປັນ VDO, ແຕ່ຂີ້ຄ້ານ UP.... ເອົາເປັນຮູບເອົາ...

ທຳອິດມັນກໍ່ຈະທຳການ Login ໂດຍ mail ເຮົາ ທີ່ຈະໃຊ້ໃນການໂຈມຕີ


ວິເຄາະຊ່ອງໂຫວ່ຂອງ pidgin ແບບເລິກ.... Hz6s1bfegekhczetopz



ຕໍ່ມາກໍ່ເລີ່ມສົ່ງ Packet ທຳອິດໄປ



ວິເຄາະຊ່ອງໂຫວ່ຂອງ pidgin ແບບເລິກ.... Loy62l052ewbc9kp3fs


ຕໍ່ມາກໍ່ສົ່ງ Packet ໂຈມຕີໄປ, ເຮັດໃຫ້ Pidgin ດັບລົງ, ແລ້ວກໍ່ທຳການ Execute Calculator ຂຶ້ນມາ...



ວິເຄາະຊ່ອງໂຫວ່ຂອງ pidgin ແບບເລິກ.... 654ys028k5w0irvdy3f


ຈົບບໍລິບູນ...
ขึ้นไปข้างบน Go down
http://soukphathai.forumlo.com
 
ວິເຄາະຊ່ອງໂຫວ່ຂອງ pidgin ແບບເລິກ....
ขึ้นไปข้างบน 
หน้า 1 จาก 1

Permissions in this forum:คุณไม่สามารถพิมพ์ตอบ
SOUKPHATHAI :: DEVELOPER ZONE :: Basic Hack-
ไปที่: