SVN弱密码扫描(Python)

寂寞如雪的用脑过度,所以来写个博客分享一下。#虽然上一篇博客我还没写完

SVN的弱密码,看起来很复杂,但实际上很简单啊= =虽然不像pymssql/mymssql这种,Python提供了很好用的包,但如果了解其中的原理就很简单了~~

0x00 基本认知

首先要知道如下图所示的认证方式是什么认证:

这个涉及到HTTP认证方式,具体可以参考 http://blog.csdn.net/samlei/article/details/5485305

SVN用了最简单的Basic Auth。Basic Auth的利用非常广泛,比如Phpmyadmin的http认证方式,nodejs express框架里的basic-auth的插件等等。

0x10 判断当前请求是否需要认证

如果当前请求要求认证,在浏览器中,会弹出如上图所示的窗口,那如果在脚本中,如何判断?可以通过HTTP Response的头来验证:

import requests

res = requests.get(‘https://test.com/myspace‘, verify=False)
print res.headers

可以看到头部中包含了下面这个字段:

‘www-authenticate‘: ‘Basic realm=" Subversion"‘

0x20 如何认证

针对basic-auth有两种方法:

1. 在HTTP头中添加Authorization

Authorization: "Basic 用户名和密码的base64加密字符串"

2. url中添加用户名和密码

http://user:[email protected]

0x30 python Requests中的认证模块

在写这篇博客,查资料的过程,发现了神器requests竟然包含了认证模块。#虽然0x20中提到的认证方式也很简单。

import requests
from requests.auth import HTTPBasicAuth

r = requests.get(‘https://httpbin.org/hidden-basic-auth/user/passwd‘, auth=HTTPBasicAuth(‘user‘, ‘passwd‘))
# r = requests.get(‘https://httpbin.org/hidden-basic-auth/user/passwd‘, auth=(‘user‘, ‘passwd‘))    # 简写
print(r.json())

0x40 最终代码

   def svn_busrt(self, url, user, password):
        try:
            res = requests.get(‘https://‘+user+‘:‘+password+‘@‘+url, verify=False, timeout=30)
        except Exception, e:
            print Fore.RED + "Connection Error"
            self.count += 1
            return

        if res.status_code == 200:
            print Fore.GREEN + "[+] Success! %s\t%s:%s" % (url, user, password)
            result_list.append([user, password])
时间: 2024-11-05 16:03:11

SVN弱密码扫描(Python)的相关文章

AD账户弱密码扫描工具

工具授权:免费工具 软件大小:275KB 软件语言:简体中文 作者博客:http://319216.blog.51cto.com 更新时间:2017/02/22 应用平台:Microsoft ActiveDirectory/Windows Server 2008/Windows Server 2012 1.用户列表文件可以使用Get-ADUser命令来获得,只需要Get-ADUser中用户的Name属性,请导出为CSV文件 2.密码字典文件也是单行密码列,字典文件也需要使用CSV文件进行保存 3

基于Python+协程+多进程的通用弱密码扫描器

听说不想扯淡的程序猿,不是一只好猿.所以今天来扯扯淡,不贴代码,只讲设计思想. 0x00 起 - 初始设计 我们的目标是设计一枚通用的弱密码扫描器,基本功能是针对不同类型的弱密码,可方便的扩展,比如添加SSH.SVN.phpmyadmin的弱密码扫描功能.我们设定启动方法是命令行,可以通过命令行指定扫描对象,以及扫描哪些弱密码. 既然是要求可扩展,那我们首先来编写一个通用的框架,然后通过添加POC的方法来实现扩展.在这个框架中,我们需要处理的事情包括: 初始化扫描对象(格式化URL.从文件或数据

使用cherrypy(python 2)禁用弱密码

我使用带有Python 2的Cherrypy 3.8.0来使用pyOpenSSL使用SSL / TLS. 我想禁用SSL3以避免POODLE(或其他弱密码). 这是我到目前为止所拥有的: server_config={ 'server.socket_port': 443, 'server.ssl_module':'pyopenssl', 'server.ssl_certificate':'/path/myserver.crt', 'server.ssl_private_key':'/path/m

PYTHON测试邮件系统弱密码

#-*- coding:utf-8 -*- #测试公司邮件系统弱密码, from email.mime.text import MIMEText import smtplib #弱密码字典 passList = ['***','***123','abc123','123456'] #用户列表 userList = ['ds','ff','fd','f','fs'] #设置邮箱后缀及服务器地址 last_addr = '@***.com' smtp_server = 'mail.***.com'

测试教程网.unittest教程.3. 实例: 测试弱密码

From: http://www.testclass.net/pyunit/test_example_1/ 背景 考虑这样一个测试弱密码的实例,这个我们在pytest相关教程中也有过描述. 我们需要判断用户的密码中包含简单密码,规则是这样的,密码必须至少6位,满足6位的话判断用户的密码不是password123或者password之类的弱密码. 对于如下的测试数据,我们要如何使用unittest来进行相关测试呢? [ {"name":"jack","pas

unittest 3 实例:测试弱密码,如何测试多组数据

目的 考虑这样一个测试弱密码的实例. 我们需要判断用户的密码中包含简单密码,规则是这样的,密码必须至少6位,满足6位的话判断用户的密码不是password123或者password之类的弱密码. 对于如下的测试数据,我们要如何使用unittest来进行相关测试呢? [ {"name":"jack","password":"Iloverose"}, {"name":"rose","

MyEclipse中SVN用户名密码的切换

WindowsXP: 将C:\Documents and Settings\Administrator\Application Data\Subversion\auth\svn.simple文件夹下的所有文件删除就行了 Application Data是隐藏文件 要先显示隐藏文件 Windows7: 将C:\Users\admin\AppData\Roaming\Subversion\auth\svn.simple文件夹下的所有文件删除就行了 其中AppData是隐藏的文件夹,也是要先显示出来才

svn修改密码。

注意: 1.ChangePasswd.ini.ChangePasswd.cgi必须放在apache的cgi-bin(根据自己电脑上的路径来,我的是/var/www/cgi-bin)下. 2.修改密码文件的所有者是apache,如果不是,执行chown apache:apache passwd(密码文件). 3.如果密码是用htpasswd -c 或-m所建,执行htpasswd -b /etc/httpd/passwd usrname password更新. 一.创建ChangePasswd.i

维吉尼亚密码的Python实现

代换密码体制的一般定义为M=C=K=Z26,其中M为明文空间.C为密文空间.K为密钥空间.Z26为26个整数(对应26个英文字母)组成的空间:要求26个字母与模26的剩余类集合{0,1,2,-,25}建立一一对应的关系. 1.移位密码 移位密码的加密实现上就是将26个英文字母向后循环移动k位,其加解密可分别表示为: c=Ek(m)=m+k(mod 26) m=Dk(c)=c-k(mod 26) 其中,m.c.k是满足0≤m,c,k≤25的整数. 2.维吉尼亚密码 Vigenenre密码是最著名的