ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-talk] php & security





On Wed, 21 Nov 2001 frodo@sharat.co.il wrote:

> KV>> P.S. Вообще дело не только в кривой реализации safe mode, но и вообще в
> KV>> непродуманном API :-(( Я попытался вызвать программу, передав ей в
> KV>> качестве параметра имя файла (пресловутый /.../Program files/.../ :-)
> KV>> Не смог: это дело упорно передавалось как два аргумента - как ни 
>приседай.
> KV>> Посмотрев в исходники я понял, что так, собственно, и должно быть.
>
> А можно немного подробней? Какая функция и что ей конкретно передавалось?
>
Ok. Искуственный пример (чтобы показать проблему).
-- cut --
$ cat show-params
#!/bin/sh
n=1
for i ; do
    echo "Parameter $((n++)) is '$i'"
done
$ cat test.php
#!/usr/bin/php -q
<?php
    $param="1 2 3";
    $result=array();
    exec("show-params $param",$result);
    echo(implode("\n",$result)),"\n";
    $param=escapeshellarg($param);
    $result=array();
    exec("show-params $param",$result);
    echo(implode("\n",$result)),"\n";
?>
-- safe mode is on --
$ test.php
Parameter 1 is '1'
Parameter 2 is '2'
Parameter 3 is '3'
Parameter 1 is ''1'
Parameter 2 is '2'
Parameter 3 is '3''
-- safe mode is off --
Parameter 1 is '1'
Parameter 2 is '2'
Parameter 3 is '3'
Parameter 1 is '1 2 3'
-- cut --

Что видим ? Если не заэкранировать, то не работает ни в каком режиме (что
ожидалось), если заэкранировать, то работает без safe mode и не работает с
safe mode (чего не ожидалось).

=============================================================================
=               Apache-Talk@lists.lexa.ru mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =



 




Copyright © Lexa Software, 1996-2009.