ARBITRARY FILE UPLOAD#2
ARBITRARY FILE UPLOAD#2
หลังจากที่เราทราบกันแล้วว่าการ upload นั้นมีความเป็นไปได้ที่จะถูกนำไปใช้ในทางที่ผิด ซึ่งตรงจุดนั้นทำให้ผู้โจมตีสามารถ upload backdoor ได้ มาในหัวข้อนี้จะพยายามทำการ filter ในการ upload เพิ่มเติม โดยเขียนเป็น
// File information
$uploaded_name = $_FILES['uploaded']['name'];
$uploaded_type = $_FILES['uploaded']['type'];
$uploaded_size = $_FILES['uploaded']['size'];
if( ( $uploaded_type == "image/jpeg" || $uploaded_type == "image/png" ) && ( $uploaded_size < 100000 ) ) {
โดยเป็นการตรวจสอบว่าไฟล์ที่ upload มานั้นเป็น type image/jpeg, image/png และมีไฟล์ไม่มากกว่า 100000 byte หรือไม่
ถ้าย้อนกลับไปที่ payload ที่เราอัพโหลดกันใน fileupload#1 จะพบว่า Content-Type ที่เรา upload shell.php คือ application/x-php
ซึ่งหาก upload โดยตรงจะพบว่ามันไม่สามารถ upload ได้เพราะ Content-Type ที่ upload ขึ้นไป กับที่มีตรวจสอบนั้นไม่ตรงกัน
ถ้าย้อนกลับไปที่ payload ที่เราอัพโหลดกันใน fileupload#1 จะพบว่า Content-Type ที่เรา upload shell.php คือ application/x-php
Comments
Post a Comment