Никто никогда не может на все 100% гарантировать, что в его сервисе нету дыр или каких-либо лазеек. А если и могут — не нужно верить этим людям, они не компетентны в таких вопросах.
Даже на таких крупных проектах, как Яндекс.Деньги и то бывали дыры. Так что чего уж говорить о небольшом сервисе для покупок за границей — eBayToday.
Дело это было вечером, делать, как говорится, мне было нечего… и решил я тогда чисто ради интереса посмотреть — а есть ли дыры на сайте, через который я сделал столько покупок? Может быть в один прекрасный момент я закажу себе новенький iPad 3, а через день зайду и узнаю, что аккаунт у меня угнали, адрес поменяли, да и вообще iPad уже давно в чужих руках…
Сразу же скажу, что все дыры уже залатаны. Поддержка ответила мне уже через сутки и сказала, что «наши специалисты всё исправили, вот вам приятный бонус в виде $10 за найденные уязвимости».
SQL-inj
Начну с самого сладкого, с sqli. Это инъекция на неприметной странице http://ebaytoday.ru/user/addressbook?archive=. С помощью её можно было вывалить всю базу, за исключением одного: там не было ни юзеров, ни заказов, ни платёжных реквизитов :) Админы на столько молодцы, что походу вынесли всю эту архиважную информацию в отдельную базу, к которой получить доступ мне не удалось :)
XSS
Их я проверял банальной строкой '"><script>alert('a');</script> — и нашёл кучу всяких XSS, с помощью которых можно понатырить кукисы хоть всех пользователей сервиса. Это меня ужаснуло и как раз таки ради этого я и решил продолжить искать дыры, чтобы поскорее уведомить администрацию.
Самая страшная дыра, которую я нашёл — это дыра в тикетах: http://ebaytoday.ru/tickets поле «тема» не фильтруется, поле «сообщение» не фильтруется и получается что? Правильно, получается, что можно стырить куки хоть самих админов и посмотреть на их сервис изнутри. Совсем наглеть я не стал и решил ничего не смотреть (еле сдержал любопытство).
Дальше список с обычными XSS, которые интересны, но не так, как предыдущие :)
http://ebaytoday.ru/catalog/search?total_query=phone&minprice=&maxprice=
Параметры minprice и maxprice не фильтруются.
http://ebaytoday.ru/catalog/search?query=phone&category=
Параметр category не фильтруется, активная XSS.
http://ebaytoday.ru/forgot/?email=
Параметр email не фильтруется.
http://ebaytoday.ru/peoplesay?located=0&with_photo=
Параметр with_photo не фильтруется, активная XSS
Залатали дырки ещё 24 числа, поэтому, надеюсь, спустя столько времени они успели самостоятельно найти что ещё я пропустил.
Если же вы решите поискать дыры — пожалуйста, не используйте их. Ведь сервисом пользуются такие же обычные люди, как и мы с вами, лучше уведомите администрацию и не крадите чужие куки, потом же сами можете попасть в такую передрягу :(
Автор: Progrik