lắp mạng cáp quang fpt thái nguyên

Khai thác và phòng chống file upload trong PHP Web Applications

I. GIỚI THIỆU Ứng dụng Web hỗ trợ cho phép người sử dụng thực hiện upload file lên server hiện tại có rất nhiều. Ví dụ như upload image(*.gi...

I. GIỚI THIỆU


Ứng dụng Web hỗ trợ cho phép người sử dụng thực hiện upload file lên server hiện tại có rất nhiều. Ví dụ như upload image(*.gif, *.jpg), *.pdf, *.doc, ...
Trong bài này seamoun sẽ trình bày một số lỗi khi lập trình file upload mà kẻ xấu có thể lợi dụng để upload những mã độc lên server. Những phương thức khai thác mà seamoun trình bày chỉ mang tính tham khảo không ủng hộ các bạn khai thác đối với những server bị mắc lỗi.

II. KHAI THÁC LỖI UPLOAD FILE
1) Trường hợp sử dụng JavaScript để kiểm tra file upload
Giả sử ta có kịch bản gồm 2 file như sau:
PHP:
<html>
<title>Secure file upload PHP Web Applications</title>
<head>
<script language=javascript>
function chkFileExtension()
{
var str=document.upload.userfile.value;
var ext=str.substring(str.length,str.length-3);
if ( ext != "gif")
{
alert("File is invalid");
return false;
}
else
{
return true;
};
}
</script>
</head>
<body>
<form name="upload" action="upload1.php" method="POST" ENCTYPE="multipart/form-data" onSubmit="return chkFileExtension()">
Select the file to upload: <input type="file" name="userfile">
<input type="submit" name="upload" value="upload">
</form>
</body>
</html>




PHP:
<?php

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

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File was successfully uploaded.\n";
} else {
echo "File uploading failed.\n";
}
?>

Ví dụ trên cho thấy người lập trình kiểm tra phần mở rộng file cho phép file upload bằng cách sử dụng một đoạn mã Javascript trong file upload1.html. Chỉ chấp nhận những file có phần mở rộng là *.gif thì mới được phép upload, cách này một kẻ tấn công dễ dàng vượt qua bằng cách sử dụng một intercepting proxy hoặc có thể viết một đoạn mã bằng Perl, Python,... mà đệ trình trực tiếp đến file upload1.php với những tham số cần thiết.

Trong demo sau seamoun sử dụng Burp Suite là một tool rất mạnh khi thực hiện Web Application. Có thể download tại :http://portswigger.net/

2) Trường hợp không sử dụng JavaScript để kiểm tra mà thực hiện kiểm tra trên server với đoạn mã sau:

PHP:
<?php

if($_FILES['userfile']['type'] != "image/gif") {
echo "Sorry, we only allow uploading GIF images";
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";
}

?>
Với đoạn mã trên người lập trình hy vọng ngăn chặn được kẻ tấn công upload file độc hại lên server bằng cách sử dụng kiểm tra type=image/gif. Tức là kiểu file cho phép upload ở đây chỉ có thể là file gif. Điều này cũng không an toàn bởi vì kẻ tấn công có thể thay đổi kiểu type=image/gif cho phù hợp với sự kiểm tra của đoạn mã trên nhưng nội dung vẫn chứa mã độc.
Sau đây là demo thứ 2 khai thác lỗi file upload trong PHP WebApp

3) Trường hợp kiểm tra mime - kiểm tra phần nội dung của file upload với đoạn mã sau:

PHP:
<?php

$imageinfo = getimagesize($_FILES['userfile']['tmp_name']);

if($imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg') {
echo "Sorry, we only accept GIF and JPEG images\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 liệu có cải thiện hơn ? An toàn hơn ? Trả lời: có cái thiện hơn nhưng vẫn chưa an toàn. Mặc dù với đoạn mã trên kẻ tấn công không thực hiện thành công như ở Lab2, khi thay đổi type=image/gif vì lúc này người lập trình đã kiểm tra nội dung file upload có đúng là gif hay không ?. Nhưng nếu kẻ tấn công sử dụng một file gif và chèn mã độc vào thì thế nào ? Khai thác sẽ thành công !!!!

Sau đây là demo thứ 3 khai thác lỗi file upload trong PHP WebApp

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:

PHP:
<?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/)
Ads Here
Internet - Truyền hình -Camera FPT
0975.166.103 - 0941.468.700
Website: www.fptthainguyen.org
www.cameragiamsatthainguyen.com
FanPage: FB.com/truyenhinhFPTThaiNguyen
Hotline: 0975166103
Tên

