9 ประเภทการโจมตีแบบฉีดเข้าเว็บแอปพลิเคชันยอดนิยม

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

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

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

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

การฉีดโค้ด

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

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

ตัวอย่างเช่น ต้องจำกัดจำนวนข้อมูลที่คาดไว้ เพื่อตรวจสอบรูปแบบข้อมูลก่อนที่จะยอมรับ และจำกัดชุดของอักขระที่อนุญาต

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

การฉีด SQL

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

  7 แอพเว็บแคมที่ดีที่สุดเพื่อยกระดับประสบการณ์เว็บแคมของคุณ

แอปพลิเคชัน PHP และ ASP มีแนวโน้มที่จะถูกโจมตีด้วยการแทรก SQL เนื่องจากอินเทอร์เฟซการทำงานที่เก่ากว่า แอป J2EE และ ASP.Net มักได้รับการปกป้องจากการโจมตีเหล่านี้มากกว่า เมื่อพบช่องโหว่ SQL Injection ซึ่งสามารถพบได้ง่าย ขนาดของการโจมตีที่อาจเกิดขึ้นจะถูกจำกัดโดยทักษะและจินตนาการของผู้โจมตีเท่านั้น ดังนั้น ผลกระทบของการโจมตีด้วยการฉีด SQL จึงสูงอย่างไม่ต้องสงสัย

คำสั่งฉีด

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

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

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

การเขียนสคริปต์ข้ามไซต์

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

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

โดยทั่วไปแล้ว การโจมตี XSS สามารถแบ่งออกเป็นสองประเภท: จัดเก็บและสะท้อนกลับ

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

การฉีด XPath

การโจมตีประเภทนี้เกิดขึ้นได้เมื่อเว็บแอปพลิเคชันใช้ข้อมูลที่ผู้ใช้ให้มาเพื่อสร้างแบบสอบถาม XPath สำหรับข้อมูล XML วิธีการทำงานของการโจมตีเหล่านี้คล้ายกับการแทรก SQL: ผู้โจมตีส่งข้อมูลที่ผิดรูปแบบไปยังแอปพลิเคชันเพื่อค้นหาว่าข้อมูล XML มีโครงสร้างอย่างไร จากนั้นจึงโจมตีอีกครั้งเพื่อเข้าถึงข้อมูลนั้น

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

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

  วิธีใช้เครือข่าย Airtel 5G ในอินเดีย

การฉีดคำสั่งเมล

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

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

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

การฉีด CRLF

การแทรกการขึ้นบรรทัดใหม่และอักขระป้อนบรรทัด – การรวมกันที่เรียกว่า CRLF– ในช่องป้อนข้อมูลของเว็บฟอร์มแสดงถึงวิธีการโจมตีที่เรียกว่า CRLF injection อักขระที่มองไม่เห็นเหล่านี้บ่งชี้การสิ้นสุดของบรรทัดหรือจุดสิ้นสุดของคำสั่งในอินเทอร์เน็ตโปรโตคอลแบบดั้งเดิม เช่น HTTP, MIME หรือ NNTP

ตัวอย่างเช่น การแทรก CRLF ลงในคำขอ HTTP ตามด้วยโค้ด HTML บางรหัส อาจส่งหน้าเว็บที่กำหนดเองไปยังผู้เยี่ยมชมเว็บไซต์ได้

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

การฉีดส่วนหัวของโฮสต์

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

การจัดการส่วนหัวของโฮสต์มักเกี่ยวข้องกับแอปพลิเคชัน PHP แม้ว่าจะสามารถทำได้ด้วยเทคโนโลยีการพัฒนาเว็บอื่นๆ การโจมตีส่วนหัวของโฮสต์ทำงานเป็นตัวเปิดสำหรับการโจมตีประเภทอื่นๆ เช่น พิษเว็บแคช ผลที่ตามมาอาจรวมถึงการดำเนินการที่ละเอียดอ่อนโดยผู้โจมตี เช่น การรีเซ็ตรหัสผ่าน

การฉีด LDAP

LDAP เป็นโปรโตคอลที่ออกแบบมาเพื่ออำนวยความสะดวกในการค้นหาทรัพยากร (อุปกรณ์ ไฟล์ ผู้ใช้อื่นๆ) ในเครือข่าย มีประโยชน์มากสำหรับอินทราเน็ต และเมื่อใช้เป็นส่วนหนึ่งของระบบลงชื่อเข้าระบบเพียงครั้งเดียว สามารถใช้เพื่อจัดเก็บชื่อผู้ใช้และรหัสผ่านได้ ข้อความค้นหา LDAP เกี่ยวข้องกับการใช้อักขระควบคุมพิเศษที่ส่งผลต่อการควบคุม ผู้โจมตีอาจเปลี่ยนพฤติกรรมที่ต้องการของการสืบค้น LDAP หากพวกเขาสามารถแทรกอักขระควบคุมเข้าไปได้

  วิธีเรียกใช้แอพ iPhone และ iPad บน Mac

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

ในตำแหน่งที่ถูกต้องภายในสตริงอินพุต

ป้องกันการโจมตีด้วยการฉีด

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

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

เรื่องล่าสุด

x