Skip to content

Commit c20573f

Browse files
committed
v0.2.1
Fix an issue with nonce group capture regex (use bs4 instead)
1 parent 52ada48 commit c20573f

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

CTFDump.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55
import logging
66
from os import path
77
from getpass import getpass
8+
from bs4 import BeautifulSoup
89
from requests.utils import CaseInsensitiveDict
910
from requests.sessions import urljoin, urlparse, Session
1011
from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter
1112

12-
__version__ = "0.2.0"
13+
__version__ = "0.2.1"
1314

1415

1516
class BadUserNameOrPasswordException(Exception):
@@ -122,7 +123,8 @@ def version(self):
122123

123124
def __get_nonce(self):
124125
res = self.session.get(urljoin(self.url, "/login"))
125-
return re.search('<input type="hidden" name="nonce" value="(.*?)">', res.text).group(1)
126+
html = BeautifulSoup(res.text, 'html.parser')
127+
return html.find("input", {'type': 'hidden', 'name': 'nonce'}).get("value")
126128

127129
def login(self, username, password):
128130
next_url = '/challenges'
@@ -181,7 +183,7 @@ def iter_challenges(self):
181183

182184

183185
def get_credentials(username=None, password=None):
184-
username = username or os.environ.get('CTF_USERNAME', input('User: '))
186+
username = username or os.environ.get('CTF_USERNAME', input('User/Email: '))
185187
password = password or os.environ.get('CTF_PASSWORD', getpass('Password: ', stream=False))
186188

187189
return username, password
@@ -222,7 +224,6 @@ def main(args=None):
222224

223225
ctf = CTFs.get(sys_args['ctf_platform'])(sys_args['url'])
224226
if not sys_args['no_login'] or not os.environ.get('CTF_NO_LOGIN'):
225-
print(get_credentials(sys_args['username'], sys_args['password']))
226227
if not ctf.login(*get_credentials(sys_args['username'], sys_args['password'])):
227228
raise BadUserNameOrPasswordException()
228229

requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
requests >= 2.9.1
1+
requests>= 2.24.0
2+
beautifulsoup4>= 4.9.3

0 commit comments

Comments
 (0)