我正在努力进入CTF,我找到了一个很酷的网站来练习一些基于网络的CTF技能,称为ctf.slothparadise.com。我已经设法获得了4个旗帜,但其中有两个正在给我指责,可悲的是我不得不甩掉好的Ol'Python技能。
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是我正在编程的页面,它每1000个访问者在源代码中吐出密钥。我写了那段代码,希望它能继续打开页面,直到页面源代码中出现“KEY”这个短语,而不是一个白痴并刷新它直到1000。
我得到了这个:( TypeError:'str'不支持缓冲区接口)
根据我对TypeErrors的了解,我猜我可能会以错误的格式出现“KEY”?我不太确定,我也可能没有使用正确的模块,但我通常会使用旧的urllib2模块分成不同的模块,所以我正在学习这些新模块。
任何帮助都会在修复此问题时受到赞赏,如果我对TypeErrors的解释错误,请随时纠正我。
答案 0 :(得分:0)
使用
将about_page设为一个字符串 about_page=str(urllib.request.urlopen("http://ctf.slothparadise.com/about.php").read())
这应该使您的代码有效。希望这会有所帮助!!