banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận thâm nhập Khai thác và phòng chống file upload trong PHP Web Applications  XML
  [Article]   Khai thác và phòng chống file upload trong PHP Web Applications 28/09/2008 04:31:46 (+0700) | #1 | 153174
seamoun
Advisor

Joined: 04/01/2002 14:05:10
Messages: 357
Offline
[Profile] [PM]
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:
Code:
<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>





Code:
<?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/
--vickigroup.com--
[Up] [Print Copy]
  [Question]   Khai thác và phòng chống file upload trong PHP Web Applications - 2 28/09/2008 04:34:30 (+0700) | #2 | 153175
seamoun
Advisor

Joined: 04/01/2002 14:05:10
Messages: 357
Offline
[Profile] [PM]
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:

Code:
<?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
--vickigroup.com--
[Up] [Print Copy]
  [Question]   Khai thác và phòng chống file upload trong PHP Web Applications - 3 28/09/2008 04:37:36 (+0700) | #3 | 153177
seamoun
Advisor

Joined: 04/01/2002 14:05:10
Messages: 357
Offline
[Profile] [PM]
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:

Code:
<?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
--vickigroup.com--
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 28/09/2008 04:40:41 (+0700) | #4 | 153178
seamoun
Advisor

Joined: 04/01/2002 14:05:10
Messages: 357
Offline
[Profile] [PM]
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/)
--vickigroup.com--
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 28/09/2008 06:30:41 (+0700) | #5 | 153189
mrro
Administrator

Joined: 27/12/2001 05:07:00
Messages: 745
Offline
[Profile] [PM]
Hay lém anh seamoun. Có một hướng khai thác liên quan đến tính năng upload file trong web-application (không riêng gì PHP) mới được công bố ở hội thảo BlackHat 2008 vừa rồi là GIFAR. Tóm tắt là kết hợp file GIF với file JAR lại để vượt qua same-origin policy của trình duyệt.

Xem thêm http://heasman.blogspot.com/2008/08/on-gifars.html và http://www.gnucitizen.org/blog/more-on-gifars-and-other-dangerous-attacks/

Bà con thử bình luận về cái GIFAR này xem.

--m
http://tinsang.net

TetCon 2013 http://tetcon.org

Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 28/09/2008 13:09:39 (+0700) | #6 | 153228
[Avatar]
rickb
Reseacher

Joined: 27/01/2007 17:47:27
Messages: 200
Offline
[Profile] [PM] [Yahoo!]
@seamoun : Hình như anh chưa upload các demo phải ko nhỉ smilie

Thân,
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 28/09/2008 21:40:22 (+0700) | #7 | 153245
seamoun
Advisor

Joined: 04/01/2002 14:05:10
Messages: 357
Offline
[Profile] [PM]

rickb wrote:
@seamoun : Hình như anh chưa upload các demo phải ko nhỉ smilie

Thân, 


Các demo cho từng phần seamoun đã attach rồi mà. Login vào thấy file OK mà.

mrro wrote:
Hay lém anh seamoun. Có một hướng khai thác liên quan đến tính năng upload file trong web-application (không riêng gì PHP) mới được công bố ở hội thảo BlackHat 2008 vừa rồi là GIFAR. Tóm tắt là kết hợp file GIF với file JAR lại để vượt qua same-origin policy của trình duyệt.

Xem thêm http://heasman.blogspot.com/2008/08/on-gifars.html http://www.gnucitizen.org/blog/more-on-gifars-and-other-dangerous-attacks/

Bà con thử bình luận về cái GIFAR này xem. 


Anh cũng đang đọc bài viết trong link em gửi. Thanks
--vickigroup.com--
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 02/10/2008 01:55:56 (+0700) | #8 | 153559
flier_vn
Member

[Minus]    0    [Plus]
Joined: 15/07/2008 01:13:39
Messages: 28
Offline
[Profile] [PM]
Cho em hõi xí về GIFAR này :

Khi đã tích hợp 2 file thành công, thì khi duyệt file GIFAR.gif thì applet java có được thực thi ko ? hay phải nhờ đến tag html <applet code="xxx.class" archive="GIFAR.gif"> ?

Và lỗi này chỉ thực thi được ở phía client ( và client phải có cài đặt java ) chứ ko tác động được đến webserver ?

