【Python模擬登錄】RSA加密與重放方式登錄 -以模擬登錄博客園為例


Python模擬登錄第一彈見:【Python數據分析】Python模擬登錄(一) requests.Session應用
上次的登錄是最基本的,全部是明文,而且在瀏覽器中就可以看到POST的數據。接下來我們來個稍微難一點的–模擬登錄博客園(http://www.cnblogs.com)

登錄特點:用戶名密碼都進行了RSA加密,且在瀏覽器中無法看到POST數據

 

圖1圖1
如上圖,在post數據中不能顯式看到POST內容。

模擬登錄步驟

既然瀏覽器調試功能無法探測到POST數據,那么采用Fiddler試試看,這是一款網絡抓包工具,很好用。登錄后看到
圖2圖2
POST的數據是input1,input2和remember,這和分析signin頁面的源代碼所得結果一致。
圖3圖3
其中input1是加過密的用戶名,input2是加過密的密碼,remember表示記住還是不記住用戶名。由於RSA的原理,加過密后的內容可以不一樣,但是解密后的數據是一樣的,那么我們就可以采用重放方式登錄,即復制這些內容到我們的POST data中。
還要注意一個cookies的問題,cookies一定要選擇正確,不要選下面的:
圖4圖4
因為這是登錄頁面的cookies,我們要用下面的cookies:
圖5圖5,

即包含.CNBlogCookies的cookie,這也是主頁的cookies。
為了驗證登錄是否成功,我們登錄后打開followers頁面,因為未登錄前是無法看到任何用戶的粉絲頁面的。
還是利用requests.Session,寫出如下代碼:

import requests
import re
import json
from bs4 import BeautifulSoup

s = requests.Session()

headers = {
    'Accept': 'application/json, text/javascript, */*; q=0.01',
    'Referer': 'http://passport.cnblogs.com/user/signin',
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36',
    'Cookie': '__gads=ID=fc58354935efbd89:T=1458638388:S=ALNI_MYEtsucyem4nWeL9mdxvQmfAZlTgQ; _ga=GA1.2.111229817.1458781632; .CNBlogsCookie=39EB7C846FF5A6CA5D762D210B954E55CE77A24D11C5203F6055DCAC93DFFF8EA7E405568F2D8CC9F00AFE43A859E71DE55AE6E79A030F7E74C231CECF7DA2DD88B734EA2ECA22DFED8C2ECAB85717B45434AABFE1202DA8266C7440562114D99D9C6767'
}

login_data = {'input1': '你的用戶名加密后內容',
              'input2': '你的密碼加密后內容',
              'remember': 'false'
              }

url = 'http://passport.cnblogs.com/user/signin'
req = s.post(url, data = login_data, headers=headers)
print(req.status_code)           #200
print(req.content.decode())      #{"success":false,"message":"您已處於登錄狀態"}

f = s.get('http://home.cnblogs.com/u/whatbeg/followers/1', headers=headers)
print(f.status_code)
print(f.text)

然后運行有: 

圖6圖6
圖7圖7
顯示成功登錄。
這樣,就可以登錄這種用RSA加密的用戶名密碼的非https且不需要驗證碼的網站了。希望對需要的人有所幫助。

本文工作僅供交流學習用,請勿利用做出任何不遵守網絡公德的行為。
原文地址:http://whatbeg.com/2016/04/14/logincnblogs.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM