10 ช่องโหว่ด้านความปลอดภัยบนเว็บที่พบบ่อยที่สุด

OWASP หรือ Open Web Security Project เป็นองค์กรการกุศลที่ไม่แสวงหากำไรซึ่งมุ่งเน้นไปที่การปรับปรุงความปลอดภัยของซอฟต์แวร์และแอปพลิเคชันเว็บ

องค์กรเผยแพร่รายการช่องโหว่ด้านความปลอดภัยบนเว็บอันดับต้น ๆ โดยอิงตามข้อมูลจากองค์กรความปลอดภัยต่างๆ

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

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

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

ช่องโหว่ด้านความปลอดภัย 10 อันดับแรกตาม OWASP Top 10 ได้แก่:

ด้วย SQL Injection

ด้วย SQL Injection

Descriptไอออน

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

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

คำสั่ง SQL ซึ่งเมื่อดำเนินการโดยเว็บแอปพลิเคชันยังสามารถเปิดเผยฐานข้อมูลส่วนหลังได้

นัย

  • ผู้โจมตีสามารถแทรกเนื้อหาที่เป็นอันตรายลงในช่องที่มีช่องโหว่
  • ข้อมูลที่ละเอียดอ่อน เช่น ชื่อผู้ใช้ รหัสผ่าน ฯลฯ สามารถอ่านได้จากฐานข้อมูล
  • ข้อมูลฐานข้อมูลสามารถแก้ไขได้ (แทรก/อัปเดต/ลบ)
  • การบริหารจัดการ Operaสามารถดำเนินการบนฐานข้อมูลได้

วัตถุที่มีความเสี่ยง

  • ช่องใส่
  • URL ที่โต้ตอบกับฐานข้อมูล

ตัวอย่าง:

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

ชื่อผู้ใช้ที่ถูกต้องสามารถใช้ได้ และไม่มีรหัสผ่าน

URL ทดสอบ: http://demo.testfire.net/default.aspx

ชื่อผู้ใช้: sjones

รหัสผ่าน: 1=1′ หรือ pass123

แบบสอบถาม SQL ที่สร้างและส่งไปยังล่ามดังต่อไปนี้

เลือก * จากผู้ใช้ โดยที่ User_Name = sjones และรหัสผ่าน = 1=1′ หรือ pass123;

แนะนำ

  1. สีขาวแสดงรายการช่องป้อนข้อมูล
  2. หลีกเลี่ยงการแสดงข้อความแสดงข้อผิดพลาดโดยละเอียดที่เป็นประโยชน์ต่อผู้โจมตี

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

Descriptไอออน

Cross Site Scripting มีชื่อเรียกสั้นๆ ว่า XSS

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

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

XSS คือการโจมตีที่ช่วยให้ผู้โจมตีสามารถรันสคริปต์บนเบราว์เซอร์ของเหยื่อได้

ความหมาย:

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

วัตถุที่มีความเสี่ยง

  • ช่องใส่
  • URL ที่

ตัวอย่าง

1. http://www.vulnerablesite.com/home?”<script>alert(“xss”)</script>

สคริปต์ด้านบนเมื่อรันบนเบราว์เซอร์ จะมีกล่องข้อความปรากฏขึ้นหากไซต์นั้นมีความเสี่ยงต่อ XSS

การโจมตีที่รุนแรงยิ่งขึ้นสามารถทำได้หากผู้โจมตีต้องการแสดงหรือจัดเก็บคุกกี้เซสชัน

2. http://demo.testfire.net/search.aspx?txtSearch <iframe- http://google.com ความกว้าง = 500 สูง 500>

สคริปต์ด้านบนเมื่อทำงาน เบราว์เซอร์จะโหลดเฟรมที่มองไม่เห็นซึ่งชี้ไป http://google.com.

การโจมตีสามารถร้ายแรงได้โดยการเรียกใช้สคริปต์ที่เป็นอันตรายบนเบราว์เซอร์

แนะนำ

  1. ช่องป้อนข้อมูลรายการสีขาว
  2. การเข้ารหัสอินพุตเอาต์พุต

การรับรองความถูกต้องและการจัดการเซสชันที่ใช้งานไม่ได้

Descriptไอออน

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

หากคุกกี้ไม่ถูกต้อง ข้อมูลที่ละเอียดอ่อนจะมีอยู่ในระบบ ตัวอย่างเช่น ผู้ใช้ที่ใช้คอมพิวเตอร์สาธารณะ (Cyber ​​Cafe) คุกกี้ของไซต์ที่มีช่องโหว่จะอยู่บนระบบและเปิดเผยต่อผู้โจมตี ผู้โจมตีใช้คอมพิวเตอร์สาธารณะเครื่องเดิมหลังจากนั้น ข้อมูลที่ละเอียดอ่อนจะถูกบุกรุก

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

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

วัตถุที่มีความเสี่ยง

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

นัย

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

