Vlad8999
Участник
- Сообщения
- 179
- Реакции
- 47
В их нем модуле 5 штук XSS!Rubrika написал(а):27 строка:
if($db->NumRows() == 0){ echo htmlspecialchars($order_id)."|error"; exit;}
30 строка:
if($ooopay_row["status"] > 0){ echo htmlspecialchars($order_id)."|success"; exit;}
71 строка:
echo htmlspecialchars($order_id)."|success";
Это конечно не все, но тоже неплохо)
1./_insert_ooopay.php - <input type="hidden" name="description" value="<?=$description; ?>">
2./ooopay_merchant.php - if($db->NumRows() == 0){ echo $order_id."|error"; exit;}
3./ooopay_merchant.php - if($ooopay_row["status"] > 0){ echo $order_id."|success"; exit;}
4./ooopay_merchant.php - echo $order_id."|success";
5./ooopay_merchant.php - echo $order_id."|error";
Rubrika
Участник
- Сообщения
- 342
- Реакции
- 43
Vlad8999 написал(а):В их нем модуле 5 штук XSS!
1./_insert_ooopay.php - <input type="hidden" name="description" value="<?=$description; ?>">
2./ooopay_merchant.php - if($db->NumRows() == 0){ echo $order_id."|error"; exit;}
3./ooopay_merchant.php - if($ooopay_row["status"] > 0){ echo $order_id."|success"; exit;}
4./ooopay_merchant.php - echo $order_id."|success";
5./ooopay_merchant.php - echo $order_id."|error";
прочитай последнюю строчку моего того сообщения )
- Сообщения
- 322
- Реакции
- 72
Vlad8999 написал(а):В их нем модуле 5 штук XSS!
1./_insert_ooopay.php - <input type="hidden" name="description" value="<?=$description; ?>">
2./ooopay_merchant.php - if($db->NumRows() == 0){ echo $order_id."|error"; exit;}
3./ooopay_merchant.php - if($ooopay_row["status"] > 0){ echo $order_id."|success"; exit;}
4./ooopay_merchant.php - echo $order_id."|success";
5./ooopay_merchant.php - echo $order_id."|error";
Вы серьезно? Какая фильтрация? Эти данные формирует скрипт, а не вводит пользователь.
1. <input type="hidden" name="description" value="<?=$description; ?>">
>> Выше строка $description = iconv('windows-1251', 'utf-8', "Пополнение пользователя '{$usname}' с проекта '".$_SERVER["HTTP_HOST"]."'");
Что тут фильтровать???
2-5 пункты - Тут вывод на экран, а не сохранение в БД! Какая тут дыра?!
Vlad8999
Участник
- Сообщения
- 179
- Реакции
- 47
1. Разве не так? - echo $order_id."|success"; - должно быть echo htmlspecialchars($order_id)."|success"; , тут echo $order_id."|error"; это echo htmlspecialchars($order_id)."|error"; там <input type="hidden" name="description" value="<?=$description; ?>"> так <input type="hidden" name="description" value="<? echo htmlspecialchars($description); ?>"> , а тут if($db->NumRows() == 0){ echo $order_id."|error"; exit;} это if($db->NumRows() == 0){ echo htmlspecialchars($order_id)."|error"; exit;}MegaGoblin написал(а):Вы серьезно? Какая фильтрация? Эти данные формирует скрипт, а не вводит пользователь.
1. <input type="hidden" name="description" value="<?=$description; ?>">
>> Выше строка $description = iconv('windows-1251', 'utf-8', "Пополнение пользователя '{$usname}' с проекта '".$_SERVER["HTTP_HOST"]."'");
Что тут фильтровать???
2-5 пункты - Тут вывод на экран, а не сохранение в БД! Какая тут дыра?!
GLookin
Участник
- Сообщения
- 296
- Реакции
- 62
- Сообщения
- 322
- Реакции
- 72
Нет не так, тут нет никаих дыр.Vlad8999 написал(а):1. Разве не так? - echo $order_id."|success"; - должно быть echo htmlspecialchars($order_id)."|success"; , тут echo $order_id."|error"; это echo htmlspecialchars($order_id)."|error"; там <input type="hidden" name="description" value="<?=$description; ?>"> так <input type="hidden" name="description" value="<? echo htmlspecialchars($description); ?>"> , а тут if($db->NumRows() == 0){ echo $order_id."|error"; exit;} это if($db->NumRows() == 0){ echo htmlspecialchars($order_id)."|error"; exit;}
Да потому что это никакие не дыры. Не надо ничего выдумывать.GLookin написал(а):Аналогичные "дыры" (xss) есть во всех модулях ввода и вывода Payeer и Free Kassa.
Подавляющее большинство админов их не закрывает, потому что не знает об их существовании.
У вас в подписи стоит "PHP, HTML, CSS", должно быть вы знаете что-то из php.
Код:
$str = 'Hello World';
// Я думаю вы вывод строки делаете так
echo $str;
// Но не так
echo htmlspecialchars($str);
GLookin
Участник
- Сообщения
- 296
- Реакции
- 62
Я поэтому взял слово "дыры" в кавычки, потому что скептически к этому отнёсся)MegaGoblin написал(а):Нет не так, тут нет никаих дыр.
Да потому что это никакие не дыры. Не надо ничего выдумывать.
У вас в подписи стоит "PHP, HTML, CSS", должно быть вы знаете что-то из php.
Код:$str = 'Hello World'; // Я думаю вы вывод строки делаете так echo $str; // Но не так echo htmlspecialchars($str);
Я знаю, что это не дыра. Но, есть у некоторых людей паранойя, что нужно всё, что выводится преобразовывать через htmlspecialchars
Vlad8999
Участник
- Сообщения
- 179
- Реакции
- 47
mysql_real_escape_string() - практически всегда нужнаGLookin написал(а):Я поэтому взял слово "дыры" в кавычки, потому что скептически к этому отнёсся)
Я знаю, что это не дыра. Но, есть у некоторых людей паранойя, что нужно всё, что выводится преобразовывать через htmlspecialchars![]()
- Сообщения
- 322
- Реакции
- 72
Но надо все-таки понимать зачем применяется эта функция, а не пихать ее всюду.Vlad8999 написал(а):mysql_real_escape_string() - практически всегда нужна
Vlad8999
Участник
- Сообщения
- 179
- Реакции
- 47
наоборот её впихивать где только возможно надо , используются для того, чтобы обезопасить данные, вставляемые в запрос перед отправкой его в MySQL.MegaGoblin написал(а):Но надо все-таки понимать зачем применяется эта функция, а не пихать ее всюду.
- Сообщения
- 322
- Реакции
- 72
Нет. Ее не надо использовать для всех подряд данныхVlad8999 написал(а):наоборот её впихивать где только возможно надо , используются для того, чтобы обезопасить данные, вставляемые в запрос перед отправкой его в MySQL.
Имеем примерно такой код
PHP:
$a = '1234';
$sql = "INSERT INTO `table` (`aaa`) VALUES ('$a')";
Точно так же, как и в найденных тобою "дырах" в модуле.
Vlad8999
Участник
- Сообщения
- 179
- Реакции
- 47
ты уверен на 100% что через эти "дыры" нельзя загнать какую-нибудь фигню?MegaGoblin написал(а):Нет. Ее не надо использовать для всех подряд данных
Имеем примерно такой код
И тут экранирование совсем не нужно.PHP:$a = '1234'; $sql = "INSERT INTO `table` (`aaa`) VALUES ('$a')";
Точно так же, как и в найденных тобою "дырах" в модуле.
- Сообщения
- 322
- Реакции
- 72
Да. Потому что тут нет никаких дыр.Vlad8999 написал(а):ты уверен на 100% что через эти "дыры" нельзя загнать какую-нибудь фигню?
Vlad8999
Участник
- Сообщения
- 179
- Реакции
- 47
окей,поймал на слове. Если что с тебя спросимMegaGoblin написал(а):Да. Потому что тут нет никаких дыр.
lebmont
Местный
- Сообщения
- 54
- Реакции
- 0
rezerv
Участник
- Сообщения
- 211
- Реакции
- 10
У меня все работаетlebmont написал(а):пополнение и выводы работают а вот игровую валюту не зачисляет, видимо мерчант гнилой