Skip to content

icharge/csrf-land

 
 

Repository files navigation

CSRF Land

จุดประสงค์ เพื่อเรียนรู้และทดสอบการโจมตีด้วยเทคนิค CSRF (Cross-Site Request Forgery ) อย่างถูกกฏหมายและเข้าใจจริงโดยลงมือทำจริงในสถานการณ์จำลองหลากหลายรูปแบบ

Cross-Site Request Forgery (CSRF) คืออะไร ?

CSRF คือการโจมตีผู้ใช้งานบนเว็บโดยผู้โจมตีจะทำการเขียนสคริปท์เพื่อหลอกล่อและบังคับให้ผู้ใช้งานเว็บทำสิ่งต่าง ๆ โดยไม่ได้ตั้งใจ หรือไม่ทันรู้ตัว โดยจะทำให้การกระทำต่าง ๆ นั้นถูกใช้งานโดยสิทธิ์ของผู้ใช้งานเว็บไซด์นั้นอยู่ เช่นถ้าใช้งานเว็บไซด์ A ด้วยสิทธิ์ user B อยู่เมื่อถูกโจมตีด้วยช่องโหว่ CSRF ก็จะทำให้คำสั่งนั้นถูกรันด้วยสิทธิ์ของ user B บนเว็บ A , ตัวอย่างผลกระทบเมื่อการโจมตีสำเร็จคือ การเปลี่ยนรหัสผ่านหรืออีเมล ของผู้ใช้งานเว็บไซด์, การทำให้ผู้ใช้งานส่งข้อความหาคนอื่น (spam), การเพิ่ม user ใหม่ หรือใช้งานความสามารถของเว็บด้วยสิทธิ์ของผู้ดูแลระบบได้

วิธีป้องกันการโจมตีด้วยเทคนิค CSRF

เมื่อไรที่ต้องการส่งข้อมูลให้สร้างค่าสุ่ม (anti-CSRF token) และซ่อนแนบมากับข้อมูลปกติด้วยและทำการตรวจสอบอีกครั้งเมื่อทำการรับข้อมูลว่าค่านั้นยังคงถูกต้อง โดยค่าที่ว่าควรจะไม่สามารถเดาได้โดย user อื่น ๆ (อาจจะ 1 ค่าต่อ 1 session ของ user, 1 ค่าต่อ 1 module ในเว็บ ต่อ 1 user, หรือเปลี่ยนค่าใหม่ทุกครั้งหลังจากใช้ค่าเดิมไปแล้วก็ได้) ศึกษาข้อมูลเพิ่มเติมได้ที่ OWASP CSRF Prevention Cheat Sheet

วิธีการโจมตีด้วยเทคนิค CSRF

วิธีการโจมตีเว็บ A ที่มีช่องโหว่ CSRF คือแฮกเกอร์สามารถเขียนโค้ดเพื่อโจมตีช่องโหว่ (exploit) ไปใส่ในเว็บอะไรก็ได้สมมุติว่าเว็บ C แล้วทำการ social engineering ส่งไปให้ user B ที่เป็นเป้าหมายเปิด เมื่อ user B เปิดเว็บ C แล้ว สคริปท์ภายในเว็บ C จะบังคับให้ user B ส่งค่าไปที่เว็บ A เพื่อทำสิ่งต่าง ๆ เช่นเปลี่ยนอีเมลของ user B เป็นอีเมลของแฮกเกอร์ และแฮกเกอร์ก็จะ reset รหัสผ่าน account ของ user B เพื่อแฮกเอาข้อมูลและ identity ต่าง ๆ ของ user B บนเว็บ A มาได้ หรือถ้า user B เป็นผู้ดูแลระบบ แฮกเกอร์ก็อาจสามารถยึดเครื่องเซิร์ฟเวอร์ผ่านสิทธิ์ของผู้ดูแลระบบนั้นได้เลย

Video

http://www.youtube.com/watch?v=PjLiyMAfUgs

Screenshots

Screenshot1 Screenshot2 Screenshot3

Installation

Tested on Ubuntu 14.04, Apache/2.4.7, PHP 5.5.9

  1. You can download the latest tarball by clicking here.
  2. Extract files into your web document root (ex. Apache 2)
  3. $ vim /etc/hosts

127.0.0.1 localhost csrf-land.local

Links

About

Cross-site request forgery Learning Platform

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published