xhs二三事

777

这个问题来源 是因为深夜测试小红书的时候发现主站的一个下载二维码被劫持了 大概检查了一会 我认为是ci.xiaohongshu.com这个站的二维码资源被替换了

在先知群里提了一下 然后早上起床看了一下已经被修复了 可以说先知群作为国内大厂的工单群还是挺有效的

看 web archive 同样的链接返回的二维码不一样

https://web.archive.org/web/20221007135455im_/https://ci.xiaohongshu.com/8aa9236a-43ef-44f0-97d3-3167847de82a

https://web.archive.org/web/20221010122229im_/https://ci.xiaohongshu.com/8aa9236a-43ef-44f0-97d3-3167847de82a

ci经检查应该是一个腾讯cos存储桶的cdn域名 带了x-cos的头

image-20221012132748563

资源又以uuid的形式存储,因此定位到三种可能

  1. 存储桶sk/ak泄露(起码可以有上传权限)
  2. uuid算法可被攻击
  3. 存在其他漏洞可上传以替换ci站资源

其实以常见的攻击来说 3的可能性是最大的 那现在的方向就是如何去找到这个上传点

1的话其实有在xhs的app请求里看到一些相关的字段 但是不是直接的ak/sk 所以不好说

uuid我们可以看到并不能完全信任其唯一性与随机性 但是按照xhs这种情况 uuid很大程度上可能是与本地上传的资源和服务端本身的一些数据 比如时间 进行整合 这时候黑盒 或者说去做这个攻击 其实还是有很大难度的

image-20221012131740919


xhs shield aes

https://www.52pojie.cn/thread-1512461-1-1.html

https://segmentfault.com/a/1190000040324555

https://mp.weixin.qq.com/s/BBb7Cach2qcSFqXISPa_SA

https://github.com/hundan2020/xhs_ios/blob/aa8a39b576bca4f4fda6d5152fc4021194929057/xy_main.py#L32

https://github.com/smallsun107/xhsShield/blob/1877995af2e25d429a500dd77e65c44fb2c2b22c/xyAes.cpp

https://github.com/Guroto/xhsShield/blob/e73bd8de6e5f33366e7979b86aadcff62127a455/utils/xyAes.cpp


xhs shield进展

根据

https://github.com/hundan2020/xhs_ios/blob/aa8a39b576bca4f4fda6d5152fc4021194929057/xy_main.py#L32

https://github.com/smallsun107/xhsShield/blob/1877995af2e25d429a500dd77e65c44fb2c2b22c/xyAes.cpp

https://mp.weixin.qq.com/s?__biz=Mzg3NTcyMjcwOA==&mid=2247483690&idx=1&sn=a93cc2e156aff787ee82e5d3a7cba0f6&chksm=cf3c6391f84bea8714c34943d4ee06216702f978386ecbe81e6bb13f5164c85002e3b4399dd3&scene=21#wechat_redirect

https://mp.weixin.qq.com/s/BBb7Cach2qcSFqXISPa_SA

来看 cpp代码中的in应该就是main_hmac

其次device_id中取前16位

image-20221018152016879

Author: hundan
Link: https://hundan.org/2022/10/12/xhs二三事/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.