Неприятная дыра в заданиях скриптов SoоoFast при подтверждении

Об этой дыре мне сообщил человек,у которого накрутили задания.Этот же человек дал мне вариант решения проблемы.И я выкладываю сюда.Об этой дыре мне сообщил человек,у которого накрутили задания.Этот же человек дал мне вариант решения проблемы.И я выкладываю сюда.

Итак:
Используем дыру
Дыру лучше использовать в молодых проектах,т.к. там история выполнений заданий почти нулячая и подсчитать id своей заявки на подтверждение не составляет труда.Идём в список заданий.Считаем кол-во выполненных,отклонённых и ожидающих подтверждения.Прибавляем к этому числу 1.Для примера возьмём получившееся число 254.
Выбираем понравившееся задание и заказываем его подтверждение.Отправляемся на страницу со списком ожидающих подтверждения.Теперь начинается самое интересное.
Открываем исходный код страницы и удаляем всё.Вставляем туда код:


<form action="" method=post>
  <input type=hidden value="254" name="id">
  <input type=hidden value="good" name="action">
  <input type=submit value="Подтвердить">
  </form>


Обратите внимание,что в коде число 254 надо заменить на получившееся у Вас.

Теперь смотрим на результат.Нам написало,мол заявка подтверждена.Если Вам не начислились деньги на баланс — не отчаивайтесь — дальше надо постараться и \»методом тыка\» перебрать следующие после Вашего числа числа и Вам обязательно должно повезти!

Закрываем дыру:
Открываем файл taskcheck.php и ищем кусок:


if($status!='0')
  {
  echo "<img src="images/error.png" align="middle"> <span style="color:#ff0000">Ошибка! Выполнение задания уже проходило проверку</span>";
  }else{
  $res=mysql_query("select * from tb_task where id='$idtask'");
  $res=mysql_fetch_array($res);
  
  if(($res["balance"]<$res["amount"]) or ($res["kolvo"]<1))
  {
  echo "<img src="images/error.png" align="middle"> <span style="color:#ff0000">Ошибка! На балансе задания недостаточно средств для оплаты выполнения</span>";


Его заменяем на:


if($status!='0')
  {
  echo "<img src="images/error.png" align="middle"> <span style="color:#ff0000">Ошибка! Выполнение задания уже проходило проверку</span>";
  }else{
  $res=mysql_query("SELECT * FROM tb_task WHERE id='$idtask'");
  $res=mysql_fetch_array($res);
  if ($res['author']!==$user)
  {
  echo "<br /><center><img src='images/error.png' align='middle'> Вы уверены, что это Ваше задание???</center><br /><br />";
echo "</center>";
include('footer.php');
exit();  
  }
  if(($res["balance"]<$res["amount"]) or ($res["kolvo"]<1))
  {
  echo "<img src="images/error.png" align="middle"> <span style="color:#ff0000">Ошибка! На балансе задания недостаточно средств для оплаты выполнения</span>";


Всё :)Ждите описание следующего неприятного бага в заданиях

Автор публикации

не в сети 13 лет

Alex

Комментарии: 0Публикации: 166Регистрация: 19-02-2011

Понравилась статья? Поделись в соц. сетях:

Похожие новости

Отправить комментарий

wpDiscuz
Авторизация
*
*
Регистрация
*
*
*
Генерация пароля