Đây là sự kết hợp hoàn hảo với lỗi XSS ?

Thx trước ạh smilie
MerChant.Vn - Website học hỏi, trao đổi thảo luận về kinh doanh.

DànhChoBé.VN - Chuyên bán đồ chơi chất lượng, thương hiệu Fisher price, Disney, Thomas & Friends
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 02/10/2008 02:25:28 (+0700) | #9 | 153563
nbthanh
HVA Friend

Joined: 21/12/2001 14:51:51
Messages: 429
Offline
[Profile] [PM]

flier_vn wrote:
Cho em hõi xí về GIFAR này :

Khi đã tích hợp 2 file thành công, thì khi duyệt file GIFAR.gif thì applet java có được thực thi ko ? hay phải nhờ đến tag html <applet code="xxx.class" archive="GIFAR.gif"> ?

Và lỗi này chỉ thực thi được ở phía client ( và client phải có cài đặt java ) chứ ko tác động được đến webserver ?

Đây là sự kết hợp hoàn hảo với lỗi XSS ?

Thx trước ạh smilie 

Theo tôi biết thì bạn phải dùng đến cái <applet ...="GIFAR.gif">.
Mới nhìn thì nó sẽ chạy code ở client, và có vẻ như không tác động đến server, nhưng sự nguy hại của nó là ở chỗ sau:

file GIFAR.gif này được upload lên đâu đó, ví dụ HVA smilie

HTML file: <applet ...="http://hva/upload/GIFAR.gif">
HTML file này có thể nằm ở 1 chỗ khác và nó có thể load & execute file GIFAR.gif được load từ HVA.
Tuy được load từ HVA về máy của user và chạy ở client, nhưng file GIFAR.gif này có thể tương tác được với server của HVA (vì codebase là nó được load từ trên HVA về) và lấy được cookie của forum HVA của user.

Nhưng lấy cookie được chưa chắc đã nguy hại vì:
- user đó có thể không là member của HVA, chưa từng vào HVA --> cookie nà empty
- cơ chế bảo mật của forum HVA làm cho việc lấy được cookie cũng không khai thác được gì nhiều.

Ở đây vấn đề nguy hại hơn là đoạn mã java chứa trong file GIFAR.gif có thể tương tác được với server HVA trực tiếp qua đường socket. Điều này có thể được lợi dụng để mượn tay user đó DoS (lúc này sẽ là DDoS) HVA smilie
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 02/10/2008 02:35:57 (+0700) | #10 | 153565
flier_vn
Member

[Minus]    0    [Plus]
Joined: 15/07/2008 01:13:39
Messages: 28
Offline
[Profile] [PM]
àh :d Vậy đã hiểu smilie

Nếu vậy thì chỉ cần upload file GIFAR.gif lên webserver victim rồi tự tạo 1 form trên máy mình rồi cho load... vậy có nghĩa là applet đã thực thi trên webserver ! Nhưng theo em biết thì nó lại ko tác động được đến HDD... vậy chỉ có thể dừng lại ở bước lấy các thông tin browser thôi àh ??

MerChant.Vn - Website học hỏi, trao đổi thảo luận về kinh doanh.

DànhChoBé.VN - Chuyên bán đồ chơi chất lượng, thương hiệu Fisher price, Disney, Thomas & Friends
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 02/10/2008 02:44:59 (+0700) | #11 | 153567
mrro
Administrator

Joined: 27/12/2001 05:07:00
Messages: 745
Offline
[Profile] [PM]
@flier_vn: khổ bạn quá, gì mà từa lưa hết, chỗ này xọ chỗ kia. ngồi xem lại xem java applet là cái chi rồi hẵng coi cái GIFAR này là cái chi, kẻo bị tẩu hỏa nhập ma thì chẳng có ai cứu được đâu.

--m
http://tinsang.net

TetCon 2013 http://tetcon.org

Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 02/10/2008 09:11:14 (+0700) | #12 | 153610
[Avatar]
giobuon
Member

[Minus]    0    [Plus]
Joined: 10/09/2006 06:25:46
Messages: 72
Offline
[Profile] [PM]
Mình thì dùng cách cho phép upload lên 1 thư mục xyz nào đó (web server sẽ có quyền write trên xyz) nhưng thư mục đó không có quyền execute script.
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 02/10/2008 13:53:00 (+0700) | #13 | 153642
flier_vn
Member

