逆向小记 bd-ticket-guard-client-cert | bd-ticket-guard-client-data 通过现象看本质
2023-6-6 13:50 3661
最近在群里看到好多人在讨论安卓逆向中某APP的 bd-ticket-guard-client-cert | bd-ticket-guard-client-data 于是乎就过去喵了两眼! 经过一番分析后发现这和我正在学习的 安全通信行为与方案 有异曲同工之妙,于是记个小记!
首先证书交换一定要经过服务器,所以我们先抓他个10分钟的包再说。
喝口茶的功夫,包抓到了,哦看起来像是个Base64? 解密下???
太标准的证书格式了,拿出我们的openssl解析下
依然没什么花哨的直接解析出来,既然这是个X509证书,那么要么是服务器下发,要么是自己生成喽,但是如果是本地直接生成,那服务器还校验个鬼哦!
既然是服务器下发的,那服务器又是怎么校验这个证书是自己下发的呢,这就要讲到CA验证了,首先根据上图我们发现证书的Issuer"(颁发者)是 ticket_guard_ca_ecdsa_256 服务器用自己的 私钥 签名的值是
当服务器收到这个证书的时候,会做几件事,首先用自己的公钥解开签名获得解密后的证书hash
然后手动计算这个证书的hash值,如果两个hash匹配,那么服务器就确认这个证书是自己所签发下来的了。
那么就ctrl+f搜索是什么包下发的呗!!!
霍霍嚯嚯嚯,直接搜到! 发现如参是个csr证书,okkkkk
CSR是什么
解密下这个CSR,okkk 那我们只要模仿下这个CSR就能让服务器给我们颁发个证书喽?
那好吧随便改改之前的代码签名算法换成SHA256withECDSA CN改下,生产了一个跟他相似的CSR,传过去果然好使!!!
那么最后这个 ticket-guard-client-data 怎么来的呢,因为涉及到逆向咱就不讲了,其实也是涉及到非对称加密的,就是客户端用私钥去签名数据,服务器用上传过去的证书公钥验签的过程!
学习太累了,不学又不行,人生太难,生活太苦,放下屠刀,回头是岸!!