36 lines
881 B
Python
36 lines
881 B
Python
|
#!/usr/bin/env nix-shell
|
||
|
#!nix-shell -p python3 -i python3 python3Packages.requests python3Packages.beautifulsoup4
|
||
|
|
||
|
import requests
|
||
|
from bs4 import BeautifulSoup
|
||
|
|
||
|
BASE_URL = "http://titan.picoctf.net:65280/"
|
||
|
|
||
|
def main():
|
||
|
s = requests.Session()
|
||
|
|
||
|
# Get cookie + csrf
|
||
|
res = s.get(BASE_URL).text
|
||
|
csrf = BeautifulSoup(res, features = 'html.parser').find('input', {'name': 'csrf_token'})['value']
|
||
|
|
||
|
res = s.post(
|
||
|
BASE_URL,
|
||
|
data = {
|
||
|
'csrf_token': csrf,
|
||
|
'full_name': 'a',
|
||
|
'username': 'b',
|
||
|
'phone_number': 'c',
|
||
|
'city': 'd',
|
||
|
'password': 'e',
|
||
|
'submit': 'Register',
|
||
|
},
|
||
|
)
|
||
|
|
||
|
# NOTE: this is broken if it doesn't get the 'otp' argument it expects
|
||
|
res = s.post(BASE_URL + 'dashboard')
|
||
|
print(res)
|
||
|
print(res.text)
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|