1st,2,8051,3,AAG,1,ADS,2,ADSL,2,AIO,1,Alarm,1,Altcoin,1,AMD,2,Amplifier,4,Android,2,Android TV,3,AOE,1,APG,1,APK,2,ASIC,2,ATX,2,AVG,3,Ấp trứng,2,Bàn phím cơ,1,Bản quyền,1,baner,3,Bảng giá,5,Banggood,1,Báo giá,1,Báo hỏng,1,Bảo Mật,4,BCC,1,BCN,1,Binance,1,Bitcoin,5,Bitmex,1,Bittrex,1,BIX,1,blogger,2,BNB,1,Bóng đá,2,bootrom,1,BTC,4,Build PC,1,ByteCoin,1,cable,1,Cài đặt,3,Cài Win,2,Camera,6,Camera giám sát,3,camera IP,2,Cáp quang,9,Cáp quang Cá nhân,2,Cáp quang Doanh nghiệp,1,Cat5e,1,Cấu hình máy,1,CCTV,1,Chống nước,1,Clicksense,2,Cloud,1,Cloud camera,2,Code,8,Code FPT,1,Code web,8,coin,5,Combo,1,Controller,1,Covid-19,9,Công nghệ mới,1,Cryptocurrency,26,Cung hoàng đạo,1,DAG,1,Dây mạng,1,DDos,39,DEEP WEB,3,Dịch vụ FPT,4,DIY,8,Đại Từ,2,Đánh giá,5,Đào coin,6,Đâu là đúng,5,Địa chỉ,1,Điện thoại,2,Điều khiển giọng nói,1,Đồng hồ,1,Electronics,1,English,2,epon,1,ETC,1,ETH,6,Facebook,10,featured,1,Foxy,1,fpt,12,FPT camera,7,FPT internet,3,FPT Play,2,FPT Play Box,32,FPT Playbox,3,FPT Telecom,5,FPT Thái Nguyên,6,FPT TV,1,FPT TV 4K,1,FPT TVOnly,1,fshare,1,G-97D2,3,G97RG6M1,1,Game,2,Game gear,1,Game PC,2,getlink,1,Ghost,2,Ghost Windows 10,2,Ghost Windows 7,7,Gói cá nhân,2,Gói cước,2,Gói cước FPT,8,Gói Doanh Nghiệp,4,Gói kênh FPT Play,1,Gói max,1,GPON,3,GPU,2,Hà Nội,1,Hacker,1,Hàn Quốc,1,HBO,1,HG531,2,Hi FPT,3,HiFPT,1,Học Online,1,Hot,15,houbi,3,HT,1,HTC,1,Hướng dẫn,10,Hướng dẫn FPT,8,IC555,4,ICO,3,Ifan,1,Infographic,2,internet,8,Inverter,1,IP tĩnh,1,IPTV,1,ISO,1,K+,1,KCS,1,Key,1,keypad,1,Kho Tut,59,Khuyến mại,10,kích sóng wifi,1,Kiếm tiền trên mạng,1,Kiến thức,2,Kinh nghiệm,1,Lan,1,Laptop,1,Lắp mạng,4,LED,6,leech link,1,Li-Ion,1,Light,1,LM386,1,Love,2,Lừa đảo,1,Ma kết,1,Mạch Audio,1,Mạch điện tử,1,Mạch sạc,5,Mainboard,1,Mạng chậm,1,Mạng internet,3,Mạng LAN,3,Máy ảnh,1,Máy tính,3,Mesh,2,Meter,1,Miband,3,Microsoft,1,Minning,4,MMO,3,Mobile,3,Modem,17,Mở két,1,Music,1,Netflix,1,News,7,Ngoại ngữ,1,Nguồn,3,Nvidia,1,offer,1,Office,2,Onedrive,1,Online,1,OS,2,Others,1,Paypal,1,PC,1,PCB,1,PDF,1,Phấn Mễ,1,Phần mềm,2,Phim,1,Phòng nét,1,Photo,1,Phổ Yên,1,Phú Lương,1,Phụ nữ,1,PIC,2,Pin - Ắc qui,4,proxy,1,PUBG,1,Python,4,Remitano,3,Repeater,1,Review,4,Review FPT,2,Root,1,Router,3,Rút gọn link,1,sạc dụng phòng,1,Sạc điện thoại,1,Sàn giao dịch,2,Scam,3,Sensor,2,setup,2,smarthome,1,Softwares,5,sonoff,1,SQL,3,Super 22,2,Tài liệu,178,Tenda Nova MW3,1,Thái Nguyên,19,Thẻ visa,1,Thể thao,1,Thi công,1,Thơ thẩn,3,Thủ thuật,86,Tiền bạc,1,Tiền điện tử,3,Tin FPT,5,Tin tức,41,Tình yêu,4,Tivi box,1,Tivi Gold,1,TNUT,1,Tool,2,Tool đào coin,6,Tools,45,Tổng đài,1,TP Link,1,TP-Link,3,trade coin,8,Trading,1,Transitsor,2,Trâu cày,2,Truyện,3,Truyền hình,4,Truyền hình FPT,32,Tuyển dụng,4,Tư vấn,4,TV Box,3,UG,15,USB,1,USDT,2,VGA,1,Video,1,Viettel,2,Viễn thông,1,Vinaphone,1,Virus,11,VPN,1,Web,1,wifi,18,wifi 6,1,Wifi Maketting,1,Window XP,3,Windows,4,Windows 10,6,Windows 10 Mobile,1,Windows 7,2,Xiaomi,4,XMR,2,Youtube,1,Zcash,1,Zec,1,
ltr
item
Tổng đài lắp mạng FPT Thái Nguyên 0975166103 |Cáp quang | Wifi | Truyền hình FPT| Camera Cloud: Khai thác và phòng chống file upload trong PHP Web Applications
Khai thác và phòng chống file upload trong PHP Web Applications
https://scontent-hkg3-1.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/11703042_1682920998603427_4633545776062351885_n.jpg?oh=0434c3c3899c5023c05aa82bd0d4efbf&oe=5612D055
Tổng đài lắp mạng FPT Thái Nguyên 0975166103 |Cáp quang | Wifi | Truyền hình FPT| Camera Cloud
https://www.xn--fptthinguyn-o7a6j.vn/2015/07/khai-thac-va-phong-chong-file-upload.html
https://www.xn--fptthinguyn-o7a6j.vn/
https://www.xn--fptthinguyn-o7a6j.vn/
https://www.xn--fptthinguyn-o7a6j.vn/2015/07/khai-thac-va-phong-chong-file-upload.html
true
8240370674769512952
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS CONTENT IS PREMIUM Please share to unlock Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy