คิดไม่ถึง! เจาะระบบ BugForge ไขปริศนาสู่การเป็นผู้ควบคุมสูงสุด

คิดไม่ถึง! เจาะระบบ BugForge ไขปริศนาสู่การเป็นผู้ควบคุมสูงสุด

ในโลกไซเบอร์ ความปลอดภัยเป็นเรื่องที่ท้าทายเสมอ แต่ในความท้าทายนั้นก็มักจะมีช่องโหว่ซ่อนอยู่ การเจาะระบบ BugForge ถือเป็นการเดินทางที่น่าตื่นเต้น เพื่อค้นหาช่องโหว่ที่ซับซ้อนและนำไปสู่การควบคุมสูงสุดบนเซิร์ฟเวอร์

สำรวจเส้นทางสู่เป้าหมาย

การเริ่มต้นมักจะเริ่มจากการสอดแนม เพื่อทำความเข้าใจสภาพแวดล้อม การสแกนเครือข่ายเผยให้เห็นพอร์ตที่เปิดอยู่หลายพอร์ต โดยเฉพาะอย่างยิ่งพอร์ต 80 และ 8080 ที่บ่งชี้ถึงบริการเว็บที่กำลังทำงานอยู่ พอร์ต 80 แสดงหน้าเว็บ Apache มาตรฐาน ซึ่งไม่ได้มีข้อมูลที่น่าสนใจมากนัก แต่พอร์ต 8080 กลับพบกับแอปพลิเคชันที่ชื่อว่า BugForge ซึ่งเป็นเป้าหมายหลักในการเจาะระบบครั้งนี้

BugForge มีหน้าเข้าสู่ระบบและหน้าลงทะเบียนผู้ใช้ใหม่ พร้อมฟังก์ชันรีเซ็ตรหัสผ่าน ฟีเจอร์เหล่านี้มักเป็นจุดอ่อนแรก ๆ ที่ผู้บุกรุกจะพยายามค้นหา การทดสอบด้วยชื่อผู้ใช้และรหัสผ่านเริ่มต้นทั่วไปไม่ได้ผล จึงมุ่งเน้นไปที่การสำรวจฟังก์ชันการลงทะเบียนและการรีเซ็ตรหัสผ่านแทน

XSS กุญแจสู่ข้อมูลผู้ดูแลระบบ

การสำรวจ BugForge อย่างละเอียด ทำให้พบช่องโหว่ Cross-Site Scripting (XSS) ที่สามารถสะท้อนกลับ (Reflected XSS) ในฟังก์ชันการค้นหาบั๊ก เมื่อกรอกค่าที่ไม่ถูกต้อง ระบบจะแสดงข้อความผิดพลาดที่สามารถแทรกโค้ด JavaScript เข้าไปได้ นี่เป็นเพียงจุดเริ่มต้น

เพื่อก้าวไปอีกขั้น ได้ค้นพบช่องโหว่ Stored XSS โดยการส่งรายงานบั๊กที่มีโค้ด JavaScript ที่เป็นอันตรายในชื่อเรื่อง เมื่อผู้ดูแลระบบเข้ามาดูรายงานบั๊กนั้น โค้ดที่ฝังไว้ก็จะทำงาน ทำให้สามารถขโมย Session Cookie ของผู้ดูแลระบบได้ การได้มาซึ่งคุกกี้ของผู้ดูแลระบบนี้ เปรียบเสมือนการได้กุญแจสำคัญ สามารถใช้คุกกี้นั้นเพื่อ ปลอมตัวเป็นผู้ดูแลระบบ และเข้าถึงส่วนการบริหารจัดการได้โดยไม่ต้องรู้รหัสผ่าน

ควบคุมเซิร์ฟเวอร์ด้วย Web Shell

เมื่อเข้าถึงส่วนผู้ดูแลระบบได้ ก็พบฟังก์ชัน “Manage Users” และที่สำคัญคือ ฟังก์ชันอัปโหลดไฟล์ JAR นี่คือช่องทางทองคำ! ไฟล์ JAR สามารถบรรจุโค้ด Java และถูกปรับใช้เป็นแอปพลิเคชันบนเซิร์ฟเวอร์ Tomcat ได้ จึงสร้าง Web Shell ซึ่งเป็นโปรแกรมขนาดเล็กที่อยู่ในรูปของไฟล์ JAR มีความสามารถในการรับคำสั่งและรันคำสั่งบนเซิร์ฟเวอร์

การอัปโหลด Web Shell นี้ทำให้สามารถรันคำสั่งจากระยะไกลได้ และเป็นจุดที่ทำให้ได้ Remote Code Execution (RCE) ซึ่งเป็นสิทธิ์ในการรันโค้ดใดๆ บนเซิร์ฟเวอร์ในฐานะผู้ใช้ tomcat

ไต่ระดับสู่สิทธิ์สูงสุด (Root)

แม้จะได้สิทธิ์ในการรันโค้ดแล้ว แต่ก็ยังอยู่ในฐานะผู้ใช้ tomcat ที่มีข้อจำกัด เป้าหมายคือการได้ สิทธิ์ Root ซึ่งเป็นสิทธิ์สูงสุดบนระบบ ได้ตรวจสอบคำสั่งที่สามารถรันด้วยสิทธิ์ sudo และพบว่าผู้ใช้ tomcat สามารถรัน /usr/bin/python3 /opt/backup.py ได้โดยไม่ต้องใช้รหัสผ่าน

เมื่อตรวจสอบสคริปต์ backup.py พบว่ามันจะเรียกใช้สคริปต์ชื่อ log_viewer.py โดยไม่มีการระบุพาธแบบเต็ม นี่คือช่องโหว่ PATH Hijacking ที่สามารถนำมาใช้ประโยชน์ได้ โดยการสร้างไฟล์ log_viewer.py ที่มีโค้ดที่เป็นอันตราย (เช่น การเปลี่ยนรหัสผ่าน root หรือเรียกใช้ Reverse Shell) ไว้ในไดเรกทอรีที่อยู่ในตัวแปร PATH ก่อนไดเรกทอรีที่มี log_viewer.py ของจริง

เมื่อสั่งให้ backup.py ทำงานด้วย sudo ระบบก็จะเรียกใช้ log_viewer.py ที่เราสร้างขึ้นมาแทน ทำให้ได้สิทธิ์สูงสุด (Root) บนเซิร์ฟเวอร์อย่างสมบูรณ์

การเจาะระบบ BugForge นี้แสดงให้เห็นถึงความสำคัญของการพิจารณาช่องโหว่ในทุกระดับ ตั้งแต่การค้นหา XSS ในแอปพลิเคชันเว็บ ไปจนถึงการยกระดับสิทธิ์บนระบบปฏิบัติการ ช่องโหว่หนึ่งสามารถนำไปสู่อีกช่องโหว่หนึ่ง และท้ายที่สุดก็นำไปสู่การควบคุมระบบได้อย่างเบ็ดเสร็จ