[Minus]    0    [Plus]
Joined: 15/07/2008 01:13:39
Messages: 28
Offline
[Profile] [PM]

mrro wrote:
@flier_vn: khổ bạn quá, gì mà từa lưa hết, chỗ này xọ chỗ kia. ngồi xem lại xem java applet là cái chi rồi hẵng coi cái GIFAR này là cái chi, kẻo bị tẩu hỏa nhập ma thì chẳng có ai cứu được đâu.

--m 


Ừhm ! Em xin lỗi, em sẽ rút kinh nghiệm, lần sau khi tham gia chủ đề nào đó thì em phải chắc chắn rằng em am hiểu 1 chút kiến thức về chủ đề đó thì mới dám mở miệng tham gia smilie Thx anh rất nhiều.. !

àh ! Riêng về cái này thì thx anh nbthanh đã giúp em hiểu phần nào rồi smilie

Còn đây em xin post cách tạo file GIFAR.gif ( cũng như tương tự ) dành cho những bạn chưa biết :

1. Xoạn thảo 1 file java chứa mã độc rồi complie lại :
$ : javac exp1.java

rồi :
$: jar -cf exp1.jar exp1.class => tạo file .JAR

Tiếp :

$ : cat xxx.gif exp1.jar > gifar.gif  


Okies! Thành công smilie


To mrror : Nhưng.... cái lối nói chuyện của anh thì hok bik sau này anh dạy con, dạy cháu anh sao nữa, thậm chí bây giờ nếu đoán ko lầm chắc bạn bè anh chỉ đếm đầu ngón tay ! hahaha ! Muốn chỉ bảo ai thì cũng phải làm cho người đó phục trước đã ! Từng lời lẽ phát ra phải làm cho người ta "mến" và phục, như reply như anh nbt_thanh thì làm gì có ai dám mở miệng nào tiếng nào ! hahaha ! Hok biết mỗi lần bro phát ngôn ra là lại có người chỉ chữi, mặc dù cũng có rất nhiều anh cũng hay châm chọt, nhưng châm chọt của họ là để giúp cho mình tiến bộ nên mọi người cũng rất hài lòng ! Bro mới là người coi chứng bị tẫu quả nhập ma, riết hok có ai chơi với mình thì bị tẫu quả thiệt đó ! haha !

to all : có gì sai thì move wa box tán gẫu, vì ko có lý do gì để cho vào thùng rác smilie



MerChant.Vn - Website học hỏi, trao đổi thảo luận về kinh doanh.

DànhChoBé.VN - Chuyên bán đồ chơi chất lượng, thương hiệu Fisher price, Disney, Thomas & Friends
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 02/10/2008 18:15:56 (+0700) | #14 | 153648
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

flier_vn wrote:
...

To mrror : Nhưng.... cái lối nói chuyện của anh thì hok bik sau này anh dạy con, dạy cháu anh sao nữa, thậm chí bây giờ nếu đoán ko lầm chắc bạn bè anh chỉ đếm đầu ngón tay ! hahaha ! Muốn chỉ bảo ai thì cũng phải làm cho người đó phục trước đã ! Từng lời lẽ phát ra phải làm cho người ta "mến" và phục, như reply như anh nbt_thanh thì làm gì có ai dám mở miệng nào tiếng nào ! hahaha ! Hok biết mỗi lần bro phát ngôn ra là lại có người chỉ chữi, mặc dù cũng có rất nhiều anh cũng hay châm chọt, nhưng châm chọt của họ là để giúp cho mình tiến bộ nên mọi người cũng rất hài lòng ! Bro mới là người coi chứng bị tẫu quả nhập ma, riết hok có ai chơi với mình thì bị tẫu quả thiệt đó ! haha !

to all : có gì sai thì move wa box tán gẫu, vì ko có lý do gì để cho vào thùng rác smilie

 


Tôi thấy mrro góp ý bồ không có gì là quá đáng cả (tôi tuyệt đối không bênh mrro ở đây). Bởi thế, bồ không nên bức xúc như thế.

