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