天天看點

新浪微網誌登陸以及發送微網誌(附python源碼)

本文主要記錄分析新浪微網誌登陸以及發送文字和圖檔微網誌的詳細過程

原文連結(本人):https://blog.csdn.net/A5878989/article/details/76275855

說明

本文主要記錄分析新浪微網誌登陸以及發送文字和圖檔微網誌的詳細過程
           

分析

登陸入口選擇的是新浪通行證登陸入口
https://login.sina.com.cn/signup/signin.php
抓包找到登陸請求
https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)&_=1501239862897
           

登陸參數和響應

新浪微網誌登陸以及發送微網誌(附python源碼)
登陸肯定少不了使用者名和密碼,這些參數中符合條件的隻有su 和sp,su可以猜測base64編碼的,解碼後得到了我的賬戶名,sp肯定是加密後的密碼,但是需要知道加密方式然而pwencode參數告訴我們是RSA加密,既然時非對稱加密,所有肯定需要擷取公鑰,而且用戶端肯定有登陸操作時加密等操作的代碼。client參數已經很明顯了,需要去找到這個js檔案。找到ssologin.js檔案之後就不用猜了,直接分析代碼了
           

關鍵代碼

新浪微網誌登陸以及發送微網誌(附python源碼)
通過分析代碼可以知道使用者名是urlencode之後再base64編碼,密碼是幾個變量和密碼拼接之後用公鑰加密的,是以登陸之前肯定需要擷取變量和公鑰
           
登陸之前請求
https://login.sina.com.cn/sso/prelogin.php?entry=account&callback=sinaSSOController.preloginCallBack&su=ODkxOTkyNDg5ZnclNDBzaW5hLmNu&rsakt=mod&client=ssologin.js(v1.4.15)&_=1501239861950
           

請求參數和響應

新浪微網誌登陸以及發送微網誌(附python源碼)
可以看到傳回登陸所需要的一些變量,公鑰等等(需要注意的是傳回的公鑰是十六進制的需要轉換,構造公鑰的時候10001也可直接替換為65537)
           

登陸成功的請求是這樣的

新浪微網誌登陸以及發送微網誌(附python源碼)
登陸成功之後傳回uid以及需要重定向的位址。
 發送微網誌
 http://weibo.com/aj/mblog/add?ajwvr=6&__rnd=1501242956000
           

發送微網誌請求

新浪微網誌登陸以及發送微網誌(附python源碼)
pic_id即圖檔id,這個id是在上傳圖檔的時候傳回的

 上傳圖檔
 http://picupload.weibo.com/interface/pic_upload.php?cb=http%3A%2F%2Fweibo.com%2Faj%2Fstatic%2Fupimgback.html%3F_wv%3D5%26callback%3DSTK_ijax_150124497795341&mime=image%2Fjpeg&data=base64&url=0&markpos=1&logo=&nick=%40%E4%B8%96%E7%95%8C%E9%82%A3%E9%BA%BC%E5%A4%A7_&marks=0&app=miniblog&s=rdxt
           

參數和響應

新浪微網誌登陸以及發送微網誌(附python源碼)

代碼下載下傳位址