<![CDATA[Messages posted by "hocquantrimang"]]> /hvaonline/posts/listByUser/280907.html JForum - http://www.jforum.net Hướng dẫn khai thác SQL Injection đối với MySQL /hvaonline/posts/preList/25210/278988.html#278988 /hvaonline/posts/preList/25210/278988.html#278988 GMT Re: Khai thác và phòng chống file upload trong PHP Web Applications

seamoun wrote:
4) Trường hợp kiểm tra phần mở rộng của file trên server với đoạn mã sau: Code:
<?php

$blacklist = array(".php", ".phtml");

foreach ($blacklist as $item) {
   if(preg_match("/$item\$/i", $_FILES['userfile']['name'])) {
       echo "We do not allow uploading PHP files\n";
       exit;
   }
}

$uploaddir = 'uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "File is valid, and was successfully uploaded.\n";
} else {
    echo "File uploading failed.\n";
}
?>
Như vậy với đoạn mã người lập trình đã ngăn chặn kẻ tấn công không thể upload file *.php lên server. Tuy nhiên trường hợp này cũng chưa an toàn với những server mà có cấu hình file *.gif, *.jpg cho phép xử lý PHP. Do vậy kẻ tấn công vẫn upload file gif, jpg lên server nhưng có chèn thêm mã độc vào. III. CÁCH PHÒNG CHỐNG Mấu chốt giải quyết vấn để làm thế nào an toàn trong file upload đó là lưu giữ file upload lên một nơi mà không thể truy cập bởi user thông qua URL. Điều này có thể thực hiện được bằng cách lưu file upload bên ngoài thưc mục webroot hoặc trên web server nhưng từ chối truy cập đến thư mục đó. Tài liệu tham khảo: Secure File Upload In PHP Web Applications - ScanIt Công cụ sử dụng: Burp Suite http://portswigger.net/
nói thật là bác up bài này, có khuyến cáo sợ người khác sử dụng sai mục đích, nhưng theo em là bác đã lo xa quá thừa, bởi clip bác làm quá ngắn gọn, ko có file word hướng dẫn kèm theo, web demo đã có sẵn do bác tạo ra , tất cả mọi thứ đều chung chung và quá mơ hồ đối với newbie, mà em ko hiểu bác viết bài này để giúp các newbei như em, hay là để nói với những người đã biết nữa, em thấy để xem clip của bác mà hiểu thì chắc là người ta phải biết hack thông qua lỗi upshell và hiểu sâu sắc rồi , mà những cái loại ý thì chắc chả buồn down clip của bác làm cái gì nữa nhỉ, người đọc topic của bác là những newbie mới đọc thôi, em có chút góp ý như vậy có gì không phải thì cũng thôi, tính em là em nói thẳng, làm gì cũng phải hướng đến người dùng, đã ko làm thì thôi, chứ đã có ý giới thiệu cho người ta biết thì nên làm sao cho nó rõ ràng rành mạch, còn sợ mất nghề tốt nhất ko up. sau đây em xin viết ra 1 vài thắc cmn mắc của em sau khi down tạm 1 cái clip của bác về xem, em là newbie nhé , có thể khó tránh khỏi vài lỗi cơ bản, nhưng thế mới là newbie : 1/ web bác demo là web nào 2/ web bác tấn công là web nào 3/ cơ chế như thế nào 4/ web của bác do bác tạo ra nên bác có sẵn file shell trên đó, vậy newbie thì dùng cái gì để thực hành 5/ 1 trang web bình thường tìm mãi không thấy chỗ upload cái gì đó lên, vậy mà trong csdl của nó vẫn có file shell, vậy có phải rõ ràng web đó do chính người design đưa file shell vào csdl để làm mẫu hướng dẫn hay ko ? vì nếu csdl ko có sắn thì gõ link ko bao h ra, như 1 web site đơn giản gõ vào nó như mọi web khác, nhưng có thêm đuôi /wp-includes/css/byg.php chẳng hạn thì nó lại sẽ ra 1 link với giao diện hoàn toàn khác và đã có sắn shell trên đó. =>vấn đề newbie đặt ra là : làm thế nào để tìm được 1 web có thể cho upshell, phải có tools chứ, ko lẽ google để nghĩ ra vài cái tên lạ lạ thử tét sao :v và rồi khi đã upshell thành công thì tiến hành chạy shell đó như thế nào. newbie thì cần biết những cái đó đó. còn bác viết bài này đối với những người xem là newbie = con số 0 tròn chĩnh . ]]>
/hvaonline/posts/preList/25298/278987.html#278987 /hvaonline/posts/preList/25298/278987.html#278987 GMT