0Pricing
Cyber Security Academy · บทเรียน

โจทย์เว็บและการเข้ารหัส

แก้ปริศนาเว็บและการเข้ารหัสที่พบบ่อย

โจทย์เว็บและการเข้ารหัส เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

สองเสาหลัก: เว็บและการเข้ารหัส

เว็บและการเข้ารหัสเป็นจุดเริ่มต้นที่พบบ่อยที่สุดสองประการในการเข้าสู่ CTF

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

ทั้งสองรูปแบบให้รางวัลแก่การสังเกตอย่างเป็นระบบ บทนี้ครอบคลุมโจทย์ที่พบซ้ำบ่อยในแต่ละรูปแบบ

ขั้นตอนแรกเมื่อเจอเป้าหมายเว็บ

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

# Inspect raw response headers and body
curl -i http://target/

# Look for hidden paths the UI does not link to
gobuster dir -u http://target/ -w wordlist.txt

# Common files worth checking by hand
# /robots.txt  /.git/  /backup.zip  /admin

การแทรกคำสั่ง SQL

การแทรกคำสั่ง SQL เกิดขึ้นเมื่อข้อมูลนำเข้าของผู้ใช้ถูกนำไปต่อเข้ากับคำสั่งฐานข้อมูลโดยไม่แยกโค้ดออกจากข้อมูล

การเข้าสู่ระบบที่สร้างคำสั่งลักษณะนี้ SELECT * FROM users WHERE name='INPUT' อาจถูกเจาะได้ด้วยข้อมูลนำเข้าที่ปิดสตริงแล้วเปลี่ยนตรรกะ:

# A classic auth-bypass payload supplied as the username
' OR '1'='1' -- 

# UNION-based extraction once the column count is known
' UNION SELECT username, password FROM users -- 

วิธีแก้การแทรกคำสั่งที่แท้จริง

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

# Vulnerable: input becomes part of the SQL text
query = "SELECT * FROM users WHERE name='" + name + "'"

# Safe: input is bound as a parameter, never parsed as SQL
cursor.execute("SELECT * FROM users WHERE name = ?", (name,))

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

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

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

การป้องกันคือการเข้ารหัสผลลัพธ์ตามบริบท รวมกับนโยบายความปลอดภัยของเนื้อหา โพรบทดสอบอย่าง <script>alert(1)</script> จะยืนยันได้ว่าข้อมูลนำเข้าถูกทำให้อยู่ในรูปปลอดภัยหรือไม่

SSRF และการข้ามไดเรกทอรี

พื้นฐานสำคัญของเว็บอีกสองประการ:

  • การปลอมแปลงคำขอฝั่งเซิร์ฟเวอร์ (SSRF) — หลอกให้เซิร์ฟเวอร์ส่งคำขอแทนคุณ โดยมักส่งไปยังที่อยู่ภายในเท่านั้น เช่น http://127.0.0.1 หรือจุดปลายทางข้อมูลเมทาดาทาของระบบคลาวด์ เพื่อเข้าถึงธง
  • การข้ามไดเรกทอรี — ออกจากไดเรกทอรีที่กำหนดไว้ด้วยลำดับอย่าง ../ เพื่ออ่านไฟล์นอกพื้นที่รากเว็บ เช่น ../../../../etc/passwd

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

การเข้ารหัสรูปแบบไม่ใช่การเข้ารหัสลับ

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

ฝึกจำแนกรูปแบบเหล่านี้จากการมองเห็น:

  • เบส64 — ตัวอักษร ตัวเลข + / และมักมีการเติมส่วนท้ายด้วย =
  • เลขฐานสิบหก — มีเพียง 0-9 a-f
  • รหัสเลื่อน 13 ตำแหน่ง / ซีซาร์ — มีโครงสร้างที่อ่านได้และตัวอักษรถูกเลื่อน
# Decode base64
echo 'ZmxhZ3toZWxsb30=' | base64 -d

# Decode hex
echo '666c6167' | xxd -r -p