ตัวอย่าง

  1. แอปพลิเคชันจองสายการบินรองรับการเขียน URL ใหม่ โดยใส่รหัสเซสชันใน URL:http://Examples.com/sale/saleitems;jsessionid=2P0OC2oJM0DPXSNQPLME34SERTBG/dest=Maldives (การขายตั๋วไปมัลดีฟส์) ผู้ใช้เว็บไซต์ที่ผ่านการรับรองต้องการแจ้งให้เพื่อนทราบเกี่ยวกับการขายและส่งอีเมลถึงเพื่อน เพื่อนจะได้รับ ID เซสชันและสามารถใช้แก้ไขโดยไม่ได้รับอนุญาตหรือใช้ข้อมูลบัตรเครดิตที่บันทึกไว้ในทางที่ผิด
  2. แอปพลิเคชันมีความเสี่ยงต่อ XSS ซึ่งผู้โจมตีสามารถเข้าถึงรหัสเซสชันและสามารถใช้เพื่อจี้เซสชันได้
  3. แอปพลิเคชันไม่ได้ตั้งค่าเวลาหมดเวลาอย่างเหมาะสม ผู้ใช้ใช้คอมพิวเตอร์สาธารณะและปิดเบราว์เซอร์แทนที่จะออกจากระบบและเดินจากไป ผู้โจมตีใช้เบราว์เซอร์เดียวกันในเวลาต่อมา และเซสชันก็ได้รับการรับรอง

แนะนำ

  1. ข้อกำหนดการตรวจสอบสิทธิ์และการจัดการเซสชันทั้งหมดควรได้รับการกำหนดตามมาตรฐานการตรวจสอบความปลอดภัยของแอปพลิเคชัน OWASP
  2. อย่าเปิดเผยข้อมูลประจำตัวใด ๆ ใน URL หรือบันทึก
  3. ควรพยายามอย่างเต็มที่เพื่อหลีกเลี่ยงข้อบกพร่อง XSS ซึ่งอาจใช้ในการขโมย ID เซสชันได้

การอ้างอิงวัตถุโดยตรงที่ไม่ปลอดภัย

Descriptไอออน

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

นัย

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

วัตถุที่มีความเสี่ยง

  • ใน URL

ตัวอย่าง:

การเปลี่ยนแปลง “รหัสผู้ใช้” ใน URL ต่อไปนี้สามารถทำให้ผู้โจมตีสามารถดูข้อมูลของผู้ใช้รายอื่นได้

http://www.vulnerablesite.com/userid=123 แก้ไขเป็น http://www.vulnerablesite.com/userid=124

ผู้โจมตีสามารถดูข้อมูลอื่น ๆ ได้โดยการเปลี่ยนค่ารหัสผู้ใช้

ข้อแนะนำ:

  1. ใช้การตรวจสอบการควบคุมการเข้าถึง
  2. หลีกเลี่ยงการเปิดเผยการอ้างอิงวัตถุใน URL
  3. ตรวจสอบการอนุญาตสำหรับวัตถุอ้างอิงทั้งหมด

การปลอมแปลงคำขอข้ามไซต์

Descriptไอออน

การปลอมแปลงคำขอข้ามไซต์เป็นคำขอปลอมที่มาจากไซต์ข้าม

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

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

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

นัย

  • การใช้ช่องโหว่นี้ในฐานะผู้โจมตีสามารถเปลี่ยนข้อมูลโปรไฟล์ผู้ใช้ เปลี่ยนสถานะ สร้างผู้ใช้ใหม่ในนามของผู้ดูแลระบบ ฯลฯ

วัตถุที่มีความเสี่ยง

  • หน้าโปรไฟล์ผู้ใช้
  • แบบฟอร์มบัญชีผู้ใช้
  • หน้าธุรกรรมทางธุรกิจ

ตัวอย่าง

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

เมื่อเหยื่อคลิกที่มัน จะมีการสร้างคำขอที่ถูกต้องเพื่อบริจาค $1 ให้กับบัญชีใดบัญชีหนึ่ง

http://www.vulnerablebank.com/transfer.do?account=cause&amount=1

ผู้โจมตีจับคำขอนี้และสร้างคำขอด้านล่างและฝังไว้ในปุ่มที่ระบุว่า “ฉันสนับสนุนสาเหตุ”

http://www.vulnerablebank.com/transfer.do?account=Attacker&amount=1000

เนื่องจากเซสชันได้รับการรับรองความถูกต้องและคำขอถูกส่งผ่านเว็บไซต์ของธนาคาร เซิร์ฟเวอร์จะโอนเงิน 1000 ดอลลาร์ให้กับผู้โจมตี

แนะนำ

  1. กำหนดการแสดงตนของผู้ใช้ในขณะที่ดำเนินการที่ละเอียดอ่อน
  2. นำกลไกเช่น CA มาใช้PTCHA การตรวจสอบสิทธิ์ซ้ำ และโทเค็นคำขอเฉพาะ

การกำหนดค่าความปลอดภัยผิดพลาด

Descriptไอออน

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

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

นัย

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

