phpcms v9 sys auth函式加密原理

2021-06-16 20:00:58 字數 947 閱讀 6942

基本原理

假設變數$a,$b,$c=$a^$b(變數a異或變數b),

所以我們有$a=$b^$c   ,  $b=$a^$c

以上是異或邏輯的應用,(題外話:如何在不使用第3個變數的情況下,交換變數$a,$b的值呢?)

回歸正題:

了解了下的內容後,我們可以把變數$a看成是明文(需加密的字串),變數$b看成是金鑰(自己定義),變數$c看成是密文(傳送到客戶端在網上傳輸的)。

當然上面只是基本原理,加密絕不是就簡單的異或字串就行。

為了使演算法更不易破解sys_auth函式對金鑰進行了乙個加密:

$key_length = 4;

$key = md5($key);

$fixedkey = md5($key);

$egiskeys = md5(substr($fixedkey, 16, 16));

$runtokey = $key_length ? ($operation == 'encode' ? substr(md5(microtime(true)), -$key_length) : substr($string, 0, $key_length)) : '';

$keys = md5(substr($runtokey, 0, 16) . substr($fixedkey, 0, 16) . substr($runtokey, 16) . substr($fixedkey, 16));

對明文也插入一些片段,並用base64進行了編碼。

function sys_auth($string, $operation = 'encode', $key = 'hi', $expiry = 0) ) ^ ord($keys));	}	

if($operation == 'encode') else else

}}

PHPCMS V9 注射利用

在用bugscan 白帽子神器 檢測朋友 的時候碰到這個authkey。順便把利用 給大家分享下。本指令碼僅供白帽子安全測試使用,如有用於非法途徑,與作者無關 小白第一次寫東西,大牛勿噴 獲取檢測網域名稱 domain url domain url post url echo 判斷網域名稱是否為空,...

PHPCMS V9 加密規則

phpcms v9 加密規則 加密方式 md5 md5 password encrypt 第一步 對輸入的密碼32位小寫 md5 對輸入的密碼進行trim過濾 第三步 第二步結果密碼32位小寫 md5 例子 密碼 123456 encrypt vcmkn3 如下 a md5 123456 echo ...

PHPCMS V9 加密規則

phpcms v9 加密規則 加密方式 md5 md5 password encrypt 第一步 對輸入的密碼32位小寫 md5 對輸入的密碼進行trim過濾 第三步 第二步結果密碼32位小寫 md5 例子 密碼 123456 encrypt vcmkn3 如下 a md5 123456 echo ...