Tags:
Topics: 
Node Thumbnail

แฮ็กเกอร์ king cope ซึ่งรู้จักกันดีว่าเป็นนักปล่อยช่องโหว่ประเภท 0-day สู่สาธารณะตัวยงได้ออกมาเปิดเผยช่องโหว่ระดับร้ายแรงของ PHP 5.x ที่รันบน Apache ซึ่งอาจส่งผลให้แฮ็กเกอร์ที่ใช้ช่องโหว่นี้สามารถรันคำสั่งอันตรายไปยังเป้าหมายจากระยะไกลได้

จากซอร์สโค้ดที่ใช้ในการโจมตีช่องโหว่นี้ได้อธิบายว่า ช่องโหว่นี้เกิดขึ้นจาก php5-cgi ซึ่งเป็นแพ็คเกตที่ถูกติดตั้งบน Debain/Ubuntu มาแต่แรก โดยปกตินั้นหากมีการเข้าถึงไบนารีของ php-cgi โดยตรง ฟังก์ชัน security check จะทำการบล็อคและไม่ทำการเอ็กซีคิวต์ไบนารีนั้น แต่หากมีการแก้ไขค่าของ cgi.force_redirect และ cgi.redirect_status_env ในไฟล์ php.ini แล้วก็จะสามารถเอ็กซีคิวต์ไบนารีนั้นได้

สำหรับเวอร์ชันของ PHP ที่ได้รับผลกระทบจากการทดสอบนี้จะเป็นเวอร์ชันที่ต่ำกว่า 5.3.12 และต่ำกว่า 5.4.2

ที่มา - Full Disclosure

Get latest news from Blognone

Comments

By: icez
ContributoriPhoneAndroidRed Hat
on 31 October 2013 - 17:42 #649513

This is a code execution bug in the combination of Apache and PHP.
On Debian and Ubuntu the vulnerability is present in the default install
of the php5-cgi package.

เอ่อ รั่วแค่ default installation ของ package php5-cgi บน debian/ubuntu นะครับ

By: pe3z
Writer
on 31 October 2013 - 17:44 #649514 Reply to:649513

ตกไปหน่อย แก้ไขแล้วครับ ขอบคุณครับ

By: anu
Contributor
on 31 October 2013 - 18:04 #649521

สำหรับท่านเจ้าของ Host ตรวจสอบเบื้องต้นได้โดยการเรียก

http://YOURDOMAIN/cgi-bin/php
http://YOURDOMAIN/cgi-bin/php5
http://YOURDOMAIN/cgi-bin/php4
http://YOURDOMAIN/cgi-bin/php-cgi
http://YOURDOMAIN/cgi-bin/php.cgi

ถ้าเรียกได้ไม่ 404 แปลว่ามีลุ้นครับ แต่เอกสารส่วนใหญ่จะแนะนำลงเป็น mod_php หมดแล้ว (หลังๆ เป็น fpm) ผลกระทบน่าจะไม่มากเท่าไหร่

By: nat3738
ContributorAndroidRed HatUbuntu
on 31 October 2013 - 18:36 #649542

แต่หากมีการแก้ไขค่าของ cgi.force_redirect และ cgi.redirect_status_env ในไฟล์ php.ini แล้วก็จะสามารถเอ็กซีคิวต์ไบนารีนั้นได้

จากข่าว ผมเข้าใจว่า ถ้าหากไม่ตั้งสองค่านี้เองก็ไม่เป็นไร เพราะปกติมันปิดอยู่แล้ว แต่เท่าที่ดูจากซอสโค้ดมันยิงบักไปให้รันได้แม้การตั้งค่าสองอันนี้เปิดอยู่ครับผม

โดยช่องโหว่นี้เกิดจากการเช็คความปลอดภัยสองอย่างนี้เกิดขึ้น "หลัง" จากมีการเรียก getopt เพื่อประมวลผลพารามิเตอร์ ทำใหเแฮกเกอร์สามารถยิงคำสั่งปลอมเข้าไปใน getopt เพื่อใช้สวิตช์ -d ของ php เพื่อปิดการทำงานสอง โดยยิงเข้าไปทาง query string ธรรมดาเลย (น่าจะเป็นบักเดียวกับ ?-s ของก่อนหน้านี้)

By: windows98SE
iPhone
on 1 November 2013 - 16:55 #650071
windows98SE's picture

ไม่ต้องตื่นเต้นครับ ... นี้คือบัคเดิมตั้งแต่ปี 2012

บัคนี้ เป็นบัคที่มี ใน metasploit ตั้งนานแระ
[ไปค้น CVE-2012-1823 ดู]

(บัคนี้จริงๆ แค่เอา ?-s ไปต่อท้ายไฟล์ .php ก็จะ view source ได้ - -''
ถ้าเอา ?-d ไปต่อท้าย ก็จะแก้ไขค่าใน php.ini ได้
ซึ่งเช่นแก้ allow_url_include ให้ เรียกไฟล์จาก url ได้ ก็จะทำ RFI ได้ .. หรือแก้มุขอื่นอีกก็แฮกได้อีก [ตรูกั๊ก คิคิ])

======
= เพิ่มเติม
ถ้าจำไม่ผิดบัคนี้หลุดออกมาครั้งแรก
เพราะมีคนใช้ผ่าน CTF ของใครซักที่ (ที่จ่อยเล่นมั้ง)
แล้วก็พบว่า มันมีฝังมากับ php มานานแล้ว

ซึ่งตัวของ king cope นี่เพิ่มวิธี bypass
โดยใช้ cgi.redirect_status_env เพื่อ ให้ทำงานได้ใน php หลายๆ version

======
= คำแนะนำ
ใครอยากรู้ว่า "ทำงานยังไง" อ่านเรื่อง php-cgi
แต่ถ้าจะแค่ อวดว่าก็แฮกได้เว้ย ... ก็โหลดไป compile โลด

======
= log ส่วนหนึ่งจากใน irc

[16:56:36] ตอบเกี่ยวกับ php exploit ในนี้ จะเรียกคนเปล่าหว่า
[16:57:38] https://github.com/php/php-src/blob/47cff264dfc9b117c7fc1904da852c92f1db3260/sapi/cgi/cgi_main.c#L1890
[16:57:54] อ่าน c รู้เรื่องก็จะเข้าใจ

======
= lab .iso เอาไว้ลอง exploit
https://pentesterlab.com/exercises/cve-2012-1823/

ตอบซ้ำอีกที จาก กลุ่ม FB : https://www.facebook.com/groups/2600Thailand/permalink/228286533998049/?comment_id=228288303997872&offset=0&total_comments=5

By: Similanblu
AndroidWindows
on 2 November 2013 - 09:04 #650242

Python for the win. ヽ༼ ಠ益ಠ ༽ノ