วัตถุที่มีความเสี่ยง

  • URL
  • เขตข้อมูลฟอร์ม
  • ช่องป้อนข้อมูล

ตัวอย่าง

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

แนะนำ

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

ที่เก็บข้อมูลการเข้ารหัสลับที่ไม่ปลอดภัย

Descriptไอออน

พื้นที่จัดเก็บข้อมูลการเข้ารหัสลับที่ไม่ปลอดภัยเป็นช่องโหว่ทั่วไปซึ่งเกิดขึ้นเมื่อข้อมูลที่ละเอียดอ่อนไม่ได้เก็บไว้อย่างปลอดภัย

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

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

(*การแฮชคือการแปลงอักขระสตริงให้เป็นสตริงที่สั้นกว่าซึ่งมีความยาวคงที่หรือคีย์ ในการถอดรหัสสตริง ควรใช้อัลกอริธึมที่ใช้ในการสร้างคีย์)

นัย

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

วัตถุที่มีความเสี่ยง

  • ฐานข้อมูลแอปพลิเคชัน

ตัวอย่าง

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

(*แฮช Unsalted – Salt เป็นข้อมูลสุ่มที่ต่อท้ายข้อมูลต้นฉบับ Salt จะถูกต่อท้ายรหัสผ่านก่อนแฮช)

แนะนำ

  1. ให้แน่ใจว่ามีอัลกอริทึมมาตรฐานที่เหมาะสมและแข็งแกร่ง อย่าสร้างอัลกอริทึมการเข้ารหัสของตัวเอง ใช้เฉพาะอัลกอริทึมสาธารณะที่ได้รับการอนุมัติ เช่น AES, การเข้ารหัสคีย์สาธารณะ RSA และ SHA-256 เป็นต้น
  2. ตรวจสอบให้แน่ใจว่าการสำรองข้อมูลนอกสถานที่ได้รับการเข้ารหัส แต่คีย์ได้รับการจัดการและสำรองข้อมูลแยกต่างหาก

ความล้มเหลวในการจำกัดการเข้าถึง URL

Descriptไอออน

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

ในแอปพลิเคชันส่วนใหญ่ เพจที่มีสิทธิ์ ตำแหน่ง และทรัพยากรจะไม่ถูกนำเสนอต่อผู้ใช้ที่มีสิทธิ์

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

นัย

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

วัตถุที่มีช่องโหว่:

  • URL ที่

ตัวอย่าง

  1. ผู้โจมตีสังเกตเห็นว่า URL ระบุบทบาทเป็น “/user/getaccounts” เขาแก้ไขเป็น “/admin/getaccounts”
  2. ผู้โจมตีสามารถผนวกบทบาทเข้ากับ URL ได้

http://www.vulnerablsite.com สามารถปรับเปลี่ยนได้เป็น http://www.vulnerablesite.com/admin

แนะนำ

  1. ดำเนินการตรวจสอบการควบคุมการเข้าถึงที่เข้มแข็ง
  2. นโยบายการรับรองความถูกต้องและการอนุญาตควรเป็นไปตามบทบาท
  3. จำกัดการเข้าถึง URL ที่ไม่ต้องการ

การป้องกันชั้นการขนส่งไม่เพียงพอ

Descriptไอออน

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

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

นัย

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

วัตถุที่มีความเสี่ยง

  • ข้อมูลที่ส่งผ่านเครือข่าย

แนะนำ

  1. เปิดใช้งาน HTTP ที่ปลอดภัยและบังคับใช้การถ่ายโอนข้อมูลรับรองผ่าน HTTPS เท่านั้น
  2. ตรวจสอบให้แน่ใจว่าใบรับรองของคุณถูกต้องและไม่หมดอายุ

ตัวอย่าง:

1. แอปพลิเคชันที่ไม่ได้ใช้ SSL ผู้โจมตีจะตรวจสอบการรับส่งข้อมูลเครือข่ายและสังเกตคุกกี้เซสชันของเหยื่อที่ได้รับการตรวจสอบสิทธิ์ ผู้โจมตีสามารถขโมยคุกกี้นั้นและทำการโจมตีแบบ Man-in-the-Middle

การเปลี่ยนเส้นทางและการส่งต่อที่ไม่ถูกต้อง

Descriptไอออน

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

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

นัย

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

ตัวอย่าง

1.http://www.vulnerablesite.com/login.aspx?redirectURL=ownsite.com

แก้ไขเป็น

http://www.vulnerablesite.com/login.aspx?redirectURL=evilsite.com

แนะนำ

  1. เพียงหลีกเลี่ยงการใช้การเปลี่ยนเส้นทางและการส่งต่อในแอปพลิเคชัน หากใช้ ไม่ต้องใช้พารามิเตอร์ผู้ใช้ในการคำนวณปลายทาง
  2. หากไม่สามารถหลีกเลี่ยงพารามิเตอร์ปลายทางได้ ตรวจสอบให้แน่ใจว่าค่าที่ให้มานั้นถูกต้อง และได้รับอนุญาตสำหรับผู้ใช้