相信大家做APP滲透測試的時候,經常會遇到sign簽名的困擾,這裡給大家分享個實際案例,但是這個案例不是很完美,為什麼不完美,詳情見下文。
給520來點不一樣的,求轉發!
直接搜尋sign未果
資料包加密大緻如下
反編譯出apk源碼後,直接搜尋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
分析代碼應該是把什麼進行了sha1加密
通過分析,是把timestamp+token+private_key進行拼接進行了加密
結果
我們把timestamp+token+private_key三者進行拼接加密測試
成功複現