Chủ Nhật, 9 tháng 2, 2014

Local file download (LFD)

Local file download (LFD)
a) Giới thiệu chung :


LFD là một phương pháp khai thác lỗi hổng của website bằng các sử dụng metod get để download một số file nhạy cảm .( Cũng có thể dùng metod post nhưng phải kèm theo addon tamper data của firefox ).

đoạn script dẫn đến lỗi này là

<?php
if(isset($_POST['download'])) {
$file = $_GET['file'];
$file_info = pathinfo($file);
header('Content-type: application/x-'.$file_info['extension']);
header('Content-Disposition: attachment; filename='.$file_info['basename']);
header('Content-Length: '.filesize($file));
readfile($file);
exit;
}
?>


b)Cách khai thác :

Tương tự như đối với lfi nó ko xác định được chính xác file cần download xuống.
Giả sử như trên thực thế ta muốn download xuống một file như sau:

http://hackingworld.net/download_file.php?file=Mrookit.exe

ta có thể khai thác file etc/passwd như sau:

http:// hackingworld.net/download_file.php?file=../../../../../../../../../etc/passwd


c) cách phòng chống lfd

chèn vào script đoạn if(file_exists("download/".$file) để giới hạn đối tượng
<?php
if(isset($_POST['download'])) {
$file = $_GET['file'];
$file_info = pathinfo($file);
if(file_exists("download/".$file)) {
header('Content-type: application/x-'.$file_info['extension']);
header('Content-Disposition: attachment; filename='.$file_info['basename']);
header('Content-Length: '.filesize($file));
readfile($file);
exit;
}

Tác giả:Icarus TheGioiNgam.Org

Không có nhận xét nào:

Đăng nhận xét