การทดสอบความปลอดภัย - การเรียกใช้ไฟล์ที่เป็นอันตราย

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

ตัวอย่าง

ตัวอย่างคลาสสิกบางส่วน ได้แก่ -

  • อัปโหลดไฟล์. 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