Created
September 13, 2015 03:16
-
-
Save fvicente/75980d0d00d759b06e50 to your computer and use it in GitHub Desktop.
Sony Entertainment Network spam stopper
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# -*- coding: utf-8 -*- | |
import requests | |
import urllib | |
import urllib2 | |
import datetime | |
import sys | |
import time | |
from HTMLParser import HTMLParser | |
# create a subclass and override the handler methods | |
class MyHTMLParser(HTMLParser): | |
def handle_starttag(self, tag, attrs): | |
attrs_dict = dict(attrs) | |
if tag == "input" and attrs_dict.get('name', '') == "blah_token": | |
setattr(self, "value", attrs_dict.get("value")) | |
def handle_endtag(self, tag): | |
pass | |
def handle_data(self, data): | |
pass | |
values = { | |
'struts.token.name' : 'blah_token', | |
'blah_token': '', | |
'verifyType': 'dob', | |
'account.dob': '1', | |
'account.mob': '1', | |
'account.yob': '1980', | |
} | |
# | |
# IMPORTANT: paste the URL received in the change password e-mail in the url variable, the url looks something like this: | |
# https://account.sonyentertainmentnetwork.com/reg/account/validate-forgot-password-token!input.action?token=***some token here***&request_locale=pt_BR&service-entity=np | |
# | |
url = '*** PASTE URL HERE ***' | |
url_post = "https://account.sonyentertainmentnetwork.com/liquid/reg/account/forgot-password-verify-identity.action" | |
s = requests.session() | |
r = s.get(url) | |
date = datetime.datetime(1960, 1, 1, 1, 1, 1) | |
today = datetime.datetime.today() | |
while date < today: | |
date += datetime.timedelta(days=1) | |
# find token | |
parser = MyHTMLParser() | |
parser.feed(r.text) | |
if not hasattr(parser, "value"): | |
print "!!!!! FOUND %s" % date.isoformat() | |
break | |
val = getattr(parser, "value") | |
print "blah_token = %r" % val | |
values['blah_token'] = val | |
values['account.dob'] = str(date.day) | |
values['account.mob'] = str(date.month) | |
values['account.yob'] = str(date.year) | |
r = s.post(url_post, values) | |
# | |
# IMPORTANT: The message is in portuguese, you will need to change this message to match your language | |
# | |
if u'A data de nascimento inserida é inválida. Verifique a data e tente novamente.' in r.text: | |
print "birthday is not %s" % date.isoformat() | |
else: | |
print "!!!!! FOUND %s" % date.isoformat() | |
break | |
sys.stdout.flush() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment