Ich versuche, in CTF zu bekommen und ich fand eine coole Website-Ment, um einige web-basierte CTF-Fähigkeiten namens ctf.slothparadise.com zu üben. Ich habe 4 der Flags bekommen, aber zwei von ihnen geben mir den Finger und leider musste ich die guten Ol 'Python Fähigkeiten abstauben.Python-Urllib-Modul TypeError
import urllib.error
import urllib.request
import urllib.parse
import urllib
import sys
while True:
about_page = urllib.request.urlopen("http://ctf.slothparadise.com/about.php").read()
if "KEY" in about_page:
print(about_page)
sys.exit(0)
ctf.slothpython.com/about.php ist die Seite Ich programmiere für und es spuckt alle 1000 Besucher den Schlüssel in den Quellcode aus. Anstatt ein Idiot zu sein und ihn bis 1000 zu aktualisieren, schrieb ich diesen Code in der Hoffnung, dass er die Seite so lange öffnen würde, bis der Satz "KEY" im Seitenquellcode erschien.
Ich erhalte diese: (Typeerror: ‚str‘ die Puffer-Schnittstelle nicht unterstützt)
Von dem, was ich weiß, über TypeErrors dass ich vermute, ich vielleicht im falschen Format haben „KEY“ kann? Ich bin mir nicht wirklich sicher, ich könnte auch nicht die richtigen Module verwenden, aber das alte urllib2-Modul, das ich normalerweise dafür verwenden würde, wurde in verschiedene Module aufgeteilt, so dass ich lerne, wie ich mit diesen neuen Modulen gehe.
Bei der Behebung dieses Problems ist jede Hilfe hilfreich, auch wenn meine Interpretation von TypeErrors falsch ist, fühlen Sie sich frei, mich zu korrigieren.
Anscheinend gibt 'urlopen' den Inhalt der Seite bereits zurück, nicht ein dateiähnliches Objekt, das man" lesen "kann. – ForceBru
Wenn Sie nicht wirklich etwas anderes tun müssen, verwenden Sie ['requests'] (http://docs.python-requests.org/en/master/user/quickstart/) für diese Art von Dingen. – roganjosh