เนื่องจากการป้องกันของเราพิจารณาจากมุมมองของผู้บุกรุก เราจึงต้องรู้ก่อนว่าผู้บุกรุกบุกเข้ามาอย่างไร ในปัจจุบัน วิธีการบุกรุกเว็บที่ได้รับความนิยมมากขึ้นคือการรับ webshell ของเว็บไซต์ก่อนโดยมองหาช่องโหว่ของโปรแกรม จากนั้นค้นหาวิธีการหาประโยชน์ที่เกี่ยวข้องเพื่อเพิ่มสิทธิ์ตามการกำหนดค่าของเซิร์ฟเวอร์ จากนั้นรับสิทธิ์ของเซิร์ฟเวอร์ ดังนั้นจึงเป็นวิธีที่มีประสิทธิภาพในการร่วมมือกับเซิร์ฟเวอร์ในการตั้งค่าเพื่อป้องกันเว็บเชลล์
1. ป้องกันไม่ให้ฐานข้อมูลถูกดาวน์โหลดอย่างผิดกฎหมาย
ควรกล่าวว่าผู้ดูแลระบบที่มีการรักษาความปลอดภัยเครือข่ายเล็กน้อยจะเปลี่ยนเส้นทางฐานข้อมูลเริ่มต้นของโปรแกรมเว็บไซต์ที่ดาวน์โหลดจากอินเทอร์เน็ต แน่นอนว่าผู้ดูแลระบบบางคนประมาทมาก พวกเขาได้รับโปรแกรมและติดตั้งโดยตรงบนเซิร์ฟเวอร์ของตนเองโดยไม่ต้องลบไฟล์คำอธิบาย ไม่ต้องพูดถึงการเปลี่ยนเส้นทางฐานข้อมูล ด้วยวิธีนี้ แฮกเกอร์สามารถดาวน์โหลดโปรแกรมต้นฉบับของเว็บไซต์จากไซต์ซอร์สโค้ดได้โดยตรง จากนั้นทดสอบในเครื่องเพื่อค้นหาฐานข้อมูลเริ่มต้น จากนั้นดาวน์โหลดฐานข้อมูลเพื่ออ่านข้อมูลผู้ใช้และข้อมูลภายใน (โดยปกติจะเข้ารหัส MD5) เพื่อค้นหาการจัดการ ทางเข้าและเข้าสู่ระบบเพื่อรับ webshell อีกสถานการณ์หนึ่งคือเส้นทางไปยังฐานข้อมูลเว็บไซต์ถูกเปิดเผยเนื่องจากข้อผิดพลาดของโปรแกรม ดังนั้นจะป้องกันสิ่งนี้ไม่ให้เกิดขึ้นได้อย่างไร เราสามารถเพิ่มการแมปเพิ่มเติมของ mdb ดังที่แสดงด้านล่าง:
เปิด IIS และเพิ่มการแมป MDB เพื่อให้สามารถแยกวิเคราะห์ mdb เป็นไฟล์อื่นที่ไม่สามารถดาวน์โหลดได้: "คุณสมบัติ IIS" - "Home Directory" - "การกำหนดค่า" - "การแมป" - "ส่วนขยายแอปพลิเคชัน" และเพิ่มไฟล์ .mdb เพื่อใช้การแยกวิเคราะห์ คุณสามารถเลือกไฟล์ที่ใช้ในการแยกวิเคราะห์ได้ด้วยตัวเอง ตราบเท่าที่ไฟล์ฐานข้อมูลไม่สามารถเข้าถึงได้
ข้อดีของสิ่งนี้คือ: 1. ไฟล์ฐานข้อมูลในรูปแบบส่วนต่อท้าย mdb จะไม่ถูกดาวน์โหลดอย่างแน่นอน 2. ใช้ได้กับไฟล์ mdb ทั้งหมดบนเซิร์ฟเวอร์ ซึ่งมีประโยชน์มากสำหรับผู้ดูแลระบบโฮสต์เสมือน
2. ป้องกันการอัพโหลด
สำหรับการกำหนดค่าข้างต้น หากคุณใช้ฐานข้อมูล MSSQL ตราบใดที่มีจุดฉีด คุณยังคงใช้เครื่องมือฉีดเพื่อเดาฐานข้อมูลได้ หากไม่มีการรับรองความถูกต้องเลยเมื่ออัปโหลดไฟล์ เราสามารถอัปโหลด asp Trojan ได้โดยตรงเพื่อรับ webshell ของเซิร์ฟเวอร์
เกี่ยวกับการอัพโหลด เราสามารถสรุปได้ดังนี้: ไดเร็กทอรีที่สามารถอัพโหลดได้จะไม่ได้รับอนุญาตให้ดำเนินการ และไดเร็กทอรีที่สามารถดำเนินการได้จะไม่ได้รับอนุญาตให้อัพโหลด โปรแกรมเว็บนั้นดำเนินการโดยผู้ใช้ IIS เราเพียงแต่ต้องให้สิทธิ์แก่ผู้ใช้ IIS ในการเขียนไปยังไดเร็กทอรีอัพโหลดเฉพาะ จากนั้นลบสิทธิ์การเรียกใช้สคริปต์ออกจากไดเร็กทอรีนี้เพื่อป้องกันไม่ให้ผู้บุกรุกรับ webshell ผ่านการอัพโหลด วิธีการกำหนดค่า: ขั้นแรก ในไดเร็กทอรีเว็บ IIS ให้เปิดแท็บการอนุญาต และให้สิทธิ์แก่ผู้ใช้ IIS ในการอ่านและแสดงรายการสิทธิ์ไดเร็กทอรีเท่านั้น จากนั้นป้อนไดเร็กทอรีที่บันทึกไฟล์ที่อัปโหลดและจัดเก็บฐานข้อมูล เพิ่มสิทธิ์ในการเขียนให้กับผู้ใช้ IIS และสุดท้าย เพียงเปลี่ยน "Pure Script" เป็น "None" ในตัวเลือก "Properties"-"Execution Permission" ของทั้งสองไดเร็กทอรีนี้ ดูภาพด้านล่าง:
การแจ้งเตือนครั้งสุดท้าย เมื่อคุณตั้งค่าการอนุญาตข้างต้น คุณต้องใส่ใจกับการตั้งค่าการสืบทอดของไดเร็กทอรีหลัก หลีกเลี่ยงการตั้งค่าโดยเปล่าประโยชน์
[ตัดหน้า]
3. การฉีด MSSQL
สำหรับการป้องกันฐานข้อมูล MSSQL เราบอกว่าเราต้องเริ่มต้นด้วยบัญชีการเชื่อมต่อฐานข้อมูลก่อน อย่าใช้บัญชี SA สำหรับฐานข้อมูล การใช้บัญชี SA เพื่อเชื่อมต่อกับฐานข้อมูลถือเป็นหายนะสำหรับเซิร์ฟเวอร์ โดยทั่วไป คุณสามารถใช้บัญชีสิทธิ์ DB_OWNER เพื่อเชื่อมต่อกับฐานข้อมูลได้ หากสามารถทำงานได้ตามปกติ จะปลอดภัยที่สุดหากใช้ผู้ใช้สาธารณะ หลังจากตั้งค่าการอนุญาต dbo เพื่อเชื่อมต่อกับฐานข้อมูล โดยทั่วไปแล้วผู้บุกรุกสามารถรับ webshell ได้โดยการเดาชื่อผู้ใช้และรหัสผ่านหรือการสำรองข้อมูลส่วนต่างเท่านั้น สำหรับแบบแรก เราสามารถป้องกันได้โดยการเข้ารหัสและแก้ไขที่อยู่เข้าสู่ระบบเริ่มต้นของพื้นหลังการจัดการ . สำหรับการสำรองข้อมูลส่วนต่าง เรารู้ว่าเงื่อนไขคือการมีสิทธิ์ในการสำรองข้อมูลและทราบไดเร็กทอรีของเว็บ การค้นหาไดเร็กทอรีเว็บมักจะทำได้โดยการสำรวจไดเร็กทอรีเพื่อค้นหาหรืออ่านรีจิสทรีโดยตรง หนึ่งในสองวิธีนี้ใช้สองขั้นตอนการจัดเก็บแบบขยาย xp_regread และ xp_dirtree เราจำเป็นต้องลบร้านค้าขยายทั้งสองนี้เท่านั้น แน่นอนว่าเราสามารถลบไฟล์ dll ที่เกี่ยวข้องพร้อมกันได้
แต่หากไดเร็กทอรีเว็บถูกเปิดเผยเนื่องจากข้อผิดพลาดของโปรแกรม คุณจะทำอะไรไม่ได้ ดังนั้นเราจึงจำเป็นต้องทำให้สิทธิ์ของบัญชีลดลงและไม่สามารถดำเนินการสำรองข้อมูลให้เสร็จสิ้นได้ การดำเนินการเฉพาะมีดังนี้: ในคุณสมบัติของบัญชีนี้ - ตัวเลือกการเข้าถึงฐานข้อมูล คุณจะต้องเลือกฐานข้อมูลที่เกี่ยวข้องและให้สิทธิ์ DBO แก่มัน ห้ามใช้งานฐานข้อมูลอื่น จากนั้นไปที่database-properties-permissions เพื่อลบการสำรองข้อมูลและสิทธิ์บันทึกการสำรองข้อมูลของผู้ใช้ เพื่อให้ผู้บุกรุกไม่สามารถรับ webshell ผ่านการสำรองข้อมูลส่วนต่างได้
[ตัดหน้า] 3. การฉีด MSSQL
สำหรับการป้องกันฐานข้อมูล MSSQL เราบอกว่าเราต้องเริ่มต้นด้วยบัญชีการเชื่อมต่อฐานข้อมูลก่อน อย่าใช้บัญชี SA สำหรับฐานข้อมูล การใช้บัญชี SA เพื่อเชื่อมต่อกับฐานข้อมูลถือเป็นหายนะสำหรับเซิร์ฟเวอร์ โดยทั่วไป คุณสามารถใช้บัญชีสิทธิ์ DB_OWNER เพื่อเชื่อมต่อกับฐานข้อมูลได้ หากสามารถทำงานได้ตามปกติ จะปลอดภัยที่สุดหากใช้ผู้ใช้สาธารณะ หลังจากตั้งค่าการอนุญาต dbo เพื่อเชื่อมต่อกับฐานข้อมูล โดยทั่วไปแล้วผู้บุกรุกสามารถรับ webshell ได้โดยการเดาชื่อผู้ใช้และรหัสผ่านหรือการสำรองข้อมูลส่วนต่างเท่านั้น สำหรับแบบแรก เราสามารถป้องกันได้โดยการเข้ารหัสและแก้ไขที่อยู่เข้าสู่ระบบเริ่มต้นของพื้นหลังการจัดการ . สำหรับการสำรองข้อมูลส่วนต่าง เรารู้ว่าเงื่อนไขคือการมีสิทธิ์ในการสำรองข้อมูลและทราบไดเร็กทอรีของเว็บ การค้นหาไดเร็กทอรีเว็บมักจะทำได้โดยการสำรวจไดเร็กทอรีเพื่อค้นหาหรืออ่านรีจิสทรีโดยตรง หนึ่งในสองวิธีนี้ใช้สองขั้นตอนการจัดเก็บแบบขยาย xp_regread และ xp_dirtree เราจำเป็นต้องลบร้านค้าขยายทั้งสองนี้เท่านั้น แน่นอนว่าเราสามารถลบไฟล์ dll ที่เกี่ยวข้องพร้อมกันได้
แต่หากไดเร็กทอรีเว็บถูกเปิดเผยเนื่องจากข้อผิดพลาดของโปรแกรม คุณจะทำอะไรไม่ได้ ดังนั้นเราจึงจำเป็นต้องทำให้สิทธิ์ของบัญชีลดลงและไม่สามารถดำเนินการสำรองข้อมูลให้เสร็จสิ้นได้ การดำเนินการเฉพาะมีดังนี้: ในคุณสมบัติของบัญชีนี้ - ตัวเลือกการเข้าถึงฐานข้อมูล คุณจะต้องเลือกฐานข้อมูลที่เกี่ยวข้องและให้สิทธิ์ DBO แก่มัน ห้ามใช้งานฐานข้อมูลอื่น จากนั้นไปที่database-properties-permissions เพื่อลบการสำรองข้อมูลและสิทธิ์บันทึกการสำรองข้อมูลของผู้ใช้ เพื่อให้ผู้บุกรุกไม่สามารถรับ webshell ผ่านการสำรองข้อมูลส่วนต่างได้