การทดสอบความปลอดภัย - การเรียกใช้ไฟล์ที่เป็นอันตราย
นักพัฒนามักจะใช้หรือเชื่อมต่ออินพุตที่อาจมีช่องโหว่กับไฟล์โดยตรงหรือถือว่าไฟล์อินพุตเป็นของแท้ เมื่อข้อมูลไม่ได้รับการตรวจสอบอย่างถูกต้องอาจทำให้เนื้อหาที่มีช่องโหว่ถูกประมวลผลหรือเรียกใช้โดยเว็บเซิร์ฟเวอร์
ตัวอย่าง
ตัวอย่างคลาสสิกบางส่วน ได้แก่ -
- อัปโหลดไฟล์. jsp ไปยังแผนผังเว็บ
- อัปโหลด. gif เพื่อปรับขนาด
- อัปโหลดไฟล์ขนาดใหญ่
- อัปโหลดไฟล์ที่มีแท็ก
- อัปโหลดไฟล์. exe ไปยังแผนผังเว็บ
Hands ON
Step 1- เปิด WebGoat และไปที่ส่วนการเรียกใช้ไฟล์ที่เป็นอันตราย ภาพรวมของสถานการณ์ได้รับด้านล่าง -
Step 2 - เพื่อให้บทเรียนนี้สมบูรณ์เราจำเป็นต้องอัปโหลด guest.txt ในตำแหน่งดังกล่าวข้างต้น
Step 3- ให้เราสร้างไฟล์ jsp เพื่อให้ไฟล์ guest.txt ถูกสร้างขึ้นเมื่อเรียกใช้งาน jsp การตั้งชื่อของ jsp ไม่มีบทบาทในบริบทนี้เนื่องจากเรากำลังเรียกใช้เนื้อหาของไฟล์ jsp
<HTML>
<% java.io.File file = new
java.io.File("C:\\Users\\username$\\.extract\\webapps\\WebGoat\\mfe_target\\guest.txt");
file.createNewFile(); %>
</HTML>
Step 4- ตอนนี้อัปโหลดไฟล์ jsp และคัดลอกตำแหน่งลิงก์ที่เหมือนกันหลังจากอัปโหลด การอัปโหลดคาดว่าจะเป็นรูปภาพ แต่เรากำลังอัปโหลด jsp
Step 5 - เมื่อไปที่ไฟล์ jsp จะไม่มีข้อความใด ๆ ถึงผู้ใช้
Step 6 - ตอนนี้รีเฟรชเซสชันที่คุณอัปโหลดไฟล์ jsp แล้วคุณจะได้รับข้อความว่า "* ยินดีด้วยคุณเรียนจบบทเรียนเรียบร้อยแล้ว"
กลไกการป้องกัน
- รักษาความปลอดภัยเว็บไซต์โดยใช้สิทธิ์ของเว็บไซต์
- ใช้มาตรการตอบโต้เพื่อความปลอดภัยของเว็บแอปพลิเคชัน
- ทำความเข้าใจบัญชีผู้ใช้และกลุ่มในตัวใน IIS 7.0