การทดสอบการยืนยันตัวตนและเซสชัน
ทดสอบการเดารหัสผ่านเข้าสู่ระบบแบบรัว การตรึงเซสชัน จุดอ่อนของ JWT และโทเค็นจดจำฉันที่ไม่ปลอดภัย
การทดสอบการยืนยันตัวตนและเซสชัน เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
ขอบเขตการทดสอบการยืนยันตัวตน
การทดสอบการยืนยันตัวตนครอบคลุมการลองรหัสผ่านจำนวนมากกับหน้าเข้าสู่ระบบ การใช้ข้อมูลประจำตัวที่รั่วไหล การจัดการเซสชันที่มีจุดอ่อน ช่องโหว่ของ JWT โทเค็นจดจำการเข้าสู่ระบบที่ไม่ปลอดภัย และข้อบกพร่องในการรีเซ็ตรหัสผ่าน สิ่งเหล่านี้มักนำไปสู่การยึดบัญชีได้ทั้งหมด
การแจกแจงชื่อผู้ใช้
# Test login with:
# Valid user, wrong pass → "Incorrect password"
# Invalid user → "User not found"
# This confirms valid usernames!
# Time-based: longer response for valid users
# (bcrypt hash computed only for valid users)การลองรหัสผ่านหน้าเข้าสู่ระบบจำนวนมากด้วย Burp Intruder
ใช้ Intruder กับการโจมตีแบบ Sniper หรือ Pitchfork เพื่อลองรหัสผ่านหน้าเข้าสู่ระบบจำนวนมาก ทำเครื่องหมายช่องรหัสผ่านเป็นตำแหน่งเพย์โหลด โหลดรายการคำศัพท์ แล้วกรองการตอบกลับตามรหัสสถานะหรือความแตกต่างของความยาว
# In Burp Intruder:
# 1. Send login request to Intruder
# 2. Mark: username=admin&password=§PASS§
# 3. Attack type: Sniper
# 4. Payload: passwords.txt from SecLists
# 5. Filter: 302 redirects = successการใช้ข้อมูลประจำตัวที่รั่วไหล
การใช้ข้อมูลประจำตัวที่รั่วไหลคือการนำคู่ชื่อผู้ใช้:รหัสผ่านจากฐานข้อมูลที่รั่วไหล (Have I Been Pwned) ไปลองกับเป้าหมายใหม่ วิธีนี้ได้ผลเพราะผู้ใช้มักนำรหัสผ่านเดียวกันกลับมาใช้กับหลายบริการ
# Tools:
# Hydra for HTTP login forms
hydra -L users.txt -P passwords.txt \
192.168.1.100 http-post-form \
"/login:user=^USER^&pass=^PASS^:Invalid"การวิเคราะห์โทเค็นเซสชัน
เก็บโทเค็นเซสชันแล้ววิเคราะห์ความสามารถในการคาดเดา (ID เรียงลำดับกัน) ความยาว (สั้น = เดาได้ง่าย) การเข้ารหัส (ถอดรหัส base64 เพื่อดูโครงสร้าง) และเอนโทรปี (นำไปตรวจสอบด้วย Burp Sequencer)
# Burp Sequencer:
# Proxy > HTTP History
# Right-click login response
# Send to Sequencer
# Start live capture → Analyzeการตรึงเซสชัน
การตรึงเซสชันเกิดขึ้นเมื่อเซิร์ฟเวอร์ไม่เปลี่ยน ID เซสชันหลังการเข้าสู่ระบบ ทดสอบโดยจด ID เซสชันก่อนเข้าสู่ระบบ แล้วตรวจสอบว่า ID ดังกล่าวยังคงเดิมหลังการยืนยันตัวตนหรือไม่
การทดสอบ JWT
โทเค็นเว็บ JSON ใช้บรรจุข้ออ้างสิทธิ์การยืนยันตัวตน ทดสอบความสับสนของอัลกอริทึม (alg:none) การลองเดาความลับที่อ่อนแอจำนวนมาก และการฉีดส่วนหัว jwt.io ถอดรหัส JWT เพื่อให้ตรวจสอบได้
# Decode JWT
echo "eyJ..." | base64 -d
# None algorithm attack:
# Modify header: {"alg":"none"}
# Remove signature
# Encode and submit
# Brute force HS256 secret:
john --format=HMAC-SHA256 token.txtข้อบกพร่องในการรีเซ็ตรหัสผ่าน
ข้อบกพร่องในการรีเซ็ตที่พบบ่อย ได้แก่ โทเค็นรีเซ็ตที่เดาได้ง่าย (สั้นหรือเรียงลำดับกัน) การฉีดส่วนหัวโฮสต์ (โทเค็นถูกส่งไปยังโดเมนของผู้โจมตี) การนำโทเค็นกลับมาใช้ซ้ำ (โทเค็นเดิมใช้ได้หลายครั้ง) และไม่มีวันหมดอายุ
# Test host header injection:
# Modify Host: header in reset request:
Host: attacker.com
# If token arrives at attacker.com = vulnerability
# Test token entropy:
# Collect multiple tokens
# Check for patterns or short lengthความปลอดภัยของโทเค็นจดจำการเข้าสู่ระบบ
โทเค็นจดจำการเข้าสู่ระบบควรมีคุณสมบัติดังนี้: สุ่มด้วยวิธีการเข้ารหัส มีความยาวมาก (128 บิตขึ้นไป) จัดเก็บเป็นค่าแฮชฝั่งเซิร์ฟเวอร์ ใช้ได้ครั้งเดียว และผูกกับบัญชีผู้ใช้ ทดสอบความสามารถในการคาดเดาและการนำกลับมาใช้ซ้ำ
การข้ามการยืนยันตัวตนหลายปัจจัย
วิธีข้าม MFA ที่พบบ่อย ได้แก่ การปรับเปลี่ยนการตอบกลับ (เปลี่ยนจากล้มเหลวเป็นสำเร็จ) การเข้าถึง URL โดยตรงหลังยืนยันตัวตนเพียงบางส่วน การลองรหัส OTP สั้น ๆ จำนวนมากโดยไม่มีการจำกัดอัตรา และการสลับ SIM (เป็นวิธีทางสังคม ไม่ใช่ทางเทคนิค)
การทดสอบการล็อกบัญชี
ทดสอบว่าการเข้าสู่ระบบล้มเหลวซ้ำ ๆ ทำให้บัญชีถูกล็อกหรือไม่ หากไม่มีการล็อกบัญชี จะมีความเสี่ยงจากการลองรหัสผ่านจำนวนมาก หากล็อกเข้มงวดเกินไป จะมีความเสี่ยงต่อการทำให้บริการไม่พร้อมใช้งาน ตรวจสอบว่าการล็อกบัญชีถูกรีเซ็ตหลังหมดเวลาหรือจำเป็นต้องให้ผู้ดูแลดำเนินการ
ตรวจสอบความเข้าใจ
การโจมตี JWT แบบใดที่เปลี่ยนฟิลด์อัลกอริทึมเป็น "none" เพื่อข้ามการตรวจสอบลายเซ็น
สรุป: การทดสอบการยืนยันตัวตนและเซสชัน
การทดสอบการยืนยันตัวตนครอบคลุมห่วงโซ่ทั้งหมด ตั้งแต่การเข้าสู่ระบบครั้งแรกไปจนถึงการจัดการเซสชัน ให้ค้นหาการแจกแจงชื่อผู้ใช้ การไม่มีระบบล็อกบัญชี โทเค็นที่คาดเดาได้ ความสับสนของอัลกอริทึม JWT การฉีดในกระบวนการรีเซ็ตรหัสผ่าน และการข้าม MFA จุดอ่อนเพียงจุดเดียวในห่วงโซ่นี้อาจหมายถึงการยึดบัญชีของผู้ใช้คนใดก็ได้ทั้งหมด
คำถามที่พบบ่อย
บทเรียน “การทดสอบการยืนยันตัวตนและเซสชัน” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การทดสอบการยืนยันตัวตนและเซสชัน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การทดสอบการยืนยันตัวตนและเซสชัน”
ทดสอบการเดารหัสผ่านเข้าสู่ระบบแบบรัว การตรึงเซสชัน จุดอ่อนของ JWT และโทเค็นจดจำฉันที่ไม่ปลอดภัย คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การทดสอบการยืนยันตัวตนและเซสชัน” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม
ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พร็อกซี Burp Suite และการดักจับคำขอ
- การทดสอบช่องโหว่แบบฉีดคำสั่ง
- การทดสอบการยืนยันตัวตนและเซสชัน
- ช่องโหว่การอัปโหลดไฟล์และ SSRF