PHP Code Injection

bWAPP Tutorials - PHP Code Injection

PHP Code Injection เป็นช่องโหว่ที่อนุญาตให้ Client ส่ง Code หรือคำสั่ง PHP ในรูปของ Query string ได้


RIPS Scan

ทดสอบนำไฟล์ phpi.php ไป scan หาข่องโหว่โดยใช้เครื่องมือ RIPS ผลลัพธ์จากการ scan จะพบว่ามีช่องโหว่ในเรื่องของ Code Execution ในบรรทัดที่ 90 ของไฟล์

วิธีการทดสอบช่องโหว่ PHP Code Injection ใน bWAPP

(จากตัวอย่าง ip ที่ใช้ในการทดสอบจะเป็น 192.168.126.129 เนื่องจากทำการทดสอบใน VMware)

  1. เข้าไปที่ url http://192.168.126.129/bWAPP/phpi.php

  2. คลิกที่คำว่า message ระบบจะแสดงผลคำว่า test ออกมาที่บรรทัดล่าง ดังรูปตัวอย่างด้านล่าง

  3. ทดสอบโดยการ Injection ผ่านทาง Query string จะเห็นว่าสามารถส่งคำสั่ง PHP เข้าไปได้ ในที่นี้ทดสอบด้วยคำสั่ง phpinfo โดยการเพิ่ม ;phpinfo() ต่อท้าย url

วิธีการปิดช่องโหว่ PHP Code Injection

  1. จากตัวอย่างไฟล์ phpi.php

  2. ทำการแก้ไขคำสั่งบรรทัดที่ 90 โดยใช้ function htmlspecialchars() ของภาษา PHP ในการช่วยแปลงอักขระพิเศษให้ในอยู่ในรูปแบบของ HTML string แล้ว Save เป็นไฟล์ใหม่ชื่อ phpi_fix.php เพื่อทดสอบบน Server

  3. ทดสอบ Scan ไฟล์ phpi_fix.php ด้วย RIPS อีกครั้ง จะพบว่าช่องโหว่ Code Execution ได้หายไปแล้ว

  4. ทดสอบ Injection ที่หน้าเว็บ จะพบว่าคำสั่ง PHP ที่ส่งเข้าไปจะถูกแปลงเป็นข้อความธรรมดา


Members

  • Athiporn Phumnicom
  • Phureephat Sottiratanapan

AKA

BlackDragon