001 原理分析最近爆出關於利用社工庫爆破discuz論壇使用者名稱密碼的工具,造成很多大的論壇使用者資訊洩露,分析原理如下。
這裡discuz判斷訪問ip主要用了下面這段邏輯,
}如果存在http head裡存在clientip則判斷為clientip,如果存在xff頭,則判斷為xff,如果二者都沒有,則直接取$_server['remote_addr']。其實這段邏輯是存在漏洞的,如果我們自己構造http head並在裡面加入clientip、xff欄位,便可以輕鬆繞過dz的防暴力猜測機制,dz只會封掉我們偽造的clientip、xff的ip,而不會限制真實ip。
這裡我以dz x2.5為例,跟蹤使用者登入的邏輯,登入執行class_member.php下的on_login(),這裡dz會先判斷使用者登入失敗的次數是否大於4,也就是它的防爆破機制,這裡執行logincheck()函式,如圖所示
繼續跟入這裡可以看到了這個fetch_username會去pre_common_failedlogin這個表查詢登入失敗的次數,而這裡用的便是$_g[『clientip』]
關於$_g[『clientip』]獲取的內容便是前面提到的那個_get_client_ip函式實現,如圖所示
這裡fetch_username會去pre_common_failedlogin這個表查詢登入失敗的次數,如圖所示
繼續跟蹤後面的內容,再回到logincheck的**,後面這個$return這裡會判斷查詢記錄以及距離最後一次登陸失敗的的時間是否大於15分鐘,這裡返回$return是0,說明登陸失敗次數大於4次,
因為這裡返回0所以進入showmessage(『login_strike』)返回頁面登陸失敗提示。
返回如下
以上內容只是分析了dz防止暴力破擊的機制,可以看到當http head中同時存在client-ip、x-forwarded-for以及$_server[『remote_addr』]時,dz會優先將client-ip、x-forwarded-for作為源ip,所以封掉的永遠是client-ip或是xff,而不影響真正的連線ip。我們再回到問題上來,利用工具便是鑽了這個空子,構造請求暴力破解的,至於利用社工庫,只不過是利用一些已知社工**提供的介面來撞庫查詢使用者密碼,例如www.cnseu.org。
002 臨時解決方案
開啟驗證碼,這裡以dz x2.5為例,如圖所示:
至於社工撞庫,因為與正常的登陸行為沒有任何區別,所以建議廣大使用者盡快修改密碼,並設定強壯密碼,切忌多個賬號使用統一密碼。
自動化分析工具PSSDIAG
微軟有個內部工具 pssdiag,它能收集非常多的資訊,僅需要簡單的配置和操作步驟。預設安裝路徑 c program files x86 microsoft pssdiag 1.在上圖的介面裡設定好需要收集的資訊,點s e,會彈出乙個對話方塊,顯示 修改生成的pssd.cab檔案存放位置,如果不存放...
TensorFlow的自動求導原理分析
tensorflow使用的求導方法稱為自動微分 automatic differentiation程式設計客棧 它既不是符號求導也不是數值求導,而類似於將兩者結合的產物。最基本的原理就是鏈式法則程式設計客棧,關鍵思想是在基本操作 op 的水平上應用符號求導,並保持中間結果 grad 基本操作的符號求...
自動化測試工具分析
目前在國內使用的最多的自動化測試工具就是qtp,以至於許多人錯誤的理解為自動化測試就是使用qtp進行一下錄製,然後就是自動化測試了,這種理解是有偏差的。qtp 是hp公司開發的乙個款自動化測試工具,名氣很大,但是售價也非常昂貴,國內有一些牛人破解了qtp,進行使用,但是大公司一般不會採用這種方式,要...