การปลอมแปลงคำขอข้ามไซต์ (CSRF)
การโจมตี CSRF บังคับให้ผู้ใช้ที่ได้รับการรับรองความถูกต้อง (เหยื่อ) ส่งคำขอ HTTP ปลอมรวมถึงคุกกี้เซสชันของเหยื่อไปยังเว็บแอปพลิเคชันที่มีช่องโหว่ซึ่งทำให้ผู้โจมตีสามารถบังคับให้เบราว์เซอร์ของเหยื่อสร้างคำขอเพื่อให้แอปที่มีช่องโหว่มองว่าเป็นคำขอที่ถูกต้องจาก เหยื่อผู้เคราะห์ร้าย.
ขอให้เราเข้าใจตัวแทนภัยคุกคามผู้โจมตีจุดอ่อนด้านความปลอดภัยผลกระทบทางเทคนิคและผลกระทบทางธุรกิจของข้อบกพร่องนี้ด้วยความช่วยเหลือของแผนภาพง่ายๆ
ตัวอย่าง
นี่คือตัวอย่างคลาสสิกของ CSRF -
Step 1 - สมมติว่าแอปพลิเคชันที่มีช่องโหว่ส่งคำขอเปลี่ยนสถานะเป็นข้อความธรรมดาโดยไม่มีการเข้ารหัสใด ๆ
http://bankx.com/app?action=transferFund&amount=3500&destinationAccount=4673243243
Step 2 - ตอนนี้แฮ็กเกอร์สร้างคำขอที่โอนเงินจากบัญชีของเหยื่อไปยังบัญชีของผู้โจมตีโดยฝังคำขอไว้ในรูปภาพที่เก็บไว้ในไซต์ต่างๆภายใต้การควบคุมของผู้โจมตี -
<img src = "http://bankx.com/app?action=transferFunds&amount=14000&destinationAccount=attackersAcct#"
width = "0" height = "0" />
Hands ON
Step 1- ให้เราทำการปลอมแปลง CSRF โดยการฝังสคริปต์ Java ลงในรูปภาพ ภาพรวมของปัญหาแสดงอยู่ด้านล่าง
Step 2 - ตอนนี้เราต้องจำลองการถ่ายโอนเป็นภาพ 1x1 และให้เหยื่อคลิกที่เดียวกัน
Step 3 - เมื่อส่งข้อความข้อความจะแสดงตามไฮไลต์ด้านล่าง
Step 4- ตอนนี้หากเหยื่อคลิก URL ต่อไปนี้การถ่ายโอนจะดำเนินการซึ่งพบได้ว่าขัดขวางการกระทำของผู้ใช้โดยใช้ชุดเรอ เราสามารถดูการถ่ายโอนได้โดยระบุในข้อความ Get ดังที่แสดงด้านล่าง -
Step 5 - เมื่อคลิกรีเฟรชแล้วเครื่องหมายการจบบทเรียนจะปรากฏขึ้น
กลไกการป้องกัน
CSRF สามารถหลีกเลี่ยงได้โดยการสร้างโทเค็นเฉพาะในช่องที่ซ่อนอยู่ซึ่งจะถูกส่งไปในเนื้อหาของคำขอ HTTP แทนที่จะเป็น URL ซึ่งมีแนวโน้มที่จะเปิดเผยมากกว่า
บังคับให้ผู้ใช้ตรวจสอบสิทธิ์อีกครั้งหรือพิสูจน์ว่าเป็นผู้ใช้เพื่อปกป้อง CSRF ตัวอย่างเช่น CAPTCHA