用程式自動登陸58同城網的時候遇到的一些參數處理

來源:互聯網
上載者:User

本來類比登陸不算複雜,就是一些參數的處理。但是今天登陸58同城發現有點小蹊蹺。

因為你輸入了密碼,它提交過去的密碼域的值還是"password"這個字串,但是多了2個p1和p2的值,大家看一下提交時候的js代碼:

 

var timespan = 1312436462073 - new Date().getTime();...省略無關的....var timesign = new Date().getTime() + timespan;            $("#timesign").val(timesign);            $("#p1").val(getm32str($("#password").val(),timesign+""));            $("#p2").val(getm16str($("#password").val(),timesign+""));            $("#password").val("password");            return true;

,大概可以看到是用了2個函數對密碼欄位進行了處理,這個處理函數的2個參數,一個是密碼,一個是timesign。這個timesign也大概看出來了,是一個時間戳記減去頁面載入時候的時間,再加上提交時候的時間。通過對1312436462073 的眼觀就基本知道是個1970到現在時間的毫秒數。

通過對頁面中js的下載這2個函數的js也找到了,整個頁面也就那麼5個吧。有個看著很像處理密碼的js但是不是,最終給出的js是個檔案名稱很隨機的一個js檔案,我嘗試著對上一次的get(這個登陸不是post是get)的地址串進行測試,發現這個串在一定時間內是可以使用的,但是過了一陣子就不可以了。

猜測:伺服器端做了一些判斷,這個頁面載入時候的時間戳記還是有一定的規律的,不能亂寫。最後確定這個值就以提交時間的格林尼治的毫秒數作參數(因為請求頁面到post的時間可以忽略為0.伺服器不會坐的限制這麼死),根據這個思路:

再次組裝get請求傳,並且利用下載厚的js加密。得到我的正確驗證,可以用程式類比登陸了。。。

 

我的程式是winform,我找到了winform可以直接操作js的資料了。。問題解決。。。。

我在網上搜尋有人出錢在搞定這個58的登陸。。作為分享技術的目的,,公開給大家了。。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.