Неприятная дыра в заданиях скриптов SoоoFast при подтверждении
Неприятная дыра в заданиях скриптов 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>";

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


Рубрика: Бесплатное » Дыры, ошибки   |   Автор: Alex   |   Просмотры: 6522
Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.