ยุทธวิธีค้นหาช่องโหว่: เจาะลึกจุดอ่อนที่ซ่อนอยู่ในระบบ
เปิดประตูสู่โลกของการค้นหาช่องโหว่
ในโลกดิจิทัลที่เต็มไปด้วยระบบและแอปพลิเคชันมากมาย การค้นหาจุดอ่อนหรือช่องโหว่ที่ซ่อนอยู่เปรียบเสมือนการไขปริศนาที่น่าตื่นเต้น
เป็นกุญแจสำคัญที่ช่วยให้เข้าใจการทำงานของระบบอย่างลึกซึ้ง
และเป็นทักษะที่จำเป็นสำหรับทั้งผู้ที่ต้องการปกป้องระบบและผู้ที่สนใจในการทดสอบเจาะระบบอย่างมีจริยธรรม
บทความนี้จะพาสำรวจช่องโหว่ยอดนิยมและเทคนิคการเจาะระบบที่พบได้บ่อย ตั้งแต่การเข้าถึงข้อมูลที่ไม่ได้รับอนุญาต ไปจนถึงการยกระดับสิทธิ์ในระบบปฏิบัติการ
การตามล่าหาข้อมูลด้วย IDOR: ช่องโหว่ที่มองข้ามง่าย
หลายครั้งที่ระบบต่างๆ ใช้ตัวระบุที่คาดเดาได้ง่าย เช่น ตัวเลขเรียงกัน เพื่ออ้างอิงถึงข้อมูลหรือวัตถุต่างๆ
ช่องโหว่ที่เรียกว่า IDOR หรือ Insecure Direct Object Reference เกิดขึ้นเมื่อระบบไม่ตรวจสอบสิทธิ์อย่างเพียงพอตอนที่ผู้ใช้ร้องขอข้อมูลเหล่านั้น
หมายความว่า
ถ้าผู้ใช้คนหนึ่งเปลี่ยนตัวเลข ID จาก 1 เป็น 2
ระบบอาจจะแสดงข้อมูลของผู้ใช้ ID ที่ 2 ออกมาทันที โดยไม่ถามถึงสิทธิ์ใดๆ เลย
นี่คือช่องโหว่ที่อันตราย เพราะมันเปิดโอกาสให้เข้าถึงข้อมูลส่วนตัว
หรือแม้กระทั่งไฟล์สำคัญที่ไม่ได้มีไว้สำหรับผู้ใช้งานทั่วไป
เพียงแค่เปลี่ยนพารามิเตอร์บางอย่างใน URL หรือในคำร้องขอ HTTP เท่านั้น
เมื่อระบบเปิดประตูให้ดูไฟล์ภายใน: LFI และ Path Traversal
นอกจากการเข้าถึงข้อมูลผ่าน ID ที่คาดเดาได้แล้ว
บางระบบอาจมีช่องโหว่ที่อนุญาตให้ผู้โจมตีอ่านไฟล์ที่อยู่บนเซิร์ฟเวอร์โดยตรง
เราเรียกช่องโหว่นี้ว่า LFI หรือ Local File Inclusion
มันเกิดขึ้นเมื่อแอปพลิเคชันเว็บอนุญาตให้ใส่ชื่อไฟล์เป็นพารามิเตอร์ และระบบนำชื่อไฟล์นั้นไปเปิดอ่านโดยไม่ตรวจสอบให้ดีก่อน
ควบคู่ไปกับ LFI มักจะมีเทคนิคที่เรียกว่า Path Traversal
ซึ่งเป็นการใช้สัญลักษณ์พิเศษ เช่น ../../ เพื่อเลื่อนตำแหน่งไปตามไดเรกทอรีต่างๆ บนเซิร์ฟเวอร์
จากนั้นก็สามารถอ่านไฟล์สำคัญ เช่น ไฟล์ตั้งค่าของระบบ หรือแม้กระทั่ง SSH Private Key ที่สามารถนำไปใช้เข้าสู่ระบบได้เลย
คิดดูว่าถ้าไฟล์สำคัญเหล่านี้ตกไปอยู่ในมือของคนที่ไม่ประสงค์ดี จะเกิดอะไรขึ้น
ก้าวสู่การยกระดับสิทธิ์: จากผู้ใช้ธรรมดาสู่ผู้ควบคุม
เมื่อได้เข้าถึงระบบในฐานะผู้ใช้ทั่วไปแล้ว เป้าหมายต่อไปมักจะเป็นการยกระดับสิทธิ์ หรือ Privilege Escalation
เพื่อให้ได้สิทธิ์ในระดับที่สูงขึ้น เช่น ผู้ดูแลระบบ (root)
มีหลายเทคนิคที่ใช้ในการทำสิ่งนี้
อย่างแรกคือการตรวจสอบคำสั่ง sudo -l
เพื่อดูว่าผู้ใช้ปัจจุบันมีสิทธิ์รันคำสั่งใดได้บ้างในฐานะผู้ดูแลระบบโดยไม่ต้องใช้รหัสผ่าน
อีกวิธีหนึ่งคือการค้นหาโปรแกรมที่ติดตั้งมาพร้อมกับสิทธิ์พิเศษที่เรียกว่า SUID binaries
ซึ่งหมายความว่าเมื่อรันโปรแกรมเหล่านี้ โปรแกรมจะทำงานในสิทธิ์ของผู้เป็นเจ้าของไฟล์นั้นๆ แทนที่จะเป็นสิทธิ์ของผู้ใช้ที่รันคำสั่ง
บางครั้ง โปรแกรมเหล่านั้นอาจมีช่องโหว่ที่อนุญาตให้ผู้โจมตีรันคำสั่งใดๆ ก็ได้ด้วยสิทธิ์ที่สูงขึ้น
เครื่องมืออย่าง GTFOBins เป็นแหล่งข้อมูลที่ยอดเยี่ยมในการค้นหาวิธีการยกระดับสิทธิ์ผ่านโปรแกรมเหล่านี้ โดยเฉพาะอย่างยิ่งโปรแกรมพื้นฐานอย่าง find ที่มีตัวเลือกบางอย่างที่สามารถใช้รันโค้ดด้วยสิทธิ์ระดับสูงได้
การทำความเข้าใจช่องโหว่และเทคนิคเหล่านี้เป็นสิ่งสำคัญมาก
ไม่ว่าจะเป็นการสร้างระบบที่แข็งแกร่ง หรือการทดสอบเพื่อค้นหาจุดอ่อนก่อนที่ผู้อื่นจะพบเจอ
การเจาะลึกเข้าไปในระบบ ช่วยให้มองเห็นถึงความซับซ้อนและโอกาสในการปรับปรุงความปลอดภัยอยู่เสมอ