【发布时间】:2019-03-31 03:30:35
【问题描述】:
所以我一直在尝试为 php 表单创建一个简单的暴力脚本(当然在我自己的本地网络服务器上),它本质上是通过 for 循环将数据输入到列表中来工作的。这是问题所在;如果我的列表是:list = ['a','b','c','d','e','f','g'] 并且我的 for 循环看起来像这样:
for i in list:
r = request.post(url, values) #posts the values
if 'id=correct' in open('output.txt').read(): #check if it works
print("logged in")
#if it works, it would print this, if not,
#it will retry with the next element in the list
问题是,这仅适用于一个字母的密码(因为它只在列表中循环一次)。我的问题是;我将如何获得它,以便一旦它在列表中循环一次,它将再次启动 for 循环,但列表中的两个元素除外(即 aa、ab、ac、ad、ae、ef 等)
谢谢!
【问题讨论】:
-
查看这个问题的答案。stackoverflow.com/questions/7074051/… 基本上您需要做的就是生成所有 1-n 组合,其中 n 是您的密码字段接受的最大长度,然后一一尝试。不要尝试打印地图的结果,如果 n 值很大,您会耗尽内存。
-
您可能还想检查
r.content以获取服务器响应