Я свежий член, зарегистрироваться на этом форуме менее 24 часов назад. Я устроился на работу кого-то здесь по поводу продажи сценария CoinDice по johny1976 ()
Член, который купил этот сценарий был обратиться за помощью, чтобы установить и запустить его на своем сервере.
Через несколько часов, это кажется, что сценарий при условии, является полным жульничеством. Я на эту тему, разоблачить технический обзор этого, я приглашаю любой PHP разработчика для участия и / или подтвердить свое высказывание. Как сценарий продается johny1976 не является законным, и для каждого может проверить это, я обеспечу источник.
Исходный код
http://s000.tinyupload.com/index.php?file_id=86885185801916457991
Безопасность
Сценарий имеет кратные критические проблемы безопасности, я нашел много, и я уверен, что мы все еще можем найти больше ... Вот некоторые из них:
котировка
Содержание / requestAccess.php
Строка 13: SQL Injection
Код:
если (пусто ($ _ GET [ '_ уникальный']) || mysql_num_rows (mysql_query ("ВЫБОР `` id` ОТ players` где `hash` =»".prot ($ _ GET [ '_ уникальный'])."'LIMIT 1")) == 0) Выход ();
Строка 14: SQL Injection
Код:
$ Игрок = mysql_fetch_array (mysql_query ("ВЫБОР `` password` ОТ players` где `hash` =»".prot ($ _ GET [ '_ уникальный'])."'LIMIT 1"));
котировка
вкл / start.php
Строка 35: SQL Injection
Код:
если (mysql_num_rows (mysql_query ("ВЫБОР `` id` ОТ players` где `hash` =»".prot ($ _ GET [ 'уникальный'])."'LIMIT 1"))! = 0) {
Строка 36: SQL Injection
Код:
$ Игрок = mysql_fetch_array (mysql_query ("SELECT * FROM `players` WHERE` hash` =»".prot ($ _ GET [ 'уникальный'])."'LIMIT 1"));
котировка
Содержание / Ajax / withdraw.php
Строка 22: SQL Injection
Код:
если (пусто ($ _ GET [ 'количество']) || пустой ($ _ GET [ 'valid_addr']) || пустой ($ _ GET [ '_ уникальный']) || mysql_num_rows (mysql_query ("ВЫБОР `` id` ОТ players` где `hash` =»".prot ($ _ GET [ '_ уникальный'])."'LIMIT 1")) == 0) Выход ();
... (Существует более инъекции SQL) ...
неверный код
Я нашел несколько ошибок в коде Thats сделал сценарий просто бесполезно. Многие злоупотребления, неправильно понять из PHP Basic легко можно найти практически в каждом файле. После нескольких часов отладки / переписать сценарий CoinDice, я просто понимаю, что это пустая трата времени, так как этот сценарий никогда не работал на первом месте. Я не говорю о какой-то ошибке кодирования, что каждый разработчик может сделал, этот сценарий является гигантским беспорядком, то маловероятно, чтобы остаться не работает сценарий даже с лучшей мотивацией в мире.
котировка
Содержание / Ajax / place.php
Линия 98-115: Ошибка: PHP Примечание: Undefined переменной: cas_percprofit в /data/www/default/www/content/ajax/place.php на линии 114
Код:
если ($ настройки [ 'inv_enable'] == 1) {
$ Cas_profit = $ прибыли * -1;
если (mysql_num_rows (mysql_query ("SELECT SUM ( `amount`) КАК` `sum` ОТ investors` где` amount`! = 0 FOR UPDATE"))) {
$ Cas_invest = mysql_fetch_array (mysql_query ("SELECT SUM ( `amount`) КАК` `sum` FROM investors` где` amount`! = 0"));
$ Cas_invest = ($ serverFreeBalance- $ cas_invest [ 'сумма']);
}
еще $ cas_invest = $ serverFreeBalance;
mysql_query ("ОБНОВЛЕНИЕ `` investors` SET amount` = ( `amount` + (($ cas_profit / 100) * ((` amount` / $ serverFreeBalance) * (100- $ Настройки [inv_perc])))), `profit` = ( `profit` + (($ cas_profit / 100) * ((` amount` / $ serverFreeBalance) * (100- $ настройки [inv_perc])))) WHERE `amount`! = 0");
$ Д = mysql_query ("SELECT * FROM `investors` WHERE` amount`! = 0");
в то время как (mysql_num_rows ($ д) && $ INV = mysql_fetch_array ($ д)) {
$ Cas_percprofit + = (($ cas_profit / 100) * (($ INV [ 'сумма'] / $ serverFreeBalance) * ($ настройки [ 'inv_perc'])));
}
mysql_query ("ОБНОВЛЕНИЕ `` system` SET inv_casprofit` = ( `inv_casprofit` + (($ cas_profit / 100) * (($ cas_invest / $ serverFreeBalance) * (100))) + $ cas_percprofit) LIMIT 1");
}
$ Cas_profit = $ прибыли * -1;
если (mysql_num_rows (mysql_query ("SELECT SUM ( `amount`) КАК` `sum` ОТ investors` где` amount`! = 0 FOR UPDATE"))) {
$ Cas_invest = mysql_fetch_array (mysql_query ("SELECT SUM ( `amount`) КАК` `sum` FROM investors` где` amount`! = 0"));
$ Cas_invest = ($ serverFreeBalance- $ cas_invest [ 'сумма']);
}
еще $ cas_invest = $ serverFreeBalance;
mysql_query ("ОБНОВЛЕНИЕ `` investors` SET amount` = ( `amount` + (($ cas_profit / 100) * ((` amount` / $ serverFreeBalance) * (100- $ Настройки [inv_perc])))), `profit` = ( `profit` + (($ cas_profit / 100) * ((` amount` / $ serverFreeBalance) * (100- $ настройки [inv_perc])))) WHERE `amount`! = 0");
$ Д = mysql_query ("SELECT * FROM `investors` WHERE` amount`! = 0");
в то время как (mysql_num_rows ($ д) && $ INV = mysql_fetch_array ($ д)) {
$ Cas_percprofit + = (($ cas_profit / 100) * (($ INV [ 'сумма'] / $ serverFreeBalance) * ($ настройки [ 'inv_perc'])));
}
mysql_query ("ОБНОВЛЕНИЕ `` system` SET inv_casprofit` = ( `inv_casprofit` + (($ cas_profit / 100) * (($ cas_invest / $ serverFreeBalance) * (100))) + $ cas_percprofit) LIMIT 1");
}
котировка
Содержание / Ajax / divest.php
Строка 20: WTF?
Код:
если (пусто ($ _ GET [ '_ уникальный']) || mysql_num_rows (mysql_query ("ВЫБОР `` id` ОТ players` где `hash` =»".prot ($ _ GET [ '_ уникальный'])."'LIMIT 1")) == 0) Выход ();
Линия 26-28: WTF?
Код:
если (mysql_num_rows (mysql_query ("ВЫБОР `` id` FROM investors` где `player_id` = $ игрок [ID] ЛИМИТ 1")) == 0) {
mysql_query ("INSERT INTO `investors` (` player_id`) VALUES ($ игрок [ID])");
}
mysql_query ("INSERT INTO `investors` (` player_id`) VALUES ($ игрок [ID])");
}
котировка
Содержание / Ajax / _stats_load.php
Весь файл: WTF?
Существует гораздо больше, чтобы сказать об этом, что он может взять меня мои следующие 6 часов, (использование MySQL, над устаревшими, вместо MySQLi или даже лучше, STMT MySQL), то включать внешний код, который явно не сделанный вами, весь файл находится в JS / includer.php или 0 санобработки пользовательского ввода на стороне сервера ...
Я приглашаю любой PHP Dev проверить предоставленный источник по этой теме, это оригинал один дается johny1976. Я жгу мой день на эту работу ни за что, я решил не принимать какие-либо деньги от члена, который набирал меня за свою работу, он потерял уже свои деньги покупать непригодный сценарий.
Я надеюсь, что этот член будет бан, чтобы избежать других людей, чтобы попасть в его афере, единственный способ, чтобы остановить это было делать то, что я сделал, выставить исходный код. Я вижу много других вопросов относительно этого жульничества ...
Для johny1976: Если вы хотите, чтобы защитить себя от этого, что собирается предложить рабочую демо онлайн? Я могу видеть на каждый файл вашего скрипта:
котировка
/ *
* © CoinDice
* Демо-версия: http://www.btcircle.com/dice
* Пожалуйста, не копировать или распространять.
* Больше лицензий мы продаем больше продуктов мы разрабатываем в будущем.
* /
* © CoinDice
* Демо-версия: http://www.btcircle.com/dice
* Пожалуйста, не копировать или распространять.
* Больше лицензий мы продаем больше продуктов мы разрабатываем в будущем.
* /
Почему вы удалить демо? Жду вашего ответа ... И в этой теме не в личке.
Изменить: Я только что нашел несколько уязвимостей Пути Traversal и потенциал CSRF ... Я сделал с этим сценарием, я вижу достаточно