1. PHP / Говнокод #16580

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    <?
    session_start();
    if ($service_log == 1) {
    	header ("Content-Type: application/octet-stream"); 
    	header ("Content-Length: ".filesize("files_tech/".$dn)); 
    	header ("Content-Disposition: attachment; filename=".$dn); 
    	readfile("files_tech/".$dn);
    }
    ?>

    Запостил: alchy, 22 Августа 2014

    Комментарии (9) RSS

    • $dnina_ebanaya
      Ответить
    • В чём ГК?
      Ответить
      • в том, что через .php?dn=
        можно слить статикой с сервера любой файл

        к примеру: .php?dn=../../../../etc/passwd
        Ответить
        • <зануда>
          из приведенного отрывка ГК не виден
          </зануда>
          Ответить
        • Обратите внимание на $service_log == 1 эта штука может работать в каких то особых условиях. На пример когда Ip клиента в нечетных октететах четное число.
          Ответить
        • Я думала, это кусок большого файла. Неужели кто-то в 2014 году ещё включает register_globals в продакшене?
          Ответить
      • > readfile
        Так отдают только мудаки. В реальном исполнении стоит обрабатывать так только небольшие файлы.
        Для всего остального есть промышленные серверы контента.
        Ответить
        • Кстати, в php 5.4 в режиме сервера можно сделать return false для отдачи файла.
          Ответить

    Добавить комментарий