รหัสแบบคลาสสิกและ XOR

โจทย์การเข้ารหัสจำนวนมากใช้รหัสแบบเก่าที่อ่อนแอหรือรหัสสมัยใหม่ที่นำไปใช้อย่างหละหลวม:

  • ซีซาร์ / วีเจแนร์ — รหัสเลื่อนที่ทำลายได้ด้วยการวิเคราะห์ความถี่หรือลองการเลื่อนทั้ง 25 แบบ
  • XOR ไบต์เดียว — ข้อความทั้งหมดถูกทำ XOR ด้วยไบต์เดียว ให้ลองคีย์ทั้ง 256 ค่าแล้วเลือกผลลัพธ์ที่อ่านออก
  • XOR ด้วยคีย์ซ้ำ — ทำลายได้โดยค้นหาความยาวคีย์ แล้วแก้ไบต์ของคีย์แต่ละตัวด้วย XOR ไบต์เดียว

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

จุดพลาดของ RSA

RSA จะปลอดภัยก็ต่อเมื่อเลือกพารามิเตอร์อย่างถูกต้อง โจทย์การเข้ารหัสใน CTF มักมอบตัวอย่างที่มีข้อบกพร่องให้คุณ:

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

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

การถอดรหัสแฮช

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

# Identify the hash type first
hashid 5f4dcc3b5aa765d61d8327deb882cf99

# Dictionary attack with hashcat (mode 0 = raw MD5)
hashcat -m 0 hash.txt rockyou.txt

# John the Ripper alternative
john --wordlist=rockyou.txt hash.txt

กระบวนการทำงานที่ทำซ้ำได้

เชื่อมทุกอย่างเข้าด้วยกันด้วยวงจรที่สม่ำเสมอสำหรับทั้งสองหมวดหมู่:

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

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

ตรวจสอบอย่างรวดเร็ว

ทดสอบความเข้าใจพื้นฐานด้านเว็บและการเข้ารหัสลับของคุณ

สรุปทบทวน

คุณได้เรียนรู้โจทย์ด้านเว็บและการเข้ารหัสลับที่มักพบซ้ำ ๆ ดังนี้:

  • เว็บ: สำรวจโครงสร้างก่อน จากนั้นทดสอบหา การฉีดคำสั่งเอสคิวแอล, XSS, SSRF และการไต่ย้อนเส้นทาง — ทุกอย่างมีรากมาจากการเชื่อถือข้อมูลป้อนเข้าของผู้ใช้โดยไม่ปลอดภัย และแก้ไขได้ด้วยการแยกโค้ดออกจากข้อมูล
  • การเข้ารหัสลับ: แยกแยะ การแปลงรูปแบบข้อมูลออกจากการเข้ารหัสลับ ถอด รหัสแบบคลาสสิกและ XOR ที่อ่อนแอ ใช้ประโยชน์จาก ข้อผิดพลาดในการกำหนดพารามิเตอร์ RSA และ ถอดแฮช ด้วยรายการคำศัพท์
  • วงจรเดียว ได้แก่ สังเกต ตั้งสมมติฐาน ทดสอบ ใช้ประโยชน์จากช่องโหว่ และบันทึก ใช้ได้กับทั้งสองด้าน

ถัดไป คุณจะเข้าสู่วิศวกรรมย้อนกลับและการโจมตีไบนารี

คำถามที่พบบ่อย

บทเรียน “โจทย์เว็บและการเข้ารหัส” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “โจทย์เว็บและการเข้ารหัส” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “โจทย์เว็บและการเข้ารหัส”

แก้ปริศนาเว็บและการเข้ารหัสที่พบบ่อย คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “โจทย์เว็บและการเข้ารหัส” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม

ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. หมวดหมู่และแนวคิดของ CTF
  2. โจทย์เว็บและการเข้ารหัส
  3. พื้นฐานการรีเวิร์สและการเจาะไบนารี
  4. เครื่องมือและบทสรุปวิธีแก้โจทย์
← กลับไปที่ Cyber Security Academy