การทดสอบการพิสูจน์ตัวตนที่เสียหาย

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

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

ตัวอย่าง

An e-commerce application supports URL rewriting, putting session IDs in the URL −

http://example.com/sale/saleitems/jsessionid=2P0OC2JSNDLPSKHCJUN2JV/?item=laptop

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

Hands ON

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

Step 2 - เมื่อเราเข้าสู่ระบบโดยใช้ข้อมูลประจำตัว webgoat / webgoat เราพบจาก Burp Suite ว่า JSESSION ID คือ C8F3177CCAFF380441ABF71090748F2E ในขณะที่ AuthCookie = 65432ubphcfx เมื่อตรวจสอบสิทธิ์สำเร็จ

Step 3 - เมื่อเราเข้าสู่ระบบโดยใช้ข้อมูลประจำตัวด้าน / ด้านเราพบจาก Burp Suite ว่า JSESSION ID คือ C8F3177CCAFF380441ABF71090748F2E ในขณะที่ AuthCookie = 65432udfqtb เมื่อตรวจสอบสิทธิ์สำเร็จ

Step 4- ตอนนี้เราต้องวิเคราะห์รูปแบบ AuthCookie ครึ่งแรก '65432' เป็นเรื่องปกติสำหรับการตรวจสอบสิทธิ์ทั้งสอง ดังนั้นตอนนี้เราสนใจที่จะวิเคราะห์ส่วนสุดท้ายของค่า authcookie เช่น - ubphcfx สำหรับผู้ใช้ webgoat และ udfqtb สำหรับผู้ใช้ด้านตามลำดับ

Step 5- หากเราพิจารณาค่า AuthCookie อย่างละเอียดส่วนสุดท้ายจะมีความยาวเท่ากับชื่อผู้ใช้ ดังนั้นจึงเห็นได้ชัดว่าชื่อผู้ใช้ถูกใช้ด้วยวิธีการเข้ารหัสบางอย่าง จากการทดลองและข้อผิดพลาด / กลไกการบังคับที่ดุร้ายเราพบว่าหลังจากย้อนกลับชื่อผู้ใช้เว็บโกต; เราลงท้ายด้วย taogbew จากนั้นตัวอักษร before คือสิ่งที่ใช้เป็น AuthCookie คือ ubphcfx

Step 6- หากเราส่งผ่านค่าคุกกี้นี้และให้เราดูว่าเกิดอะไรขึ้น เมื่อตรวจสอบสิทธิ์เป็น webgoat ของผู้ใช้ให้เปลี่ยนค่า AuthCookie เพื่อเยาะเย้ยผู้ใช้ Alice โดยค้นหา AuthCookie สำหรับสิ่งเดียวกันโดยทำตามขั้นตอนที่ # 4 และขั้นตอนที่ 5

การป้องกันกลไก

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

  • นักพัฒนาควรตรวจสอบให้แน่ใจว่าพวกเขาหลีกเลี่ยงข้อบกพร่อง XSS ที่สามารถใช้เพื่อขโมยรหัสเซสชัน