Nếu bồ thấy mrro góp ý thiếu chính xác chỗ nào, bồ phản biện ngay chỗ ấy. Đừng mang chuyện phỏng đoán và đặc biệt đừng lôi chuyện đời tư cá nhân (dù có thật hay suy diễn) ra để phản biện. Đây là một thói quen không tốt và không nên duy trì.

Hành động phản biện có giá trị hay không còn phụ thuộc vào khả năng diễn đạt và ngôn từ của mình. Một đoạn phản biện ngắn ngủi mang tính phỏng đoán và bêu rếu chuyện cá nhân đã tệ mà chính tả, câu cú, từ vựng be bét thì cũng tệ không kém.

Bài trả lời trên của bồ đáng vào thùng rác và moderators có trọn quyền quyết định xử lý nó như thế nào chớ không phải bồ. Tôi để yên bài phản biện của bồ như trên và cảnh cáo bồ lần thứ nhất. Mong bồ tỉnh táo và tiếp tục thảo luận chuyện kỹ thuật (chớ không phải chuyện cá nhân theo kiểu phỏng đoán).
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 02/10/2008 22:20:18 (+0700) | #15 | 153667
[Avatar]
giobuon
Member

[Minus]    0    [Plus]
Joined: 10/09/2006 06:25:46
Messages: 72
Offline
[Profile] [PM]

flier_vn wrote:

mrro wrote:
@flier_vn: khổ bạn quá, gì mà từa lưa hết, chỗ này xọ chỗ kia. ngồi xem lại xem java applet là cái chi rồi hẵng coi cái GIFAR này là cái chi, kẻo bị tẩu hỏa nhập ma thì chẳng có ai cứu được đâu.

--m 


Ừhm ! Em xin lỗi, em sẽ rút kinh nghiệm, lần sau khi tham gia chủ đề nào đó thì em phải chắc chắn rằng em am hiểu 1 chút kiến thức về chủ đề đó thì mới dám mở miệng tham gia smilie Thx anh rất nhiều.. !

àh ! Riêng về cái này thì thx anh nbthanh đã giúp em hiểu phần nào rồi smilie

Còn đây em xin post cách tạo file GIFAR.gif ( cũng như tương tự ) dành cho những bạn chưa biết :

1. Xoạn thảo 1 file java chứa mã độc rồi complie lại :
$ : javac exp1.java

rồi :
$: jar -cf exp1.jar exp1.class => tạo file .JAR

Tiếp :

$ : cat xxx.gif exp1.jar > gifar.gif  


Okies! Thành công smilie


To mrror : Nhưng.... cái lối nói chuyện của anh thì hok bik sau này anh dạy con, dạy cháu anh sao nữa, thậm chí bây giờ nếu đoán ko lầm chắc bạn bè anh chỉ đếm đầu ngón tay ! hahaha ! Muốn chỉ bảo ai thì cũng phải làm cho người đó phục trước đã ! Từng lời lẽ phát ra phải làm cho người ta "mến" và phục, như reply như anh nbt_thanh thì làm gì có ai dám mở miệng nào tiếng nào ! hahaha ! Hok biết mỗi lần bro phát ngôn ra là lại có người chỉ chữi, mặc dù cũng có rất nhiều anh cũng hay châm chọt, nhưng châm chọt của họ là để giúp cho mình tiến bộ nên mọi người cũng rất hài lòng ! Bro mới là người coi chứng bị tẫu quả nhập ma, riết hok có ai chơi với mình thì bị tẫu quả thiệt đó ! haha !

to all : có gì sai thì move wa box tán gẫu, vì ko có lý do gì để cho vào thùng rác smilie



 


Đọc tạm cái này đi. Sẽ giúp ích phần nào đấy smilie
Code:
http://forum.vnoss.org/pub/smart-questions-vi.html#Hi%E1%BB%83u_c%C3%A2u_tr%E1%BA%A3_l%E1%BB%9Di_nh%C6%B0_th%E1%BA%BF_n%C3%A0o
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 02/10/2008 23:05:07 (+0700) | #16 | 153677
[Avatar]
hackerbinhphuoc
Member

