How to POC the Cross Site Request Forgery (CSRF)

บทนำ (Overview)

บทความนี้นำเสนอการตัวอย่างการโจมตี “Cross-site request forgery” โดยที่ Hacker ทราบดีอยู่ว่ามี Function มีช่องโหว่ดังกล่าว แต่ขาดเพียง “Session” จะโจมตี จึงต้องอาศัยปัจจัยอื่นร่วมด้วยเช่น นำ “Code” สำหรับทำ “CSRF” ไปฝั่งไว้เว็บที่ช่องโหว่ ที่มีความน่าจะเป็นที่เหยื่อจะเข้าถึง หรือใช้วิธีการส่ง “E-mail” ไปหา เพื่อให้เยื่อหลงเชื่อและคลิก แต่เนื่องจากขาด “Session” อาจจะต้องมีความพอเหมาะ พอเจาะที่จะโจมตีสำเร็จ ในขณะเหยื่อ “Login” อยู่

dvwa-csrf-l-08

ขั้นตอน (Steps)

  1. ติดตั้งเว็บช่องโหว่ “DVWA” จาก (How to install DVWA in Kali)
  2. เเมื่อ “login” แล้วให้ไปที่ “Menu” ที่ชื่อ “CSRF”dvwa-csrf-l-01
  3. จะพบหน้าเปลี่ยนรหัสผ่าน โดยโปรแกรมให้ระบุแค่รหัสผ่านใหม่ให้ตรงกันทั้ง “2” ช่อง dvwa15
  4. ลอง Click ปุ่ม  “Change” จะพบว่ารหัสผ่านใหม่สามารถเปลี่ยนได้ (ลองทดสอบ Login เข้ามาใหม่) และที่สำคัญรหัสผ่านที่เปลี่ยนใหม่อยู่บน “URL” ของ “Web browser”(http://localhost/DVWA-1.9/vulnerabilities/csrf/?password_new=password&password_conf=password&Change=Change) dvwa-csrf-l-02
  5. เราสามารถส่ง “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” สำหรับเปลี่ยนรหัสผ่าน
    • width=”1″ height=”1″ :เป็นส่วนสำคัญที่ทำให้ไม่ให้ <img> เห็นเป็น dvwa17
  6. เมื่อได้ไฟล์ “HTML” แล้วทดลองตั้ง “Server” ใน “Kali” เพื่อให้ “Browser” เรียกได้ โดยนำไฟล์ไปใส่ในไดเรกทอรี /var/www/html dvwa-csrf-l-03
  7. จากนั้นเปิด “Browser” อีก “Tab” โดยขณะนี้เว็บ “DVWA” ยังมี “Login Session” อยู่ dvwa-csrf-l-04
  8. ทดลองเข้าถึงไฟล์ “HTML” ที่เราสร้างขึ้นมา (http://localhost/csrf.html) dvwa-csrf-l-05
  9. ที่นี้กลับไปที่ “DVWA” ให้ “Logout” และ “Login” ใหม่อีกครั้งด้วย “Username” และ “password” เดิม dvwa-csrf-l-06
  10. จะพบว่าไม่สามารถ “Login” แต่ถ้าใช้ “password” ใหม่ (password1) กลับสามารถ “Login” ได้ dvwa-csrf-l-07

 

ใส่ความเห็น