ຊ່ອງວ່າງລະດັບຮຸນແຮງ Unrestricted File Upload, ໄດ້ໝາຍເລກ CVE-2020-35489, ໄດ້ພົບເຫັນໃນ plugin ຍອດນິຍົມໂຕໜຶ່ງຂອງ WordPress ທີ່ມີຊື່ວ່າ Contact Form 7 ປັດຈຸບັນມີຫຼາຍກວ່າ 5 ລ້ານເວັບໄຊທີ່ກຳລັງນຳໃຊ້ plugin ນີ້ເຮັດໃຫ້ເວັບໄຊເຫຼົ່ານັ້ນຕົກຢູ່ໃນອັນຕະລາຍເຊັ່ນ, ການໂຈມຕີ phishing, ການຢຶດລະບົບເວັບໄຊ, ຂໍ້ມູນຮົ່ວໄຫຼ, ໆລໆ.

ໃນບົດຄວາມນີ້, ພວກເຮົາຈະມາວິເຄາະ ແລະອະທິບາຍຂັ້ນຕອນການ exploit ຊ່ອງວ່າງນີ້ (PoC) ໃຫ້ຜູ້ອ່ານໄດ້ເຂົ້າໃຈໄປນຳກັນ.

plugin Contact Form 7 ແມ່ນຫຍັງ?

Contact Form 7 can manage multiple contact forms, plus you can customize the form and the mail contents flexibly with simple markup.

ຄຳເວົ້າຈາກເອກະສານທາງການຂອງປັກອິນ

ຊ່ອງວ່າງຂອງປັກອິນນີ້ແມ່ນຫຍັງ ແລະມັນເຮັດວຽກແນວໃດ?

National Vulnerability Database (NVD) ໃຫ້ຄຳອະທິບາຍ CVE-2020-35489 ວ່າ

Contact From 7 ປັກອິນກ່ອນເວີຊັນ 5.3.2 ສຳລັບ WordPress ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ອັບໂຫລດໄຟລ໌ທີ່ອັນຕະລາຍ ແລະນຳພາສູ່ການຖືກ remote code execution ເພາະວ່າຊື່ໄຟລ໌ສາມາດມີ special characters ໄດ້

ຜູ້ຂຽນຈະມາອະທິບາຍ 4 ຂັ້ນຕອນໃນການ exploit ຊ່ອງວ່າງນີ້:

  1. plugin ໃຫ້ admin ຂອງລະບົບສ້າງ contact form ສຳລັບເວັບໄຊຂອງເຂົາເຈົ້າ ເພື່ອທີ່ຈະໃຫ້ຜູ້ເຂົ້າມາຢ້ຽມຢາມເວັບໄດ້ກອກຂໍ້ມູນຂອງໂຕເອງ ແລະຕິດຕໍ່ກັບ.
  2. ຖ້າວ່າມີຜູ້ບໍ່ຫວັງດີມານຳໃຊ້ ແລະອັບໂຫລດໄຟລ໌ ດ້ວຍ double-extensions ຫຼື ນາມສະກຸນໄຟລ໌ 2 ອັນຢູ່ໃນຊື່ໄຟລ໌, ທີ່ຖືກຂັ້ນດ້ວຍ ໂຕອັກສອນທີ່ບໍ່ສາມາດສະແດງອອກມາໜ້າຈໍ ຫຼື ໂຕອັກສອນພິເສດ, ຕົວຢ່າງມີໄຟລ໌ຊື່ວ່າ test.php .jpg ( \t ແມ່ນໂຕແຍກ [seperator] ລະຫວ່າງ 2 ນາມສະກຸນ)
  3. ຫຼັງຈາກນັ້ນໂຕ Contact Form 7 ບໍ່ໄດ້ລຶບ special characters ອອກ ແລະເມື່ອອັບໂຫລດສຳເລັດໂຕລະບົບກໍ່ອ່ານຊື່ໄຟລ໌ຮອດແຕ່ extension ທຳອິດ ແລະຖິ້ມ extension ທີ 2 ເນື່ອງຈາກໂຕ seperator ຂັ້ນກາງຢູ່. ສະນັ້ນທ້າຍທີ່ສຸດຊື່ໄຟລ໌ທີ່ໄດ້ແມ່ນ test.php (ເຫັນຈາກຮູບທາງລຸ່ມ).
  4. ໄຟລ໌ທີ່ອັບໂຫລດຂຶ້ນໄປສາມາດເຂົ້າໄດ້ ແລະ ສາມາດເຮັດ Remote Code Execution ໄດ້!