[Minus]    0    [Plus]
Joined: 16/01/2004 09:45:41
Messages: 22
Offline
[Profile] [PM]
cho em hỏi là tại sao mình không chỉnh lại đoạn javascript rồi upload lên hoạt là tắt chức năng sử dụng javascript đi vì cách này em hay dùng thay vì phải dùng tool chỉnh gói tin gửi đi! tuy nhiên cám ơn anh nhiều vì cho em cái tool khá hay hehe!
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 02/10/2008 23:21:19 (+0700) | #17 | 153681
[Avatar]
gamma95
Researcher

Joined: 20/05/2003 07:15:41
Messages: 1377
Location: aaa&quot;&gt;
Offline
[Profile] [PM] [ICQ]

hackerbinhphuoc wrote:
cho em hỏi là tại sao mình không chỉnh lại đoạn javascript rồi upload lên hoạt là tắt chức năng sử dụng javascript đi vì cách này em hay dùng thay vì phải dùng tool chỉnh gói tin gửi đi! tuy nhiên cám ơn anh nhiều vì cho em cái tool khá hay hehe! 

javascript thì sao mà can thiệp vào content-type: trong HTTP Header đc ? trường hợp phía server-side nó check content-type thì phải dùng proxy để sửa lại content-type để spoof nó. Chứ dùng java-script mà check phía client thì nói làm gì nữa smilie
Cánh chym không mỏi
lol
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 02/10/2008 23:47:30 (+0700) | #18 | 153692
[Avatar]
hackerbinhphuoc
Member

[Minus]    0    [Plus]
Joined: 16/01/2004 09:45:41
Messages: 22
Offline
[Profile] [PM]
hehe em nói ở ví dụ 1 mà anh, rõ ràng nó check ở client mà!, còn các ví dụ khác thi buộc phải chỉnh gói tin gửi đi rồi! nhiều site như vậy lém, check ở client!
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 03/10/2008 00:19:24 (+0700) | #19 | 153698
[Avatar]
gamma95
Researcher

Joined: 20/05/2003 07:15:41
Messages: 1377
Location: aaa&quot;&gt;
Offline
[Profile] [PM] [ICQ]

hackerbinhphuoc wrote:
hehe em nói ở ví dụ 1 mà anh, rõ ràng nó check ở client mà!, còn các ví dụ khác thi buộc phải chỉnh gói tin gửi đi rồi! nhiều site như vậy lém, check ở client! 

Ah, vậy em chỉnh đoạn javascript bằng cách nào smilie
Cánh chym không mỏi
lol
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 03/10/2008 00:37:09 (+0700) | #20 | 153707
[Avatar]
hackerbinhphuoc
Member

[Minus]    0    [Plus]
Joined: 16/01/2004 09:45:41
Messages: 22
Offline
[Profile] [PM]
tắt chức năng sử dụng javascript đi hoặc là lưu file đó lại, đổi chữ "gif" bằng "php" được không nhỉ ?
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 03/10/2008 02:54:09 (+0700) | #21 | 153727
[Avatar]
gamma95
Researcher

Joined: 20/05/2003 07:15:41
Messages: 1377
Location: aaa&quot;&gt;
Offline
[Profile] [PM] [ICQ]
<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> 


hackerbinhphuoc wrote:
tắt chức năng sử dụng javascript đi hoặc là lưu file đó lại, đổi chữ "gif" bằng "php" được không nhỉ ? 

Phức tạp và khó quá smilie

--> Anh trình thấp nên hay dùng làm như vầy, ko biết có đúng ko.Trên thanh AddressBar gõ:
Code:
javascript: function chkFileExtension(){return true;}

Sau đó làm gì tiếp ko biết luôn.
smilie
Cánh chym không mỏi
lol
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 03/10/2008 02:55:08 (+0700) | #22 | 153728
nbthanh
HVA Friend

Joined: 21/12/2001 14:51:51
Messages: 429
Offline
[Profile] [PM]
@gamma95: FF chẳng hạn, nó có khá nhiều plugin giúp mình edit nội dung của page đang mở (dĩ nhiên là "nội dung" này nằm trong memory space của FF trên máy mình) ngay trên trình duyệt.
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 03/10/2008 08:08:31 (+0700) | #23 | 153785
[Avatar]
hackerbinhphuoc
Member

