บทนำ (Overview)
บทความนี้นำเสนอการตัวอย่างการโจมตี “Cross-site request forgery” โดยที่ Hacker ทราบดีอยู่ว่ามี Function มีช่องโหว่ดังกล่าว แต่ขาดเพียง “Session” จะโจมตี จึงต้องอาศัยปัจจัยอื่นร่วมด้วยเช่น นำ “Code” สำหรับทำ “CSRF” ไปฝั่งไว้เว็บที่ช่องโหว่ ที่มีความน่าจะเป็นที่เหยื่อจะเข้าถึง หรือใช้วิธีการส่ง “E-mail” ไปหา เพื่อให้เยื่อหลงเชื่อและคลิก แต่เนื่องจากขาด “Session” อาจจะต้องมีความพอเหมาะ พอเจาะที่จะโจมตีสำเร็จ ในขณะเหยื่อ “Login” อยู่
ขั้นตอน (Steps)
- ติดตั้งเว็บช่องโหว่ “DVWA” จาก (How to install DVWA in Kali)
- เเมื่อ “login” แล้วให้ไปที่ “Menu” ที่ชื่อ “CSRF”
- จะพบหน้าเปลี่ยนรหัสผ่าน โดยโปรแกรมให้ระบุแค่รหัสผ่านใหม่ให้ตรงกันทั้ง “2” ช่อง
- ลอง Click ปุ่ม “Change” จะพบว่ารหัสผ่านใหม่สามารถเปลี่ยนได้ (ลองทดสอบ Login เข้ามาใหม่) และที่สำคัญรหัสผ่านที่เปลี่ยนใหม่อยู่บน “URL” ของ “Web browser”(http://localhost/DVWA-1.9/vulnerabilities/csrf/?password_new=password&password_conf=password&Change=Change)
- เราสามารถส่ง “URL” นี้แนบไปกับ “E-mail” หรือนำไปวางใส่ “Web board” ที่สามารถใส่ “Link” โดยเพียงสร้างหน้าเว็บเพจแนบ “Syntax” ของ “HTML” เล็กน้อยดังนี้
<html> <head> <title>Test CSRF</title> </head> <body>Password changed <img src="http://localhost/DVWA-1.9/vulnerabilities/csrf/?password_new=password1&password_conf=password1&Change=Change" width="1" height="1" atl="csrf"/> </body> </html>
- img: “image” รูปภาพ
- src: รูปภาพที่เราต้องการแสดง แต่ในที่นี้เราใช้เป็น “URL” สำหรับเปลี่ยนรหัสผ่าน
- เมื่อได้ไฟล์ “HTML” แล้วทดลองตั้ง “Server” ใน “Kali” เพื่อให้ “Browser” เรียกได้ โดยนำไฟล์ไปใส่ในไดเรกทอรี /var/www/html
- จากนั้นเปิด “Browser” อีก “Tab” โดยขณะนี้เว็บ “DVWA” ยังมี “Login Session” อยู่
- ทดลองเข้าถึงไฟล์ “HTML” ที่เราสร้างขึ้นมา (http://localhost/csrf.html)
- ที่นี้กลับไปที่ “DVWA” ให้ “Logout” และ “Login” ใหม่อีกครั้งด้วย “Username” และ “password” เดิม
- จะพบว่าไม่สามารถ “Login” แต่ถ้าใช้ “password” ใหม่ (password1) กลับสามารถ “Login” ได้