天天看點

某APP Sign簽名破解漏洞

相信大家做APP滲透測試的時候,經常會遇到sign簽名的困擾,這裡給大家分享個實際案例,但是這個案例不是很完美,為什麼不完美,詳情見下文。

給520來點不一樣的,求轉發!

直接搜尋sign未果

資料包加密大緻如下

某APP Sign簽名破解漏洞

反編譯出apk源碼後,直接搜尋sign參數,内容太多,無果

某APP Sign簽名破解漏洞

旁路搜尋其他參數

資料包中除了sign,還有timestamp和token,我們嘗試搜尋timestamp

看到如下核心代碼,路徑為

cn.xxxx.utils.CommonUtils           

複制

public static String timeStamp2Date(String timestampString, String formats) {
        return new SimpleDateFormat(formats).format(new Date(Long.parseLong(timestampString) * 1000));
    }           

複制

上面這段代碼應該是設定timestamp的,那我們根據命名規則,是可以猜測設定sign也是在cn.xxxx.utils.CommonUtils中

找到sign加密點

果然,确實也存在sign相關的方法,名為getDigestSign

某APP Sign簽名破解漏洞

分析代碼應該是把什麼進行了sha1加密

某APP Sign簽名破解漏洞

通過分析,是把timestamp+token+private_key進行拼接進行了加密

結果

我們把timestamp+token+private_key三者進行拼接加密測試

某APP Sign簽名破解漏洞

成功複現