Guest User

Untitled

a guest
Nov 11th, 2016
818
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.46 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.     s.headers.update({'__RequestVerificationToken': csrf_tokens[0]})
  17.  
  18.     # test token on statistics api
  19.     # r = s.get(baseurl + "api/monitoring/statistic-server")
  20.  
  21.     data = login_data(username, password, csrf_tokens[0])
  22.     r = s.post(baseurl + "api/user/login", data=data)
  23.  
  24.     s.headers.update({'__RequestVerificationToken': r.headers["__RequestVerificationTokenone"]})
  25.     return s
  26.  
  27.  
  28. def reboot(baseurl, session):
  29.     s.post(baseurl + "api/device/control", data='1')
  30.  
  31.  
  32. def grep_csrf(html):
  33.     pat = re.compile(r".*meta name=\"csrf_token\" content=\"(.*)\"", re.I)
  34.     matches = (pat.match(line) for line in html.splitlines())
  35.     return [m.group(1) for m in matches if m]
  36.  
  37.  
  38. def login_data(username, password, csrf_token):
  39.     def encrypt(text):
  40.         m = hashlib.sha256()
  41.         m.update(text)
  42.         return base64.b64encode(m.hexdigest())
  43.  
  44.     password_hash = encrypt(username + encrypt(password) + csrf_token)
  45.     return '%s%s4' % (username, password_hash)
  46.  
  47.  
  48. WEB = "http://192.168.1.1/"
  49. USERNAME = "admin"
  50. PASSWORD = "admin"
  51.  
  52. #if __name__ == "__main__":
  53. #   s = login(WEB, USERNAME, PASSWORD)
  54. #reboot(WEB, s)
  55. #########################
Advertisement
Add Comment
Please, Sign In to add comment