AHI CTF


Saran Kaewnang


"If you want to succeed, you have to let failure be your best friend!"


#Prevent brute force with Google recaptcha in php language


Brute force คืออะไร

Brute force Attack เป็นการเดา password ทุกความเป็นไปได้ของตัวอักษรในแต่ละหลัก เช่น รหัส ATM มีจำนวน 4 หลัก แต่ละหลักสามารถตั้งค่าตัวเลข 0-9 ดังนั้น โปรแกรมจะทำการไล่ตัวเลขจาก 0000 ไปจนถึง 9999 หมื่นวิธีจนได้ password ที่ถูกต้อง

ตัวอย่างการโจมตีด้วยเทคนิค Brute force Attack

  • ผู้เขียนได้ทำการจำลองเว็บหน้า Login ขึ้นมาโดยภาษา PHP
  • ซึ่งถ้าหาก Login ได้สำเร็จจะดำเนินการย้ายไปยังหน้า Home
  • ถ้าหากชื่อผู้ใช้งาน กับรหัสผ่านไม่ถูกต้องจะขึ้น "Username and Password Incorrect!"
  • ผู้เขียนใช้โปรแกรม Burp Suite เพื่อดักจับ Packet ระหว่างทาง และนำมาทำการโจมตีด้วย Brute force จะเห็นว่าสามารถทำการโจมตีด้วยเทคนิค Brute force ได้สำเร็จ
การป้องกัน Brute force Attack ด้วย Google reCAPTCHA

  • ดำเนินการ Login เพื่อรับ API Key ที่ https://www.google.com/u/2/recaptcha/admin/
  • ให้กรอก Label และ Domains ของเราเอง ทำการกดส่งเพื่อรับ API Key
  • เราจะได้ Site key และ Secret key มา ดังรูป
  • เพิ่ม Code ดังต่อไปนี้ ไปยังส่วนของ head
  • เพิ่ม Code ดังต่อไปนี้ ไปยังส่วนของ form
  • เพิ่ม Code ในส่วนของการตรวจสอบชื่อผู้ใช้งาน และรหัสผ่านดังต่อไปนี้
  • เพียงเท่านี้เป็นอันเสร็จสิ้้น ทดสอบใช้งานหน้าเว็บ
  • ทดสอบโจมตีด้วยเทคนิค Brute force Attack อีกครั้ง จะเห็นว่าไม่สามารถโจมตีด้วย Brute force Attack ได้