Contact Form 7’s source code ເທິງ Github

ເພາະສະນັ້ນ, ຈາກເຫດຜົນທາງເທິງນີ້ຈຶ່ງເຮັດໃຫ້ CVE-2020-35489 ອາດຈະສົ່ງຜົນກະທົບຕໍ່ທ່ານໄດ້ຖ້າຫາກວ່າຍັງບໍ່ໄດ້ອັບເດດ, ເຊິ່ງເຮົາຈະລົງເລິກເຖິງ Attack Scenario ໃນຫົວຂໍ້ລຸ່ມນີ້

Attack Scenario

ບ່ອນມ່ວນເຮົາເລີ່ມກັນບ່ອນນີ້, ເຮົາລອງເຂົ້າໄປໜ້າ contact form ທີ່ມີຊ່ອງອັບໂຫລດໂດຍມີຊື່ໄຟລ໌ທີ່ຈະອັບໂຫລດວ່າ exploit.php .jpg

ສັງເກດເຫັນວ່າໄຟລ໌ອັນຕະລາຍຂອງເຮົາອັບໂຫລດຂຶ້ນ server ໂດຍບໍ່ມີບັນຫາ

ຫຼັງຈາກກົດ “Submit” ແລ້ວ, ເຮົາຈະໄດ້ຮັບການຕອບກັບມາຈາກ Server ວ່າຂໍ້ມູນສົ່ງເຂົ້າລະບົບໂດຍສົມບູນ ແລະມີລິ້ງກົດໄປຫາ file ທີ່ເຮົາອັບໂຫລດຕິດມານຳໂດຍມີຊື່ວ່າ exploit.php. ໄຟລ໌ນີ້ສາມາດເຂົ້າເຖິງ ແລະ execute code ຕາມໃຈເຮົາໄດ້.

ໂດຍ default upload path ຂອງ WordPress ແມ່ນຢູ່ທີ່ wp-content/uploads ແຕ່ເຮົາສາມາດປ່ຽນແປງ path ນີ້ໄດ້ດ້ວຍການກຳນົດ WPCF7_UPLOADS_TMP_DIR ເຊັ່ນ

define( 'WPCF7_UPLOADS_TMP_DIR', '/your/file/path' );

ຜົນກະທົບ

ຈາກການໂຈມຕີຜ່ານຊ່ອງວ່າງນີ້, ຜູ້ໂຈມຕີສາມາດອັບໂຫລດໄຟລ໌ອັນຕະລາຍຂຶ້ນ server ເຮົາໄດ້ຢ່າງງ່າຍດາຍ, bypass ກົດການອັບໂຫລດທຸກຢ່າງໄປໄດ້, ໄຟລ໌ຍັງຖືກວາງໄວ້ໃນບ່ອນທີ່ສາມາດຊອກຫາໄດ້ງ່າຍອີກດ້ວຍ. ເຊິ່ງທັງໝົດທັງມວນຊ່ອງວ່າງນີ້ມີຜົນກະທົບດັ່ງນີ້:

  • Takeover ເວັບໄຊຂອງເຮົາໄປໄດ້ເລີຍ.
  • Malware injection ເຂົ້າໄປໃນລະບົບເພື່ອດັກເອົາເລກບັດ credit/debit, ການລັກຂໍ້ມູນຂອງຜູ້ໃຊ້, redirect ຜູ້ໃຊ້ໄປຍັງເວັບໄຊອັນຕະລາຍ
  • Website Defacement ສຳລັບການເຮັດ Phishing
  • ໄຟລ໌ອັບຂຶ້ນໄປເຕັມ server & database
  • ຖືກວາງ Backdoor ໄວ້ໃຊ້ເປັນຖານໂຈມຕີອີກຕໍ່ໜຶ່ງ.

ຂັ້ນຕອນປ້ອງກັນໂຕຈາກການໂຈມຕີນີ້

ບໍ່ຍາກເລີຍພຽງແຕ່ທ່ານອັບເດດ version Contact Form 7 ໃຫ້ເປັນເວີຊັນ 3.5.2 ຫຼືຫຼາຍກວ່າ.

ແຫຼ່ງທີ່ມາ
https://blog.wpsec.com/contact-form-7-vulnerability/