Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Уязвимости (https://forum.antichat.xyz/forumdisplay.php?f=74)
-   -   PHP addcslashes() vulnerabilitiy (https://forum.antichat.xyz/showthread.php?t=57411)

Евгений Минаев 05.01.2008 13:01

PHP addcslashes() vulnerabilitiy
 
PHP функция addcslashes экранирует спецсимволы в стиле языка C , является аналогом addslashes с возможностью указывать свой набор символов для экранирования . Некорректно работает с некоторыми спецсимволами , а именно null byte считает концом строки.

PHP код:

echo addcslashes "some\0thing" '\'' );
->
some 

PHP код:

echo addcslashes "some\0thing'" chr(0).'..\'' );
-> 
some\000thing\


-=lebed=- 05.01.2008 13:23

символы с Ascii менее 32 и более 126 преобразуются в восьмеричное представление.
На выходе должно быть тоже что и на входе:
Код:

echo addcslashes ( "some\0thing" , '\'' );
->some\0thing

но \0 нулевой байт интерпретируется как конец стироки, так?
Во втором примере экранируются все символы из диапазона от chr(0) до одинарной кавычки, должно быть на выходе:
Код:

echo addcslashes ( "some\0thing'" , chr(0).'..\'' );
-> some000thing\'

, потому как \0 преобразовался в восьмеричное представление 000, а вот почему пропала кавычка? её в аргументе тоже надо было экранировать?

P.S. В тэгах php тут на форуме тоже иногда пропадают экранирующие слэши, лучше в code заключать, потому что я не уверен, что в посте вывелось то, что реально в php выводится...


Время: 12:33