การค้นหาข้อบกพร่องทั่วไป
IDOR, XSS, SSRF
การค้นหาข้อบกพร่องทั่วไป เป็นบทเรียน Ethical Hacking Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ethical Hacking Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ethical Hacking Academy มีบทเรียนทั้งหมด 4 บทเรียน
ช่องโหว่พื้นฐานที่พบบ่อย
ช่องโหว่ไม่กี่ประเภทสร้างค่าตอบแทนจากโครงการล่าบั๊กส่วนใหญ่ เพราะพบได้บ่อยและส่งผลกระทบสูง โปรดเชี่ยวชาญสามประเภทนี้ก่อน:
- IDOR — เข้าถึงข้อมูลของผู้ใช้อื่นผ่านรหัสที่คาดเดาได้
- XSS — แทรกสคริปต์ลงในหน้าเว็บ
- SSRF — ทำให้เซิร์ฟเวอร์ดึง URL ที่ผู้โจมตีกำหนด
บทเรียนนี้จะแสดงวิธีค้นหาแต่ละประเภทอย่างเป็นระบบ
ทำความเข้าใจ IDOR
การอ้างอิงออบเจ็กต์โดยตรงที่ไม่ปลอดภัย (IDOR) เกิดขึ้นเมื่อแอปใช้ตัวระบุที่ผู้ใช้ส่งมาเพื่อดึงออบเจ็กต์ โดยไม่ตรวจสอบว่าผู้ใช้นั้นเป็นเจ้าของหรือไม่
เปลี่ยน ID แล้วเข้าถึงข้อมูลของผู้อื่นได้ นี่เป็นข้อบกพร่องด้านการควบคุมสิทธิ์ ไม่ใช่การแทรกข้อมูล
# Your own invoice
GET /api/invoices/1001 Authorization: Bearer <your-token>
# Change the ID - do you get someone else's?
GET /api/invoices/1002 Authorization: Bearer <your-token>ค้นหา IDOR อย่างมีประสิทธิภาพ
หากต้องการค้นหา IDOR ให้สร้างบัญชีสองบัญชีแล้วเปรียบเทียบกัน ทุกสิ่งที่อ้างถึงออบเจ็กต์ด้วย ID ล้วนเป็นจุดที่ควรตรวจสอบ
- บันทึกคำขอจากบัญชี A ที่ดึงข้อมูลของ A
- ส่งคำขอนั้นซ้ำด้วยเซสชันของบัญชี B แต่ใช้ ID ออบเจ็กต์ของ A
- หาก B มองเห็นข้อมูลของ A นั่นคือ IDOR
ตรวจดู ID ใน URL เนื้อหาคำขอ ส่วนหัว และแม้แต่รูปแบบ base64/UUID
# Original (account A)
POST /api/profile/update
{ "user_id": 5001, "email": "a@example.com" }
# Tamper: use account B's session, keep A's user_id
# If A's profile changes, broken object-level authorization.ทำความเข้าใจ XSS
การเขียนสคริปต์ข้ามไซต์ (XSS) คือการแทรก JavaScript ที่ทำงานในเบราว์เซอร์ของผู้ใช้อื่น มีสามประเภทหลัก:
- แบบสะท้อนกลับ — ข้อมูลโจมตีถูกส่งกลับมาในผลตอบกลับทันที
- แบบจัดเก็บ — ข้อมูลโจมตีถูกบันทึกไว้และส่งให้ผู้ใช้อื่น (ส่งผลกระทบสูงสุด)
- แบบอิง DOM — JS ฝั่งไคลเอ็นต์เขียนข้อมูลนำเข้าของผู้โจมตีลงใน DOM อย่างไม่ปลอดภัย
การทดสอบหา XSS
เริ่มด้วยการแทรกเครื่องหมายเฉพาะเพื่อดูว่าข้อมูลนำเข้าของคุณถูกสะท้อนกลับที่ใดและอย่างไร จากนั้นสร้างข้อมูลโจมตีให้เหมาะกับบริบท เช่น เนื้อหา HTML แอตทริบิวต์ หรือสคริปต์
บริบทจะเป็นตัวกำหนดว่าข้อมูลโจมตีแบบใดสามารถหลุดออกจากบริบทเดิมและทำงานได้
# Probe reflection with a unique canary
?q=xss7391canary
# Basic HTML-context payload
<script>alert(document.domain)</script>
# Attribute breakout
" onmouseover=alert(1) x="พิสูจน์ผลกระทบของ XSS
alert(1) แบบง่ายพิสูจน์ได้ว่าโค้ดทำงาน แต่ผู้ตรวจสอบต้องการเห็น ผลกระทบ โปรดแสดงให้เห็นว่าผู้โจมตีสามารถขโมยหรือทำอะไรได้จริง
- อ่านโทเค็น CSRF หรือข้อมูลเซสชันที่ JS เข้าถึงได้
- แสดง
document.domainเพื่อพิสูจน์ต้นทาง - สำหรับ XSS แบบจัดเก็บ ให้แสดงว่าโค้ดทำงานในบัญชีของเหยื่อ
อย่าขโมยเซสชันของผู้ใช้จริง เพียงสาธิตความสามารถดังกล่าวเท่านั้น
ทำความเข้าใจ SSRF ในแอป
SSRF ในบริบทของโครงการล่าบั๊ก หมายถึงการค้นหาฟังก์ชันที่ดึง URL ซึ่งคุณควบคุมได้ จุดที่ควรตรวจสอบ ได้แก่:
- URL ของเว็บฮุก และ URL เรียกกลับ
- เครื่องมือสร้างรูปภาพ/PDF ที่ดึงทรัพยากรระยะไกล
- ฟังก์ชันแสดงตัวอย่าง URL / คลี่ลิงก์
- ฟังก์ชันนำเข้าจาก URL
ชี้ฟังก์ชันเหล่านี้ไปยังปลายทางภายในหรือปลายทางข้อมูลเมทาดาทาเพื่อพิสูจน์ผลกระทบ
ยืนยัน SSRF แบบนอกแบนด์
เมื่อผลตอบกลับไม่แสดงเนื้อหาที่ถูกดึงมา ให้ใช้เซิร์ฟเวอร์ นอกแบนด์ เพื่อยืนยันว่าเป้าหมายส่งคำขอออกมา การเรียกกลับเพื่อแจ้งการโต้ตอบจะพิสูจน์ SSRF แบบมองไม่เห็นผลตอบกลับ
เครื่องมืออย่าง Burp Collaborator หรือ interactsh จะมอบ URL เฉพาะให้คุณ และบันทึกการเรียกเข้ามา
# Give the app your unique OOB URL
POST /api/webhook
{ "callback": "http://abc123.oast.fun/" }
# If abc123.oast.fun logs a DNS/HTTP hit, the server fetched it = SSRF.ใช้พร็อกซีเพื่อค้นหาช่องโหว่
ช่องโหว่ทั้งสามประเภทค้นพบได้ด้วยการดักจับและแก้ไขคำขอ พร็อกซีสำหรับดักจับจึงเป็นเครื่องมือหลัก
- Burp Suite หรือ OWASP ZAP สำหรับดักจับ/แก้ไขการรับส่งข้อมูล
- เครื่องมือส่งซ้ำสำหรับส่งคำขอเดิมและปรับแก้คำขอทีละรายการ
- เครื่องมือโจมตีซ้ำ/สุ่มข้อมูลสำหรับทดสอบ ID หรือข้อมูลโจมตีจำนวนมาก
การเรียนรู้พร็อกซีของคุณอย่างลึกซึ้งให้ผลคุ้มค่ากว่าเทคนิคใดเทคนิคหนึ่งเพียงอย่างเดียว
เชื่อมช่องโหว่เพื่อเพิ่มผลกระทบ
ค่าตอบแทนก้อนใหญ่มักมาจากการ เชื่อม ช่องโหว่เข้าด้วยกัน ช่องโหว่ความรุนแรงปานกลางเมื่อรวมกับอีกช่องโหว่หนึ่งอาจกลายเป็นช่องโหว่ระดับวิกฤต
- SSRF ที่เข้าถึงข้อมูลเมทาดาทาบนคลาวด์อาจนำไปสู่การขโมยข้อมูลรับรองและการยึดบัญชี
- IDOR ที่เปิดเผยโทเค็นอาจนำไปสู่การยึดบัญชีโดยสมบูรณ์
- XSS แบบจัดเก็บในแผงผู้ดูแลระบบอาจนำไปสู่การยึดบัญชีผู้ดูแลระบบ
ถามตัวเองเสมอว่า ช่องโหว่นี้สามารถนำไปรวมกับอะไรได้บ้าง?
ทดสอบอย่างระมัดระวังและอยู่ในขอบเขต
ช่องโหว่เหล่านี้เกี่ยวข้องกับข้อมูลจริงและผู้ใช้จริง โปรดปฏิบัติอย่างมีจริยธรรม:
- ใช้บัญชีทดสอบของตนเอง และอย่าดูข้อมูลของผู้ใช้จริงเกินกว่าที่จำเป็นต่อการพิสูจน์
- หลีกเลี่ยงข้อมูลโจมตี XSS แบบจัดเก็บที่อาจทำงานกับผู้ใช้จริง และจำกัดให้ทำงานกับบัญชีของคุณเอง
- สำหรับ SSRF อย่าเจาะลึกต่อเข้าไปในระบบภายใน ให้พิสูจน์ความสามารถพื้นฐานแล้วหยุด
การสาธิตผลกระทบอย่างมีความรับผิดชอบช่วยให้คุณอยู่ภายใต้การคุ้มครองตามนโยบาย
ตรวจสอบอย่างรวดเร็ว
คุณเข้าสู่ระบบในฐานะผู้ใช้ B ส่งคำขอเดิมซ้ำโดยใช้เซสชันของ B แต่ใส่ ID ออบเจ็กต์ของ A แล้วได้รับข้อมูลส่วนตัวของ A ช่องโหว่นี้คืออะไร?
สรุป: การค้นหาช่องโหว่ที่พบบ่อย
คุณได้เรียนรู้วิธีค้นหาช่องโหว่สามประเภทที่มีมูลค่าสูงสุด
- IDOR: เปรียบเทียบบัญชีสองบัญชี แก้ไข ID ออบเจ็กต์ และตรวจสอบการบังคับใช้สิทธิ์ความเป็นเจ้าของ
- XSS: ตรวจสอบการสะท้อนกลับ ปรับข้อมูลโจมตีให้เข้ากับบริบท และพิสูจน์ผลกระทบจริง
- SSRF: ค้นหาฟังก์ชันที่ดึง URL และยืนยันกรณีที่มองไม่เห็นผลตอบกลับแบบนอกแบนด์
- เชื่อม ช่องโหว่เพื่อสร้างผลกระทบระดับวิกฤต เช่น SSRF ไปยังข้อมูลเมทาดาทาบนคลาวด์
- ใช้พร็อกซีสำหรับดักจับและอยู่ภายในขอบเขต
ถัดไป: เปลี่ยนสิ่งที่ค้นพบให้เป็นรายงานที่ได้รับค่าตอบแทน
คำถามที่พบบ่อย
บทเรียน “การค้นหาข้อบกพร่องทั่วไป” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การค้นหาข้อบกพร่องทั่วไป” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ethical Hacking Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ethical Hacking Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การค้นหาข้อบกพร่องทั่วไป”
IDOR, XSS, SSRF คุณปฏิบัติ Ethical Hacking Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ethical Hacking Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ethical Hacking Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การค้นหาข้อบกพร่องทั่วไป” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Ethical Hacking Academy นี้ได้ไหม
ได้ บทเรียน Ethical Hacking Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การเลือกเป้าหมาย
- รีคอนในระดับใหญ่
- การค้นหาข้อบกพร่องทั่วไป
- การเขียนรายงานที่ยอดเยี่ยม