Advertisement
Guest User

Untitled

a guest
Nov 10th, 2016
578
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.49 KB | None | 0 0
  1. ###########################
  2. #!/usr/bin/python
  3.  
  4. from __future__ import print_function
  5.  
  6. import requests
  7. import re
  8. import hashlib
  9. import base64
  10.  
  11.  
  12. def login(baseurl, username, password):
  13.    s = requests.Session()
  14.    r = s.get(baseurl + "html/index.html")
  15.    csrf_tokens = grep_csrf(r.text)
  16.  
  17.    s.headers.update({
  18.       '__RequestVerificationToken': csrf_tokens[0]
  19.       })
  20.  
  21.       # test token on statistics api
  22.       # r = s.get(baseurl + "api/monitoring/statistic-server")
  23.  
  24.    data = login_data(username, password, csrf_tokens[0])
  25.    r = s.post(baseurl + "api/user/login", data=data)
  26.  
  27.    s.headers.update({
  28.       '__RequestVerificationToken': r.headers["__RequestVerificationTokenone"]
  29.       })
  30.  
  31.    return s
  32.  
  33.  
  34. def reboot(baseurl, session):
  35.    s.post(baseurl + "api/device/control", data='1')
  36.  
  37.  
  38. def grep_csrf(html):
  39.    pat = re.compile(r".*meta name=\"csrf_token\" content=\"(.*)\"", re.I)
  40.    matches = (pat.match(line) for line in html.splitlines())
  41.    return [m.group(1) for m in matches if m]
  42.  
  43.  
  44. def login_data(username, password, csrf_token):
  45.       def encrypt(text):
  46.          m = hashlib.sha256()
  47.          m.update(text)
  48.       return base64.b64encode(m.hexdigest())
  49.  
  50.       password_hash = encrypt(username + encrypt(password) + csrf_token)
  51.  
  52.       return '%s%s4' % (username, password_hash)
  53.  
  54.  
  55. WEB = "http://192.168.1.1/"
  56. USERNAME = "admin"
  57. PASSWORD = "admin"
  58.  
  59. #if __name__ == "__main__":
  60. #   s = login(WEB, USERNAME, PASSWORD)
  61. #reboot(WEB, s)
  62. #########################
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement