【问题标题】:Simple brute forcer not working简单的蛮力不工作
【发布时间】:2014-07-20 05:52:36
【问题描述】:

我正在尝试编写一个非常简单的暴力破解程序来尝试破解受密码保护的 zip 文件。该文件的密码是“红色”。

import zipfile;
zfile = zipfile.ZipFile('password_archive.zip')

words = open('/usr/share/dict/words')
for word in words.readlines():
    try:
        password = word.strip('/n')
        zfile.extractall(pwd=password)
        print "Password found: "+ password
        exit(0)
    except Exception, e:
        print e

控制台:

('Bad password for file', <zipfile.ZipInfo object at 0x1004ca500>)
('Bad password for file', <zipfile.ZipInfo object at 0x1004ca500>)
('Bad password for file', <zipfile.ZipInfo object at 0x1004ca500>)
('Bad password for file', <zipfile.ZipInfo object at 0x1004ca500>)
('Bad password for file', <zipfile.ZipInfo object at 0x1004ca500>)
('Bad password for file', <zipfile.ZipInfo object at 0x1004ca500>)
('Bad password for file', <zipfile.ZipInfo object at 0x1004ca500>)
('Bad password for file', <zipfile.ZipInfo object at 0x1004ca500>)
Password found: Abasgi

不太清楚这里发生了什么。 Abasgi 不是正确的密码,但脚本似乎因密码错误而失败,并且似乎找到了正确的密码。我想我已经在循环中的正确位置设置了密码变量。

【问题讨论】:

标签: python brute-force network-security


【解决方案1】:

你需要改变:

password = word.strip('/n')

收件人:

password = word.strip("\n")

但你也可以:

password = word.strip()

见条documenation

返回带有前导和尾随字符的字符串的副本 删除。如果 chars 被省略或 None,空白字符是 删除。如果给定而不是 None,chars 必须是字符串;那些角色 在字符串中会从字符串的两端剥离 this 方法被调用。

并确保 red 在你的单词列表中 Red 在我的单词列表中,所以我必须添加:

zfile.extractall(pwd=password.lower())

在这些更改之后,一切似乎都很好:

import zipfile
zfile = zipfile.ZipFile("file.zip")

words = open("/usr/share/dict/words")
for word in words.readlines():
     try:
        password = word.strip("\n")
        zfile.extractall(pwd=password.lower())
        print "Password found: "+ password
        exit(0)
     except Exception, e:
        pass

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    • 1970-01-01
    • 2014-09-13
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多