[Minus]    0    [Plus]
Joined: 16/01/2004 09:45:41
Messages: 22
Offline
[Profile] [PM]
@gamma95: anh trình thấp,còn em trình còi, chưa học qua môn java nên em vào tool > Options> Content > tiện tay bỏ check cái Enable Java script (trên FF) luôn!
rồi sau đó upload lên tự dưng nó báo "File was successfully uploaded."
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 

em nghĩ là đó chỉ là giải pháp cho các website lớn, quản trị cả sever, còn đối với phần lớn các website vừa và nhỏ dùng host share thì giải pháp tốt nhất là cấm chạy script trong folder uploads ( tuy nhiên không tránh được trường hợp upload sang folder khác hoặc include files)
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 14/10/2008 22:12:58 (+0700) | #24 | 155190
[Avatar]
hoahongtim
Researcher

Joined: 15/07/2002 02:59:49
Messages: 156
Location: Underground
Offline
[Profile] [PM] [WWW] [Yahoo!]
Sẵn có bài này, mình gửi lên cho các bác cái PDF này luôn, cũng khá đầy đủ smilie gần như step by step smilie
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 17/10/2008 05:24:06 (+0700) | #25 | 155513
[Avatar]
attain
Member

[Minus]    0    [Plus]
Joined: 15/10/2008 11:14:42
Messages: 2
Offline
[Profile] [PM]
trong truong hop khi upload len server , web nó sửa ten file thanh ten khác , va dấu link di -> hết chuyện!smilie
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 17/10/2008 07:35:59 (+0700) | #26 | 155524
[Avatar]
learn2hack
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 16:32:37
Messages: 825
Offline
[Profile] [PM] [WWW]
Mình có 1 thắc mắc nhỏ thế này: các image hosting cung cấp link direct thì họ phòng chống chuyện chèn mã độc này bằng cách nào?
Blog: http://hontap.blogspot.com
Tải phần mềm miễn phí: http://www.taiphanmem.org
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 18/10/2008 10:08:31 (+0700) | #27 | 155654
[Avatar]
pham.channhan
Member

[Minus]    0    [Plus]
Joined: 30/12/2007 23:28:22
Messages: 81
Location: Nhàcủamìnhtới
Offline
[Profile] [PM] [Yahoo!]
Theo ngu ý của em, sao ko kiểm tra đuôi file ở trên server luôn nhỉ? Sau đó lưu lại tên file dạng *.xyz -->tên file đặc biệt
; sau đó lưu tên file đặc biệt này cùng với tên "thiệt" của nó vào 1 database, khi down sẽ trả lại tên thiệt cho nó?
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 06/11/2008 07:09:12 (+0700) | #28 | 157833
[Avatar]
attain
Member

[Minus]    0    [Plus]
Joined: 15/10/2008 11:14:42
Messages: 2
Offline
[Profile] [PM]
hix , sao cai bufsuite cua minh no' ko bắt được gói tin nào zay? có cần phải cài đặt , setting.. ntn chỉ giùm mình với! thanks a lot
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 19/11/2008 19:09:43 (+0700) | #29 | 159437
daotranbang
Member

[Minus]    0    [Plus]
Joined: 14/08/2005 12:05:24
Messages: 25
Offline
[Profile] [PM]
@pham.channhan: lưu tên như vậy là 1 cách phòng mã độc, nhưng mà khi người ta truy cập -> tốn xử lý code trước khi xuất file -> nặng, không hiệu quả.
[Up] [Print Copy]
  [Question]   Re: Khai thác và phòng chống file upload trong PHP Web Applications 27/03/2009 01:09:06 (+0700) | #30 | 174855
[Avatar]
micr0vnn
Member

[Minus]    0    [Plus]
Joined: 29/06/2006 15:52:34
Messages: 67
Offline
[Profile] [PM]
Theo mình thì get header biết định dạng file rồi đổi tên tên file + ext là xong.

Còn coder duyệt khi hiển thị ra thì hiện phần nội dung mà cò file hiện ra nó hiện như thế nào thì co sao đâu:

Hoặc cách thứ 2 : có thể dùng str_replace('_','.',$_FILE['upload']['name']) . ext .... nhiều cách nên đâu có zi phải xủ lý ở đây đâu

Ví dụ: file được đổi tên thành 86786SADS6768.pdf thì khi save thì ai muốn dổi tên thì đổi.
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|